第三章;了解测试方法的分类;
掌握黑盒和白盒测试方法;
集成测试方法;
理解面向对象测试方法和自动化测试方法。;3.1软件测试方法综述
3.2基于策略和过程的测试
3.3基于源代码可见性的测试
3.4非功能测试
3.5面向对象测试
3.6自动化测试;3.1软件测试方法综述;3.2基于策略和过程的测试;集成测试阶段是对每个模块进行单元测试后,按照总体设计时确定的软件结构图和一定策略将测试完成的单元连接起来进行的测试,也称为综合测试。
1.集成测试分为四个阶段:计划、设计、实现和执行阶段。
2.集成测试的策略:集成测试,按照是否一次性按照软件结构图集成最终产品将测试策略分为非渐增式集成策略和渐增式集成策略分别进行测试。而在以渐增式集成为策略的测试中,根据集成方向将测试分为自顶向下、自底向上和三明治法。每种策略有其适用场景和优缺点。
;(1)非渐增式集成测试策略;(2)增量式集成测试策略;1)自顶向下集成;具体实施过程如下:
①确定所有的将要集成在一起的单元已经通过了单元测试。
②选择的集成测试的策略,在这里采用深度优先的方法。
③对主控制软件单元A进行测试,使用测试用被调用模拟子模块S1和S2来代替单元A原本实际所调用的软件单元B和C,然后对软件单元A进行测试,如图3-3所示。
④使用实际的软件单元B代替中的被调用模拟子模块S1,并使用S3代替软件单元B原本实际所调用的软件单元D,然后对集成B后的软件结构进行测试,在集成的过程中,必须进行回归测试,如图3-4所示。
;⑤使用实际的软件单元D代替被调用模拟子模块S3,然后对集成D后的软件结构进行测试,如图3-5所示。
⑥使用实际的软件单元E代替被调用模拟子模块S2,然后对集成C后的软件结构进行测试,并使用S4代替C模块的下级调用子模块,如图3-6所示。
⑦使用实际的软件单元E代替被调用模拟子模块S4,然后对整个软件系统进行测试,如图3-7所示。;自顶向下集成优点是:
在测试过程中,能够相对较早地验证主控模块和判断点。在一个功能划分合理的模块结构中,关键判断一般出现在较高的层次的模块中的情况比较多,所??在较上层次的模块中,会较早的遇到判断结构。如果在软件中存在控制问题,尽早发现这类问题能够减少之后的返工,所以这是十分必要的。
如果选用深度优先组装方式,可以按照软件结构图首先呈现和验证一个完整的功能,可先对逻辑输入分支进行组装和测试,检查并避免潜在的错误和缺陷,验证其功能的正确性,为以后对主要分支的组装和测试提供了保证。
在测试的过程中,部分功能可较早得到证实,能够给开发者和用户对于项目的实现带来较大的信心。;最多只需要一个驱动模块,减少了驱动器开发的费用。特定单元的驱动器一般使用难以编码的测试用例,并且与单元的接口高度耦合,这种设置限制了驱动器和测试包的复用。而采用自顶向下的策略,最多只需要维护一个顶层模块的驱动器,尽管也会遇到不可复用的问题,但维护工作量相对较小。
由于增量式测试和设计顺序的一致性,因此可以和设计并行进行。如果目标环境存在变化,该方法可以比较灵活地适应该环境变化。
支持故障隔离。例如,假设A模块的测试正确执行,但是加入B模块后,测试执行失败,那么可以确定,要么B模块有问题,要么A模块和B模块的接口有错误。;自顶向下集成测试策略缺点是:
桩的开发和维护成本较高。因为在每个测试中都必须提供桩,并且随着测试配置中使用的桩的数目增加,所以维护桩的成本将急剧上升。
当测试到底层模块时,当底层模块出现无法预计的错误时,可能会导致许多顶层模块的修改,这破坏了已知完成的测试组件。
推迟了底层模块的验证,同时为了能够有效地进行测试,需要控制模块具有比较高的可测试性。
随着底层模块的不断增加,整个系统越来越复杂,导致底层模块的测试不充分,尤其是那些重用的模块。;自顶向下集成测试策略使用场景包括:
?软件结构相对比较清晰和稳定。
?高层接口变化比较小。
?底层接口未定义或经常可能被修改。
?控制模块具有较大的风险,需要尽早测试和验证。
?希望能够尽早看到产品的系统基于需求的功能。
?在极限编程中使用探索式开发风格时,也可以采用自顶向下的集成测试策略。;2)自底向上集成;①确定所有的将要集成在一起的软件单元都已经通过了单元测试。
②设计开发驱动模块D1,用来模拟软件单元B调用软件单元D的关系,然后把测试用驱动模块D1和软件单元D集成到一起进行测试,具体实施过程如图3-9所示。
③开发测试用驱动模块D2,用来模拟软件单元A调用软件单元B的关系,然后把测试用???动模块D2与已经通过测试的B和模块D集成起来进行测试,具体实施过程如图3-10所示。
④设计开发驱动模块D3,用来模拟软件单元C调用软件单元E的关系,然后把测试用驱动模块D3和软件单元E集成到一起进行测试,具体实施过程