集成测试的方法有两种: 非增式测试和增式测试 ,
1
)非渐增组装测试(非增式集成测试):将单元测试后的模块按照总体的结构图一次性集成起来,然后把连接的整体进行程序测试。
一般用黑盒法来编写测试集并进行测试。
程序错误易出现,不容易集成成果。单元测试使用的辅助模块多,适合于规模小的开发系统。
2
)渐增组装测试(增式集成测试):在单元测试的基础上,采用自顶向下或自底向上逐层安装测试,知道最后安装测试完毕。
也可采用自顶向下与自底向上相结合集成测试,单元测试与集成测试相结合来进行集成测试。
将错误分解,容易找到错误并测试成功,适合于大规模的开发系统。
而采用增式测试时又有两种选择: 自顶向下结合、自底向上结合。
① 自顶向下结合的步骤
⑴ 主控模块作为测试驱动器;
⑵ 根据集成的方式(深度或广度),下层的桩模块一个一个地被替换为真正的模块;
⑶ 在每个模块被集成时,都必须进行单元测试。
重复第二步,直到整个系统结构被集成完成。
桩函数,也叫stub函数,存根函数。用一个桩函数替换一些接口函数,用于测试当前函数的特性。
譬如说,要测试一个函数 f()
void f()
{
var = g(...);
}
f()函数中调用了函数 g(),但是在测试f()的时候g()函数可能还没有写出来
这时可以写一个g()的 存根(stub)函数,来模拟g()函数,例如让它仅仅返回一个值.这样的话就可以完成对函数f()的测试了.
② 自底向上结合
自底向上增式测试表示逐步集成和逐步测试的工作是按结构图自下而上进行的, 由于是从最底层开始集成,因此不需要使用桩模块来辅助测试 。
自顶向下测试的优点在于它可以自然地做到逐步求精,一开始就可以让测试者看到系统的框架;缺点是需要提供桩模块,并且在输入/输出模块接入系统以前,在桩模块中表示测试数据有一定的困难。
自底向上测试的优点在于,由于驱动模块模拟了所有调用参数,即使数据流并未构成有向的非环状图,生成测试数据也没有困难;缺点在于直到最后一个模块被加进去之后才能看到整个程序的框架。