按照开发阶段划分(W模型)
复习:W模型后半段单元测试、集成测试、系统测试、验收测试
- 单元测试(模块测试、最小功能点测试)
- 一般要读程序和代码。大多数时候,单元测试都是由开发人员自己去完成(交叉)(但是一般不认为是在做测试)。
- 集成测试(组装测试 检验程序单元或者部件的接口关系)
- 比较多的涉及到接口测试(接口测试工具)
- 它是一个持续不断的过程
- 确认测试(冒烟测试、非正式测试环节)
- 功能是否实现——一般是正向测试
- 系统测试(检查完整的程序系统能否和系统正确配置、连接,并最终满足用户所有需求)
- 包括硬件、外设、网络和系统软件、支持平台等
- 系统所有功能的测试
- 模拟所有的软件用户的操作
- 验收测试(一般有三种验收测试主体)
- α测试:软件开发商自己进行交付前测试
- β测试:软件需求方自己进行测试
- γ测试:第三方软件测试
按照测试技术划分
- 黑盒测试
- 白盒测试(又称结构测试、看代码,从程序内部结构分析问题,比如5+5=10、2*5=10,那种运算比较好)
- 灰盒测试(介于黑白之间,关注输出对于输入的正确性,现在都是接口测试,可以借助百度翻译开放平台学习)
按照代码运行划分
- 静态测试(不运行程序、阅读代码)
- 代码是否符合规范
- 界面是否与需求相符
- 用户手册和需求说明是否符合用户的实际需求
- 动态测试(运行程序)
按照软件特性划分
- 功能测试:黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求
- 逻辑功能测试
- 界面测试
- 易用性测试
- 安装/卸载测试
- 兼容性测试
- 性能测试
- 功能的另一个指标,主要关注软件中的某一功能在指定的时间、空间条件下,是否使用正常
- 软件的性能包括很多方面,主要有时间性能和空间性能两种
- 安全性测试
- 验证安装在系统内的保护机制能否在实际应用中对系统进行保护,使之不被非法入侵,不受各种因素的干扰。
其他测试类型
- 回归测试(新版本测试时,重新执行原来的的版本所有测试用例)
- 冒烟测试(确认测试——正向)
- 随机测试(基于经验和直觉)
- 猴子测试(把自己当成小动物或者不懂产品的笨蛋,随便乱点,不带任何主观意识)
不同阶段测试偏重点
| 单元测试 | 集成测试 | 确认测试 | 系统测试 | 验收测试 | |
|---|---|---|---|---|---|
| 测试技术 | 黑盒、白盒 | 黑盒、白盒、灰盒测试 | 黑盒、白盒 | 黑盒、白盒 | 黑盒、白盒 |
| 代码运行 | 动态、静态 | 动态、静态 | 动态、静态 | 动态、静态 | 动态、静态 |
| 软件特性 | 功能、性能、安全性 | 功能、性能、安全性 | 功能、性能、安全性 | 功能、性能、安全性 | 功能、性能、安全性 |
| 其他测试 | 按需求即可 | 按需求即可 | 冒烟测试 | 回归测试 | 随机测试、猴子测试 |
| 测试手段 | 手工、自动化 | 手工、自动化 | 手工、自动化 | 手工、自动化 | 手工、自动化 |
- 所有测试的标准都是建立在用户需求之上。
- 软件测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间要服从质量。
- 事先定义好产品的质量标准,只有有了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。
- 软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试。
- 穷举测试是不可能的。
- 第三方进行的测试会更客观,更有效。
- 软件测试计划是做好软件测试工作的前提。
- 测试用例是设计出来的,不是写出来的,所以根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。
- 对发现错误较多的程序段,应进行更加深入的测试。一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。
- 重视文档,妥善保存一切测试过程文档(测试计划、测试用例、测试报告等)。
- 应当把“尽早和不断地测试”作为测试人员的座右铭。
- 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。
- 测试应从“小规模”开始,逐步转向“大规模”。
- 不可将测试用例置之度外,排除随意性。
- 必须彻底检查每一个测试结果。
- 一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。
- 对测试错误结果一定要有一个确认的过程。



