软件测试按照不同的维度可以有不同的分类方式。那么到底能如何分类呢?让我们来看一下吧~
按照开发阶段划分类
1)单元测试
测试对象是软件最小的组成部分也就是模块
测试阶段:编码后或编码前(TDD即测试驱动开发)
测试对象:模块
测试人员:开发人员或白盒测试工程师
测试依据:设计文档+代码和注释
测试方法:白盒测试
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
2)集成测试(AKA功能测试)
将几个相关的模块集成在一起构建成相应的功能,并对其进行测试。着重测试几个模块之间的交互。
测试阶段:一般在单元测试结束后
测试对象:模块间的接口
测试人员:白盒测试工程师或开发人员
测试依据:单元测试模块+概要设计文档
测试方法:白盒测试和黑盒测试相结合
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能的正确性、全局数据结构、单模块缺陷对系统的影响
3)系统测试
将软件看成是一个完整的系统。对所有功能进行测试,这部分还包括回归测试和冒烟测试。该部分是整个测试流程中耗时最长的部分。
测试阶段:集成测试之后
测试对象: 整个系统
测试人员:黑盒测试工程师
测试依据:需求规格说明书
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全等
回归测试和冒烟测试穿插在该部分中,回归测试是指在系统修改过后重新进行以前的测试以确定修改没有引入新的bug,该测试最好通过自动化测试来完成从而减少工作量。
冒烟测试则是指在系统完成新的编译后编译人员首先对基本功能进行测试确保不会出现问题,然后再进行后续详细的测试工作。
4)验收测试
该测试是部署软件前的最后一次测试操作也叫作交付测试。
测试阶段:系统测试之后
测试对象:整个系统
测试人员:最终用户或需求方
测试依据:用户需求和验收标准
测试方法:黑盒测试
测试内容:和系统测试一样
按照是否查看代码进行分类
1)黑盒测试
黑盒测试也成为功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入输出。
2)白盒测试
白盒测试又称为结构测试或透明盒测试,主要研究源代码和程序结果。
3)灰盒测试
介于白盒测试和黑盒测试两者之间, 即关心软件的输入输出也关心软件的内部结构。
按照测试对象进行划分
1)业务测试
测试系统将各个模块联接起来,模拟用户的真实业务场景。
2)界面测试
测试用户界面的布局是否合理,整体风格是否一致、各个控件的放置位置是否符合客户的习惯,还有操作系统的便捷性,导航的简单易懂性,页面元素的可用性,文字图片的正确性。
3)容错性测试
检查软件在异常条件下自身是否具有防护性措施或从灾难中恢复的措施。
4)兼容性测试
检查软件在各个平台下给出相同的输入是否能够得到相同多的输出结果,是否能够在各个平台正常的工作。
5)安全性测试
该方便较为专业,一般有信息安全从业者进行测试,主要测试系统时候存在能够被网络黑客利用的漏洞。
6)性能测试
对系统性能进行测试,确认系统性能是否满足设计指标,主要从响应时间,TPS,资源利用率,吞吐量,处理精度等方面进行入手。
7)内存泄漏测试
该部分测试人员有一定的代码知识和相关工具的使用,查找程序中是否存在内存泄漏的情况。