目录
一、按测试对象划分
可划分为:
- 界面测试、性能测试、安装卸载测试、内存泄漏测试
- 可靠性测试、容错性测试、兼容性测试、易用性测试、安全性测试
1、界面测试
- 验证界面内容显示的完整性,一致性,准确性,友好性。
- 验证整个界面布局和排版是否合理,是否符合需求。
- 界面不同控件是否可以正常使用。
2、可靠性测试
- 可靠性 = 正常运行时间/总运行时间*100%
3、容错性测试
- 容错性测试是指系统能够处理异常,用户的错误操作而不至于系统崩溃,从而能够提高系统的可用性。
4、兼容性测试
- 系统兼容
- 硬件兼容
- 第三方兼容
5、易用性测试
-
关注用户体验,让用户获得舒适,易用的体验,针对软件这方面的测试称之为易用性测试。
- 易用性包含七个要素:
符合标准和规范、直观性、一致性、灵活性、舒适性、正确性、实用性。
6、安装卸载测试
-
最基本功能,一旦该功能出现问题,就属于优先级为紧要 Critical 的缺陷。
7、安全性测试
-
常见的安全漏洞和威胁包括:恶意数据输入和传输、SQL注入、不正当获取权限、假冒身份、篡改数据等。
-
安全性测试的方法有代码评审,渗透测试,安全运维等,通常使用工具进行测试。
-
静态安全测试是常用的安全性测试的方法。
8、性能测试
- 时间性能
- 空间性能
9、内存泄漏测试
- 人工查看代码
- 使用自动工具
二、按测试技术划分
- 黑盒测试:黑盒测试只通过软件的外部表现来检查其缺陷和错误,校验其是否按照需求实现,不考虑其内部实现过程(简单来讲,不看代码)。
- 白盒测试:白盒测试又称结构测试,通过对程序内部结构的分析和检测寻找问题,需要检查软件功能的内部实现(简单来讲,要看代码)。
- 灰盒测试:介于上述两者之间,在验证输出正确性的同时,通过一些标志来大体判断软件的内部运行情况。
三、按开发阶段划分
1、单元测试
- 测试对象:模块/方法(软件设计的最小单位)
- 测试目的:检验软件基本组成单位的正确性。
- 测试阶段:模块完成后--测试驱动开发(TDD:Test-Driven Development)
- 测试人员:白盒测试工程师或开发工程师
- 测试依据:代码注释+详细设计文档
- 测试方式:白盒测试
- 测试内容:模块接口、局部数据结构、路径、错误处理、数据行为边界
2、集成测试
- 测试对象:集成模块、模块间接口
- 测试目的:将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测,也称联合测试(联调)、组装测试。
- 测试阶段:单元测试后
- 测试人员:白盒测试工程师或开发工程师
- 测试依据:单元测试的模块+概要设计文档
- 测试方式:黑盒测试与白盒测试相结合
- 测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
3、系统测试
- 测试对象:软件系统
- 测试目的:系统测试的主要目的是为了发现潜在的问题和错误,评估软件是否满足用户和规格说明书中,对软件系统的完整性、功能、性能、可靠性、安全性和兼容性等方面的要求。
- 测试阶段:集成测试后
- 测试人员:黑盒测试工程师
- 测试依据:需求规格说明文档
- 测试方式:黑盒测试
- 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
4、验收测试
- 测试对象:整个软件工程
- 测试目的:确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件需求方展示该软件系统满足原始需求。是技术测试的最后阶段,也称交付测试。
- 测试阶段:系统测试后
- 测试人员:最终用户或需求方或第三方测试机构
- 测试依据:用户需求、验收标准
- 测试方式:黑盒测试
- 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等(与系统测试相同,但是测试主体改变)
5、其他测试
回归测试:
- 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
- 软件开发的各个阶段都会进行多次回归测试,是系统测试的一部分。
冒烟测试:
- 简单来说,先试试水。该测试会在系统测试前进行。
- 冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件主要功能和核心流程正常,在正式进行系统测试之前执行。
- 一般在开发人员开发完毕后提交给测试人员来进行测试时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。
四、按实施组织划分
- 开发方测试 / α 测试:自测 / 内测
- 需求方测试 / β 测试:用户方测试
- 第三方测试
五、按代码运行划分
- 静态测试:不运行代码的情况下,检查代码规范,软件界面,文档等。
- 动态测试:运行代码的情况下,输入相应的测试数据,检查实际输出和预期是否相符。
六、按测试手段划分
- 手工测试
- 自动化测试