goodby 2020-04-10
第10讲 软件测试基本理论
本章内容
-软件开发阶段划分
-软件测试阶段划分
-软件测试模型
-软件测试的分类
一、软件开发阶段划分
1、需求分析——需求规格说明书
2、概要阶段——概要设计说明说
3、详细阶段——详细设计说明书
4、编码
二、软件测试阶段划分
1、单元测试——模块测试,最小的测试单位
(1)依据:详细设计文档
(2)以功能测试为主,重点核心模块儿可以进行白盒测试(检查代码)
(3)可能需要编写驱动模块儿或者桩模块儿
? 驱动模块:模拟北侧模块儿上一级模块(调用被测的那个模块)
? 桩模块:模拟被测模块的下一级模块(被被测模块调用的模块)
(4)在实际工程中,为了节约项目成本,单元测试经常只由开发人员完成,有悖于测试思想(测试必须由第三方来完成)
2、集成测试
冒烟测试
(1)拿到一个新的集成版本的时候,一般先做冒烟测试——利用较少的时间(0.5天——2天)、较少的人(1-3名,经验更丰富)对软件的主要功能进行测试,主要判断是否值得一测。
(2)一个新版本测试思路:
? A、冒烟测试
? B、返测:对发现的缺陷是否进行修复的测试
? C、回归测试:对前面版本的所有的用例再执行一遍(保证旧的功能正确)
? D、对新添加的功能进行测试
3、系统测试
(1)对整个系统软件进行全面完整的测试过程
(2)在系统测试之前一般有“确认测试”:
? A、确认该程序值不值得一测(冒烟测试)
? B、确认相关的文档是否齐全(尤其是交给用户的文档)
4、验收测试——阿尔法测试、贝塔测试
(用接受度测试、用户体验‘UTA,user acceptance test)
(1)alpha测试:由最终的用户在开发的环境中,对软件进行测试(在实际中也经常由开发方自主完成)
(2)beta测试:由最终的用户在实际的环境中进行测试使用
对于一些没有固定用户群体的公共类软件(办公软件),一般会发行公测版(beta版本)
三、软件测试模型
1、概念:测试模型体现的是开发和测试的对应关系
2、V模型
(1)优点:测试阶段明确,既包括单元级也包括用户级,与开发关系明确
(2)缺点:容易理解成测试只是开发后的一个工作,不符合越早测试和不断测试的原则
(3)在编码之前,我们需要对相关开发文档、需求文档进行测试——越早测试
根据相关文档,在测试执行之前编写各个阶段的测试计划、测试用例等文档——测试过程是有计划性的
注意:
如果做单元测试,需要有详细设计文档
如果做集成测试,需要有概要设计文档
如果做系统功能测试,需要有需求文档
3、W模型
四、软件测试的分类
按照测试技术划分
1、白盒测试——逻辑结构测试,对代码进行测试
? 白盒测试重点看代码的逻辑、算法、结构是否正确,要求必须懂得代码,需要编写测试用例
? 在单元测试时,白盒应用相对较多
? 在集成测试时,灰盒应用相对较多
? 在系统测试时,黑盒测试
2、黑盒测试——功能测试(必须)
3、灰盒测试
按照是否运行代码进行划分
1、静态测试:界面、文档、代码
? 静态中的代码测试重点关注代码的规范性,一般检查变量的命名,注释的频率,编程的规范性,不需要写测试用例,一般只需要有代码审查单。
? 一般经常把白盒测试和静态测试的要素结合在一起,形成“静态白盒测试”。
2、动态测试
按照软件特性分类
1、功能测试
2、性能测试——分布式软件(B/S C/S) 必须使用工具LoadRunner
3、回归测试
4、冒烟测试
5、随机测试