软件测试过程
- 尽早测试
1、测试人员早期参与软件项目
2、尽早的开展测试执行工作 - 全面测试
1、对软件的所有产品进行全面的测试。
全面测试指需求文档,设计文档,程序代码以及相关数据
2、软件开发及测试人员(有时包括用户)全面的参与到测试工作中 - 全过程测试
1、测试人员要充分关注开发过程
2、测试人员要对测试的全过程进行全程的跟踪 - 独立的、迭代的测试
1、测试活动是独立的
2、测试活动应该是循环往复、不断的进行
软件测试的分类
-
按照开发阶段划分
1、单元测试
单元测试又称模块测试,单元测试需要从程序的内部结构出发设计测试用例,多个模块可以平行的独立进行单元测试。
单元测试一般要读程序和代码。大多数时候,单元测试都是由开发人员自己完成。(但是一般不认为是在做测试)
2、集成测试
集成测试也叫做组装测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。
集成测试比较多的涉及到接口测试(接口测试工具和方法需专门学习),它是一个持续不断的过程。
3、确认测试
确认测试被称为冒烟测试,一般不作为正式的测试环节或者测试阶段。确认测试是测试功能是否实现,一般是正向的测试。
通过了确认测试之后的软件,才具备了进入系统测试阶段的资质。
4、系统测试
系统测试是在真实的系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置,连接,并最终满足用户的所有需求。
系统测试是全面的(系统所有功能的测试),模拟所有的软件用户的操作。系统测试是全方位的(和硬件系统的联系,和系统软件的联系,和其他软件的关系)
5、验收测试
验收测试是软件产品检测的最后一个环节。一般是由供求双方达成的。
一般有三种验收测试的主体:
a、α测试:软件的开发商自己进行的交付前的测试
b、β测试:软件的需求方自己进行的测试
c、γ测试:第三方的软件测试 -
按照测试技术划分
1、黑盒测试
黑盒测试就是把测试对象看成是一个黑盒子,完全不考虑程序内部的结构和处理过程。
黑盒测试是在程序界面处测试,只是检查程序是否按照需求的规定正常实现。
2、白盒测试(需读懂编写代码)
白盒测试可以把程序看成是装在一个透明的盒子里,需要检查程序的内部结构,检查软件内部是否按照设计说明的规定正常进行。
白盒测试又称结构测试。
3、灰盒测试
介于黑盒测试与白盒测试之间的测试。关注输出对于输入的正确性。比如接口测试。 -
按照代码运行划分
1、静态测试
静态测试指不实际运行被测对象,而只是静态的检查程序代码、界面或文档中存在错误的过程。
代码测试:主要测试代码是否符合相应的标准和规范
界面测试:主要测试软件的实际界面与需求中的说明是否相符(进入界面后不操作,只看)
文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求
2、动态测试
动态测试指实际运行被测对象,输入相应的数据,运行程序,检查结果与预期是否相符。 -
按照软件特性划分
1、功能测试
功能测试是黑盒测试的一方面,主要是实际检查软件的功能是否符合用户的需求。
a、逻辑功能测试
b、界面测试
c、易用性测试
d、安装/卸载测试
e、兼容性测试
2、性能测试
软件的性能包括很多方面,主要有时间性能和空间性能两种。比如服务器慢,占用CPU内存大
3、安全性测试
验证系统的保护机制,使其不被非法入侵。 -
其他测试
1、回归测试
回归测试是指在对软件的新版本测试的时候,把以前测试过的东西在新版本中重新测一遍。
目的:
a、验证之前版本产生的缺陷是否已全部被修复
b、确认修复的缺陷没有引发新的缺陷
2、冒烟测试
冒烟测试先验证一下软件的基本功能是否实现,是否具备可测性
3、随机测试
测试人员基于经验和直觉,发现一些边缘性的错误
4、猴子测试
随便乱点,没有主观意识的测 -
按测试运行主题划分
1、手工测试(功能测试):点点点
2、自动化测试:利用工具软件,或者编写代码去测
测试分类总结
加粗标记为该阶段主要的测试方法
单元测试 | 集成测试 | 确认测试 | 系统测试 | 验收测试 | |
---|---|---|---|---|---|
测试技术 | 黑盒/白盒 | 黑盒/白盒/灰盒 | 黑盒/白盒 | 黑盒/白盒 | 黑盒/白盒 |
代码运行 | 静态/动态 | 静态/动态 | 静态/动态 | 静态/动态 | 静态/动态 |
软件特性 | 功能/性能/安全性 | 功能/性能/安全性 | 功能/性能/安全性 | 功能/性能/安全性 | 功能/性能/安全性 |
其他测试 | 冒烟测试 | 回归测试 | 随机测试/猴子测试 | ||
测试手段 | 手工/自动化 |