软件测试阶段划分以及测试分类

软件测试基本理论

一、软件开发阶段的划分
1、需求分析——需求规格说明书
2、概要设计——概要设计说明书
3、详细设计——详细设计说明书
4、编码
二、软件测试阶段
1、单元测试
(1)依据:详细设计文档
(2)以黑盒(功能)测试为主,核心模块或风险较高模块可以辅助使用白盒测试(检查代码)
(3)多个模块可以同时并行进行
(4)可能需要测试人员编写驱动模块和桩模块
驱动模块:模拟被测模块的上一级模块(调用被测模块的那个模块)
桩模块:模拟被测模块下一级的模块(被被测模块所调用的模块)
(5)在现在很多工程中,由于成本问题,可能会省略单元测试过程,一般由开发人员进行自我检查
2、集成测试
(1)会形成很多临时版本,在拿到一个新版本后,一般使用较少的时间(0.5——2天)和较少的人(1——3个,经验更丰富)对软件的主要功能进行检查验证,再由全部测试人员投入其中;如果软件不值得一侧,打回开发组——冒烟测试
(2)基本测试思路:
1)冒烟测试
2)返测(复测):针对解决的bug进行测试,检查其是否修复
3)回归测试:对上一个版本中的用例再执行一遍
4)对该模块新添加的功能进行测试
(3)集成测试以功能测试为主,一般对于发现bug的地方,可以适当采用白盒测试
3、系统测试
(1)在系统测试之前,一般会有确认测试,需要确认:
1)整个系统是否值得一测——冒烟测试
2)相关文档(尤其是交给用户的)是否齐全——文档的确认
确认测试用较少的任何时间对程序和文档进行确认,如果程序较为稳定,可以进入全面的系统测试阶段,如果文档不全,需要让相关人员解决
4、验收测试(用户体验测试UAT,user acceptance test):α、β
(1)alpha测试:在开发环境中,由最终用户参与的测试(在实际工作中,经常由开发测试人员充当用户完成此阶段)
(2)Beta测试:在用户实际的环境中,由最终用户参与的测试,一般是用实际数据
三、软件测试模型
1、体现开发和测试活动的对应关系
2、V模型
(1)优点:指明了测试划分的不同阶段,每个阶段与开发阶段的对应关系明确,既包括代码级测试又包括用户级测试
(2)缺点:给人感觉测试只是开发完成之后才参与的活动,不符合越早测试和不断测试的原则
(3)深入理解:在每个开发阶段完成之后,测试人员应该参与相关的文档测试,并根据文档对后期的测试工作进行计划和用例的编写(部分)
3、W模型
由双V组成,第一个V为开发活动,第二个V为测试活动,既包括文档测试也包括程序测试
四、软件测试的分类
黑盒测试(功能测试)
白盒测试(逻辑结构测试)
灰盒测试
静态测试:界面、文档、代码(不实际运行软件)
动态测试
按功能特性分类:功能测试、性能测试
说明:1、 任何阶段、任何模块都要进行黑盒测试,只对风险较高、核心模块进行白盒测试(代码测试)
2、白盒测试重点检查代码逻辑功能、结构的正确性,白盒测试用例,成本非常高,在单元测试、集成测试可能会有一些应用,在后期基本不用
3、静态的代码测试主要检查代码的标准和规范,不需要用例,只要有代码审查单
经常测试时结合白盒和静态测试的要素,形成“静态白盒测试”
4、返测(复测):针对程序员修改的错误进行测试,验证错误是否被修改
5、回归测试:最大特点是重复
6、冒烟测试
7、随机测试(猴子测试):一般在用例执行完之后,如果还有时间,可以采用随机测试(盲目性较大)或者错误猜测(具有针对性,根据经验判断哪个地方可能容易出错,对这个地方有意识的多测)

你可能感兴趣的:(软件测试)