在软件测试中,软件测试过程被分为五个步骤,单元测试,集成测试,确认测试,系统测试和验收测试。这次的博客就是围绕其中的集成测试来进行的。
“集成”顾名思义,既是指把多个细小的单元组合起来,形成一个大的单元。而集成测试就是把已经进行过了并且通过了单元测试的细小单元集中起来,形成一个大的单元来进行的测试。其目的主要是验证各个细小的软件单元之间的接口是否正确。在软件测试过程中尽管集成测试被单独出来形成一个测试过程,但集成测试更像是一过渡性的测试,介于单元测试和系统之间的过渡性测试,更像是单元测试的延伸和拓展。
既然说到了集成测试是一个过渡性测试,更偏向于是单元测试的延伸和拓展,那么也就是说,在做集成测试之前,我们应该保证集成的单元软件已经通过了单元测试,不然测试的结果会受到影响,而且测试的成本也会大大的提高,最严重的更会导致测试的无法进行。
因为集成测试的独有特性,往往也被人们叫为组装测试,联合测试,子系统测试或者是部件测试。在刚开始的时候集成测试采用的测试方法往往是黑盒测试,简单高效,但随着软件规模的日益壮大,仅仅使用黑盒测试已经不能保证集成测试的结果就是我们希望得到的结果,因此后来人们就把黑盒测试和白盒测试结合起来,设计出有效的测试用例来,因此也有人把集成测试称为灰盒测试。
上面已经介绍有关集成测试的一些基本的知识,那么下面我们来介绍有关集成测试的层次和原则。
1.集成测试的层次: 在设计一个软件的过程中,一个产品的开发要经过多个不同的开发和测试阶段,在测试过程中来说,则是要从单元测试开始,到集成测试,再到之后的一个个不同的测试。而在集成测试中我们需要划分不同的层次,以便于测试,那么在软件测试中时怎么给集成测试来划分层次的?
对于不同的软件设计模式,有不同的层次,在传统软件工程中,按照集成粒度的不同,将集成测试分为了3个层次:
1)模块间集成测试
2)子系统内集成测试
3)子系统间集成测试
对于面向对象的应用系统来说,按照集成粒度不同,可以将集成测试划分为2个层次:
1)类内集成测试
2)类间集成测试
2.集成测试的原则: 集成测试原则是用来为我们做好集成测试,尽早开始筹划而提出来的几条原则。具体原则内容不作过多介绍。
说了那么多,那么我们的集成测试到底采用的是什么策略?在我们的软件体系中,主要将集成测试分为两大策略,其一为先把所有要集成的模块先单独完成单元测试,然后再进行集成测试,这叫做非渐增式集成。另一种则是把下一个要测试的模块同之前已经测试号的模块结合起来测试,之后再测试下一个,这种每次增加一个的集成测试方式被称为渐增式集成。
下图为一个简单的程序结构图(以下所有案例均以此程序结构图为原始模板):
1.非渐增式集成:将已经测试好的所有单元进行集成测试。如下图:
2.渐增式集成:渐增式集成又被分为了自顶向下集成,自底向上集成,三明治集成。
1.自顶向下集成:是沿着程序的控制层次往下移动,需要桩模块,下图是采用深度优先方式。如下图:
1.测试A 2.测试B
3.测试E 4.测试F
5.测试C 6.测试G
7.测试D
2.自底向上集成:此模式是从“原子”模块开始集成,由下向上的组装,完成集成测试。
不需要桩模块,但需要驱动模块。下图为按照广度优先算法进行。如下图:
测试E 测试F 测试G 测试D
测试B 测试G
测试A
3.三明治集成:三明治集成自顶向下集成和自底向上集成两种优点的一种集成模式,在这种方法中,桩模块和驱动模块都需要,但是其开发工作比较小,不 过相应的其代价就是一定程度上增加了定位的难度。
以上即为这次对集成测试的一些简单的介绍。