白盒测试-集成测试

(一)什么是集成测试
集成测试(Integration Testing),也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。

集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它最简单的形式是:把两个已经测试过的单元组合成一个组件,测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合为程序的更大部分。方法是测试片段的组合,并最终扩展成进程,将模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。

集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元。这一点很重要,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价。

所有的软件项目都不能摆脱系统集成这个阶段。不管采用什么开发模式,具体的开发工作总得从一个一个的软件单元做起,软件单元只有经过集成才能形成一个有机的整体。具体的集成过程可能是显性的也可能是隐性的。只要有集成,总是会出现一些常见问题,工程实践中,几乎不存在软件单元组装过程中不出任何问题的情况。从集成测试需要花费的时间远远超过单元测试,直接从单元测试过渡到系统测试是极不妥当的做法。

(二)测试关注的重点

一些模块虽然能够单独工作,但并不能保证连接起来也能正常的工作,程序在某些局部反映不出来的问题,在全局上很可能暴漏出来,影响功能的实现,因此集成测试应当考虑两大(5个)问题:

1、模块间的接口(接口的覆盖率)
(1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失。
(2)全局数据结构是否有问题,会不会被异常修改。
2、集成后的功能(参数的传递)
(1)各个子功能组合起来,能否达到预期要求的父功能。
(2)一个模块的功能是否会对另一个模块的功能产生不利的影响。
(3)单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。

(三)集成测试的三个级别
由于集成的力度不同,一般可以把集成测试划分为三个级别:
1、模块内集成测试。
2、子系统内集成测试。
3、子系统间集成测试。

(四)集成测试的模式

1.非渐增测试:先分别测试每个模块,再把所有模块按设计要求一次全部组装起来所要的系统,然后进行整体测试。非渐增式测试时可能发现一大堆错误,为每个错误定位和纠正非常困难,并且在改正一个错误的同时又可能引入新的错误,新旧错误混杂,更难断定出错的原因和位置。非渐增式的方法如:大爆炸集成。

2.渐增测试:逐个把未经测试的模块组装到已经过测试的模块上去进行集成测试,每加入一个新模块进行一次测试,重复此过程直至程序组装完成。渐增式测试有以下组装方法:自顶向下和自底向上。

两者的区别是:
1、非渐增式方法是把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试则是把单元测试和集成测试结合在一起,同时完成。
2、非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量少。
 3、渐增式可以较早地发现接口间的错误,非渐增式到最后组装的时候才发现。
4、渐增式有利于拍错,发生错误往往和最近新加入的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。
5、渐增式比较彻底,已测试的模块和新的模块在测试。
6、非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。

(五)集成测试策略

集成测试策略最主要的有三种:
1、大爆炸集成(Big Bang Integration)。
2、自顶向下集成(Top-Down Integration)。
3、自底向上集成(Bottom-up Integration)。

****基于以上三种测试策略,又提出了以下五种集成测试策略,它们都是在上面的三种主要测试策略的基础上进行综合,改进而成的。****
1、三明治集成(Sandwich Integration)。
2、基干集成(Backbone Integration)。
3、分层集成(Layers Integration)。
4、基于功能的集成(Function-Based Integration)。
5、基于进度的集成(Schedule-Based Integration)  

————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.youkuaiyun.com/weixin_53519100/article/details/112203566
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.youkuaiyun.com/weixin_53519100/article/details/112203566
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.youkuaiyun.com/weixin_53519100/article/details/112203566

- 黑盒测试的目的是验证软件系统的功能是否按照规格说明书的要求正常工作,而不需要了解系统内部的实现细节。测试人员根据输入和预期输出来设计测试用例,然后执行这些测试用例,验证系统是否能够正确地处理输入并产生正确的输出。 - 白盒测试的目的是验证软件系统的内部逻辑是否正确。测试人员需要了解系统的内部实现细节,通过检查代码、执行路径和数据流等来设计测试用例,然后执行这些测试用例,验证系统是否能够正确地执行各种情况下的代码路径。 - 沙箱测试的目的是测试软件系统在隔离环境中的行为。测试人员在隔离的环境中运行系统,以确保系统不会对外部系统或环境产生负面影响。 - 单元测试的目的是验证系统中的单个模块是否按照设计要求正常工作。测试人员编写测试用例来验证模块的输入和输出,以确保模块能够正确地处理各种情况下的数据和逻辑。 - 集成测试的目的是验证系统中各个子系统之间的交互是否按照设计要求正常工作。测试人员使用模拟数据和环境来测试系统的各个部分,以确保它们能够协同工作。 - 用户验收测试的目的是验证系统是否满足用户的需求和期望。测试人员使用真实数据和环境来测试系统,并且模拟用户的使用情况,以确保系统能够满足用户的需求,并且易于使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值