测试第六讲-开发测试阶段划分
一、软件开发的阶段划分
1、需求分析阶段
有需求分析人员完成,产出物:《需求规格说明书》
2、概要设计阶段
3、详细设计阶段
一般由系统架构师(分析师)完成,产出物:《概要设计说明书》、《详细设计说明书》
4、编码阶段
由开发人员完成
产出物:程序
面试题:哪个阶段引入的bug最多?哪个阶段最少?
需求分析阶段引入的bug最多,其次是设计阶段,最少的是编码阶段。结论:1)测试不能只测试程序,文档也必须要测2)测试工作应该尽早介入,并且贯穿整个开发周期始终(尽早测试原则,不断测试原则)
二、软件测试的阶段划分
说明:没有涵盖软件测试的文档测试部分
1、单元测试
- )单元测试是整个测试阶段中的最小测试单元,一般测一个功能,一个方法(函数),一个窗口,一个类等
- )单元测试阶段主要依据:详细设计文档
- ——单元测试阶段主要的测试方法是白盒测试。
- )在企业中,单元测试一般是程序员完成,这样可以减少测试成本(省钱),但是测试质量不能保证,所以企业通常会采取:互换测试或程序员测第一轮(白盒),测试人员测第二轮(黑盒)的方式提高单元测试质量。
- )在单元测试中测试者需要编写驱动模块和桩模块
驱动模块:模拟被测模块的上一级模块(调用被测模块)
桩模块:模拟被测模块的下一级模块(被“被测模块”调用)
总结:驱动模块à被测模块à桩模块
6. ) 单元测试非常重要,如果不能保证测试质量,在集成后再发现问题,解决的成本会更大。
2、集成测试(组装测试)
- )通常在单元测试基础上,将软件的功能模块逐步合并在一起测试的过程,就是集成测试
- )合并的过程一般是逐步完成的,会形成很多的临时版本。
- )集成测试阶段主要以黑盒测试为主,核心功能模块适当辅助白盒测试。
- )冒烟测试:也叫“版本验证测试”,在测试组拿到一个新版本时,会先做“冒烟测试”—选择较少的人(1-3人,经验丰富),花费较少的时间(0.5-2天),对软件的核心部分(主体功能)进行测试,如果核心部分功能没问题,那么全组展开全面测试,如果问题较多,版本不稳定,就退回给开发方。
5.) 集成测试中,测试组拿到新版本后的工作思路:
--首先:做冒烟测试,验证版本是否可以接受
--返测:对在这个版本中已经解决的bug,进行重新测试
--回归测试:对上一个版本所有测过的内容,重新测试一遍
--对版本中的新功能进行测试(有些特殊版本是专门修复缺陷的,可能没有新功能)
--主要参考:概要设计文档
3、系统测试
- )在整个功能全部完成后,对集成了硬件、软件的完整系统进行模拟真实的测试
- )系统测试阶段的测试重点:(1)在于整个系统的正确运行(功能、性能)(2)系统兼容性
- )主要依据:需求文档
- )系统测试阶段全部为黑盒测试
- )在系统测试之前,一般会安排一次“确认测试”,主要确认:
- 该软件系统是否可以进入全面的系统测试阶段
- 确认相关的文档是否齐全(尤其是给用户的文档和参与认证的文档)
说明:确认测试一般时间较短,参与人员较少,所以一般不与单元、集成、系统、验收阶段并列。
4、验收测试(UAT: User acceptance Testing 用户接受度测试)
- )由用户参与的检查过程
- )可以分为两个小阶段:
- Alpha测试 阶段
由开发方提供测试环境(开发方对bug的控制会更强),由最终用户参与对软件进行检查。(经常由开发团队替代最终用户完成,或由第三方测试机构代替)
2、beta 测试阶段
在用户的实际环境中(开发方对bug的控制较弱),由最终用户对软件进行检查。
例如:公共类软件(QQ、网络游戏、输入法等),一般将软件免费发放给用户,通过收集用户使用中遇到的问题,来收集bug。