软件测试常见概念
一、软件质量特性
- 功能性:能够满足明确和隐含要求的功能
- 可靠性:能够处理异常情况,在错误中很快恢复
- 易用性:易懂、易学、易用、漂亮好看
- 效率性:占用少量的资源,提供适当的性能。
- 维护性:是指产品可被修改的能力
- 可移植:是指软件产品从一种环境迁移到另外一种环境的能力
二、软件测试分类
1、是否需要考虑代码——
- 黑盒测试:完全不用管内部代码
- 白盒测试:需要分析代码结构
- 灰盒测试
2、是否运行——
静态测试 :指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
动态测试: 指实际运行被测软件,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
3、是否自动化——
手工测试:测试人员手动去进行测试
自动化测试:利用代码或者工具帮助人工进行测试
4、按阶段划分——
-
单元测试:对软件中最小的可测单元进行的测试
-
集成测试:在单元测试的基础上,对多个单元组装后的产物进行测试
-
系统测试:在集成测试的基础上,把软件看作一个整体进行测试
-
验收测试:也叫交付测试,以最终用户的角度确认软件是否符合预期
5、更多的测试分类
-
冒烟测试:对基本功能,主要功能进行的测试,避免测试资源的浪费
-
回归测试:对BUG或者测试用例进行回归测试
-
随机测试:假设第一次接触软件进行随机测试,避免惯性思维
-
探索测试:同时做测试设计和测试执行,探索复杂场景,容易被忽略的场景
三、软件开发常见模型
瀑布模型——
快速原型——
四、软件测试常见模型
V模型——
W模型——
五、软件缺陷
定义:软件或程序中存在的各种问题及错误
标准:
1、软件未达到需求规格说明书标明的功能
2、软件出现了需求规格说明书指明不会出现错误的地方
3、软件的功能超出了需求规格说明书指明的范围
4、软件出现了需求规格说明书虽未指明,而应该达到的目标
5、软件测试人员认为软件难以理解,不易使用,运行速度慢