一、集成测试概念
集成(Integration):把多个单元组合起来形成更大的单元;
集成测试(Integration Testing):在假定各个软件单元已经通过了单元测试的前提下,检查各个软件单元接口之间的协同工作是否正确;
二、模块分析
1.集成测试的第一步,,也是最重要的工作之一;
2.2/8原则,测试中80%的错误可能源于20%的模块;
3.一般将模块分为3个等级:高危模块、一般模块和地位模块;
4.高危模块应该优先测试;
三、模块划分的原则
1.本次测试希望测试哪个模块;
2.把与该模块最紧密的模块聚集在一起;
3.再考虑划分后的外围模块,并分析外围模块和被集成模块之间的信息流是否容易模拟和控制;
四、集成测试和系统测试的区别
1.测试对象:集成:单元; 系统:系统;
2.测试时间:集成:开发过程; 系统:开发完成;
3.测试方法:集成:黑白结合(灰盒);系统:黑盒;
4.测试内容:集成:接口; 系统:需求;
5.测试目的:集成:接口错误; 系统:需求不一致;
6.测试角度:集成:开发者; 系统:用户;
五、集成测试与开发的关系
集成测试与软件测试开发过程中的概要设计阶段相对应,软件概要设计中关于整个系统的体系结构是集成测试用例输入的基础。
六、集成测试的层次与原则
1.层次:模块内、模块间、子系统内、子系统间、类内、类间;
2.原则
七、集成测试策略
1.非渐增式集成:先单独再集合;(先单元测试再集成测试)
2.渐增式集成:在已测试的基础上,不断的+1+1+1;(单元测试和集成测试共同进行)
八、辅助模块
1.驱动模块(Driver):用以模拟待测模块的上级模块;
2.桩模块(Stub):也称存根程序。用以模拟待测模块工作过程中所调用的模块。桩模块一般只进行很少的数据处理,例如打印入口和返回,以便于检测模块与其下级模块的接口。
九、渐增方式
1.非渐增式集成只适用于规模较小的应用系统;
2.目前普遍采用渐增式集成方法;
3.渐增方式:自顶向下、自底向上和三明治集成。
十、自顶向下
使用深度优先的策略,或者使用宽度优先的策略。
步骤:
1.对主模块进行测试,测试时用桩模块代替所有直接附属于主控模块的模块;
2.根据深度优先或宽度优先,每次用一个实际模块代换一个桩模块;
3.为了保证加入模块没有引进新的错误,可能需要进行回归测试,即全部或部分地重复以前做过的测试;
优点:
1.可以及早发现主控模块的问题解决;
2.如果选择深度优先,可以在早期实现并验证一个完整的功能,增强开发人员和用户双方的信心;
缺点:
桩模块代替了低层次的实际模块,没有重要的数据自下往上流,可能遇到逻辑的问题。
十一、自底向上
从原子模块开始组装和测试;不需要桩模块;
步骤:
1.把低层模块组合成实现某个特定的软件子功能的族;
2.需要写一个驱动程序,用于测试的控制程序,协调测试数据的输入和输出;
3.对由模块组成的子功能族进行测试;
4.去掉驱动测试,沿软件结构自下向上移动,把子功能族组合起来形成更大的子功能族;
十二、三明治集成
特点:
1.混合增量式测试策略,综合了自顶向下和自底向上两种集成方法的优点;
2.桩模块和驱动模块的开发工作都比较小;
3.代价:一定程度上增加了定位缺陷的难度;
过程:
1.确定届层;
2.对界层下的各层使用自底向上集成策略;
3.对界层上的各层使用自顶向下集成策略;
4.对界层所在层各模块同相应的下层集成;
5.对系统进行整体测试;
十三、集成测试用例设计
1.为系统运行设计用例;
2.为正向集成测试设计用例;
3.为逆向集成测试设计用例;
4.为满足特殊需求设计用例;
5.为覆盖设计用例;
十四、集成测试过程
计划阶段(集成测试计划)、设计阶段(集成测试方案)、实施阶段、执行阶段、评价阶段。