软件测试的分类
1、按照阶段划分
- 单元测试
单元测试是对软件中最小的可测试单元进行检查和验证
- 集成测试
集成测试是在单元测试的基础上,测试将所有的软件单元按照要求组装成模块、子系统或系统时,有没有问题的过程,重点在各个单元的接口之间有没有问题
- 系统测试
系统测试是将软件看成一个整体去进行测试,主要根据需求进行测试,关注接口拼接完整之后,系统是否存在问题
- 验收测试
验收测试阶段一般检查需求是否符合用户需求的测试
一般有两种:
阿尔法测试:一般由公司内部发起,测试、开发、产品、运营、CEO等公司内部人员
贝塔测试:将产品交由用户来体验测试,也称公测阶段
2、按照状态划分
- 静态测试
不用运行程序的测试,就是静态测试 一般来说有代码走读;按照需求逻辑阅读源代码,阅读SQL语句
如果测试人员技术储备和经验丰富,进行静态测试会发现很深入的问题
- 动态测试
需要运行程序的测试,就是动态测试
3、按照软件执行方式划分
- 冒烟测试
测试软件产品的功能是否正常,是否具备可测试的条件 在开发提测之前,一般需要进行冒烟测试,验证软件是否可以被测试,无阻塞测试流程问题
- 探索测试
经验充足的测试人员使用最多,效率最高的测试
测试方法:在不看用例的情况下,不刻意按照需求核对的方式方法进行测试,直接根据自己的经验,快速的验证产品功能
- 随机测试
完全随机的测试,任意发挥,这种测试经常会发现一下出乎意料的问题
- 回归测试
一轮测试结束,再进行快速的重复一轮测试 主要回归策略有:全量回归、新增功能回归,发现的BUG的回归
实际应用中,时间充足则进行全量回归;时间紧张则对新增功能和已发现的BUG进行回归测试。
4、按照技术划分
- 功能测试
考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码,一般从软件产品的界面、架构出发,按照需求输入数据,然后对结果进行测试
- 性能测试
通过自动化技术,对软件的各项性能指标进行测试评估的过程,一般稳定之后才进行性能测试
- 安全测试
站在防御者的角度,尽可能的发现软件安全隐患的过程
安全测试的知识点比较分散,互联网任何技术领域的问题,都有可能导致安全问题的出现,所以安全测试是最难精通,也是最容易应用的学科
5、按照是否自动化划分
- 手工测试
人不通过工具,指通过双手“点点点”的方式进行的测试
- 自动化测试
通过程序,编写自动化测试代码,自动对软件进行的测试
- 自动化测试比例
理论比例: 10%UI自动化 20%接口自动化 70%单元测试
- 自动化测试优缺点
优点:可以解决难以测试的场景 、可以快速回归测试
缺点 不能完全替代手工、 脚本维护困难 、技术要求高,难以推广
6、按照是否清楚代码内部运行逻辑
- 白盒
完全清楚代码逻辑,针对代码进行的测试 测试方法主要包括:路径覆盖、条件覆盖、判定覆盖(分支)
在软件测试中,白盒测试一般有开发自己完成,测试不介入
- 黑盒
完全不清楚内部代码逻辑,只需按照需求输入数据,然后对输出进行验证的过程
- 灰盒
介于白盒和黑盒之间的测试