1 开发人员测试的重要性
- 早期发现的错误容易解决;
- 高质量的基础元素更容易建立起高质量的系统;
- 开发后期发现的缺陷,很难追踪其根源;
- 解决开发后期发现的缺陷,在回归测试上需要投入更大的时间成本;
- 开发阶段做的测试,对整个项目时间产生积极影响;
- 异常处理只有在单元测试才能被很好的处理。
2 集成方法
2.1 三种策略和组合策略
- 三种策略:
自上向下集成; 自下向上集成; 混合集成。
- 组合策略:
集成部件的可用性; 系统规模; 是新系统还是在现有系统上增加功能; 体系架构。
2.1.1 混合集成
- 集成的前提条件为:
① 系统基本稳定,只需添加小部分新的模块; ② 系统规模相对较小; ③ 各模块之间紧耦合。
- 方法:将所有的模块集成在一起,将系统当成一个整体进行测试;
- 优点:不需要使用占位与驱动程序,策略比较简单;
- 缺陷:难以发现引起缺陷的原因,只有在所有模块准备好的前提下才能进行集成。
2.1.2 自下向上集成
- 该策略基本适用于任何系统;
- 方法:从低层次的、相互之间依赖性最少的模块开始,可使用驱动程序来测试这些模块;
- 策略:逐步建立系统,或者首先并行地建立子系统,然后集成一个完整系统;
- 阶段:开发过程的早期阶段;
- 优点:尽早检测出接口的问题,且解决成本低;
- 缺点:需要使用许多驱动程序来执行这个策略,比较耗时。
2.1.3 自上向下集成
- 由系统的控制结构来指导;
- 缺点:需求变化对底层模块产生影响,从而导致上层模块需要更改。
2.1.4 集中式集成
- 使用场景:
① 当系统的中心部分对其他部分的运行必不可少时; ② 必须有中心部分才能进行测试,且改部分很难由占位来代替; ③ 系统的体系架构为:首先开发中心部分作为产品,然后发布新模块或子系统来升级系统或增加新功能。
2.1.5 分层集成
- 用于分层式体系架构的系统;
- 各层之间仅通过接口与其上下层直接相连;
- 每一层可以单独使用自上而下、自下而上或混合策略。
2.1.6 客户/服务器集成
- 用于客户/服务体系架构;
- 客户端:使用自上而下、自下而上或混合策略;
- 服务器:使用占位和驱动程序的策略。
- 将服务器和客户端集成到一起。
2.1.7 协作集成
- 用于面向对象的系统;
- 协作被清楚定义且覆盖所有的部件和接口;
- 协作之间相互重叠,没有必要测试每一个动作。
2.2 应用集成师
- 应用集成师(AI)主要是协调单元测试和集成测试;
- AI对集成过程的进展以及交付的系统质量负责;
- 一个AI最大的控制范围是10个开发人员。
3 生命周期
- 指的是开发人员测试的盛生命周期;
- 虽然没有测试团队的测试生命周期严格,但是有一些区别。
3.1 计划和控制
- 相关活动如下:
① 明确任务; ② 建立测试基础; ③ 定义测试策略; ④ 列出测试交付清单; ⑤ 设置组织; ⑥ 定义基础设施; ⑦ 建立进度表; ⑧ 合并与维护测试计划; ⑨ 控制测试; ⑩ 报告。
3.2 准备阶段
- 审查测试基础的可测试性;
- 描述基础设施。
3.3 细化阶段
- 细化测试;
- 创建工具。
3.4 执行阶段
- 执行测试用例并记录结果;
- 单元测试的终止标准用集成测试的输入标准来描述;
- 所有部件都集成起来,且待测试系统符合集成测试的输出标准时,终止集成测试;
- 单元测试的执行者通常为开发人员。
3.5 完成阶段
- 报告测试对象的状况。