目录
一、软件测试阶段
1、按照开发阶段划分
1)单元测试
- 又称为模块测试
- 指针对于软件设计的最小单位—程序模块做测试
- 单元测试依据《详细设计说明书》
- 需要用到的测试方法是白盒测试
- 由白盒测试工程师或开发人员进行测试
- 测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
2)集成测试
- 在单元测试的基础上,将所有模块按照《概要设计说明书》的要求组装成子系统或系统,再去测试
- 又叫组装测试
- 是检验程序单元或部件的接口关系
- 由白盒测试工程师或开发人员进行测试
- 需要用到的测试方法是黑盒测试、白盒测试和灰盒测试
3)系统测试
- 对已经集成好的软件系统进行一系列的测试
- 通过《需求规格说明书》来进行测试
- 需要用到的测试方法是黑盒测试
- 由黑盒测试工程师进行测试
4)验收测试
- 分为正式验收测试、α测试、β测试
- 验收测试主要是以用户为主的测试
- 需要用到的测试方法是黑盒测试
- α测试是由用户、测试人员、开发人员共同参与的内部测试,属于内部测试
- β测试是内测结束后的公测,公测版本类似于王者荣耀的体验服系统
5)回归测试
- 指测试人员提出的bug已经被开发人员修改后,在重新进行测试以确认修改的bug已经真正解决的测试
- 不仅是缺陷(bug)的回归测试,开发出一个新版本后也是需要再次做回归测试
- 回归测试是测试过程中各个阶段都需要做的
- 自动回归测试将大幅降低系统测试、维护升级等阶段的成本
SRS:《需求规格说明书》
LLD:《详细设计说明书》
HLD:《概要设计说明书》
单元测试的重点是程序逻辑的覆盖率;
集成测试的重点是接口的覆盖率;
系统测试的重点是测试用例对需求规格的覆盖率;
2、按照是否手工
1)分为手工测试与自动化测试
2)自动化测试的优点
- 节约大量时间
- 处理精确的事务
- 大数据量事务
- 并发事务
3)自动化测试的局限
- 产品本身不稳定
- 开发、维护脚本工作量大
- 人才缺乏
- 不能取代手工测试,只能提高测试效率,不能提高测试有效性(不能发现更多缺陷)
- 对测试设计依赖性极大,测试设计的不好会遗漏问题
3、按照代码运行进行划分
1)静态测试
- 指不实际运行被测对象,只是静态的检查、分析程序代码、界面或文档中可能存在的错误
2)动态测试
- 指实际的去运行被测对象,检查分析实际输出结果和预期结果是否相符的一个过程
所以我们看一个测试属于静态还是动态测试,唯一的标准是看是否运行程序
4、按照软件特性划分
1)功能测试
- 是黑盒测试的一方面
- 参考下面的软件质量模型的8个特征去做测试
2)性能测试
- 是功能的另一个指标
- 主要是软件中的某一功能在指定的时间、空间的条件下,是否使用正常
- 软件的性能包括很多方面,主要有时间性能和空间性能
3)安全性测试
二、软件质量模型
1、什么是产品质量
- 分为过程质量、产品质量、使用质量
- 过程质量、产品质量由软件组织内部人员评估:SQA、开发人员、测试人员
- 使用质量由软件组织外部人员评估:用户
2、CMM:软件能力成熟度模型
CMM一共分为5级
- 初始级 :没有任何流程,凭感觉来研发
- 可重复级:可以做类似的项目和产品了,流程还不细化明确
- 已定义级:可以做其他的项目和产品,有细化具体的流程
- 已管理级:细化的流程后,对流程中的数据进行分析,更好的监控整个研发
- 优化级:能监控整个研发,并且根据项目实际情况,对已有的流程进行更好的研发
3、软件质量模型(重点)
- 软件质量模型是软件质量标准的核心,由8个特征、31个子特征去做测试
三、软件测试方法
1、黑盒测试
- 通过软件的外部表现来发现其缺陷和错误
- 把测试对象看成一个黑盒子,不考虑里面的结构
- 只是检查程序是否按照《需求规格说明书》的规定来正常实现
2、白盒测试
- 对程序内部结构的分析、检查来寻找问题
- 把测试对象看成一个装在一个透明的盒子里,检查里面的所有结构和路径
- 检查软件内部动作是否按照《详细设计说明书》的规定正常进行
3、灰盒测试
- 介于白盒和黑盒之间的测试
- 灰盒测试关注输出对于输入的正确性
- 关注内部表现,但是这种关注不像白盒测试那么详细完整,只是通过一些表征性的现象、标志来判断内部的运行状态