集成测试
集成测试的原因:
模块之间的不利影响。
可能发现模块间接口的错误。
子功能的和不是期望的功能。
每个模块误差的组合,超过实际。
时序问题、竞争问题。
测试目标:检测需求中业务流程,数据流的正确性。
需求中明确的业务流程,或多个功能模块组合成的一个大模块。
利用有效的和无效的数据来执行各个用例、用例流和功能以核实以下内容。
使用正确数据得到预期结构。
使用错误数据得到警告。
各个业务规则都得到了正确应用。
完成标准:所有的缺陷完全解决。
测试的重点:指再测试的时候需要着重测试的地方。优先级可以和需求的严重程度来确定。
需考虑的特殊事项:对测试的实施和执行有影响的事项。
相依赖性:各个模块的依赖关系。
API:应用程序接口。
合成和聚集。
继承。
全局变量。
调用API。
服务器对象。
被用作消息参数的对象。
集成的方法:
基于分解的集成,基于调用图的集成,集成测试的新方法。
大爆炸测试:通过少量测试用例来验证整个系统的稳定性。
策略将所有构件集合在系统中,而不考虑相依性和风险。
优点:迅速完成集成,使用少量测试用例。
缺点:错误难以定位。错误隐藏。
应用于:经过充分测试或好系统经过少量修改或一些好构件构成系统。
自顶向下测试:从顶层开始,以控制层次的顺序增加构件已论证系统的稳定性。
策略:从主程序开始,所有根下层的单元都叫桩。每一层按广度优先进行,用完全实现代替存根,并为下层置根。直到所有构件集成。
优点:减少了驱动器的开发,测试和集成可以较早的开发。如果底层模块不确定,避免提交不稳定的接口。
缺点:存根开发代价大,在底层构件的需求会导致顶层构件修改,充分测试底层构件比较困难。
并行软件开发:把需求分为多层,按优先级开发。增量式开发。框架式开发。
自底向上集成:
从具有最小相依性的构件开始,按照相依性的次序依次将构件加入,以证明其稳定性。
从相依树的叶结点开始向根移动,编写叶结点的驱动器,为上一级编写构建代码,整个系统使用根一级的构件进行测试。
优点:不限制可测试性。
叶节点的测试和集成可以并行。
缺点:驱动器开发耗费量大。
高层构件的可操作性和互操作性不充分。
三明治集成:是自顶向下,自底向上的集合。
客户/服务器的集成:
目的:论证客户和服务器之间交互的稳定性。