按照测试层次划分
- 底层测试:单元测试
- 接口层次:集成测试,完成系统内单元之间接口和单元集成为一个完整系统的测试
- 系统层次:系统测试
- 用户层次:验收测试,验证是否是用户真正所需要的产品特性,验收测试关注用户环境、用户数据,而且用户也参与到测试过程中
按照测试的对象划分
- 单元测试:包括组件测试、模块测试等
- 程序测试
- 系统测试
- 文档测试:包括需求文档、设计文档、用户手册等
- Web应用测试、客户端测试
- 数据库测试、服务器测试
按照测试阶段划分
对于传统的测试流程,一般分为:需求评审、单元测试、集成测试、系统测试、验收测试、α测试、β测试等阶段
对于敏捷测试流程,一般分为:需求分析、迭代测试计划、持续的单元和系统测试、验收测试
不同的测试流程可能会有不一样的结果
按照测试目的划分
功能测试:也称正确性测试,验证每个功能是否按照事先定义的要求那样工作
性能测试:测试系统在不同负载条件下的系统具体的性能指标
安全性测试:测试系统在应对非授权的内部/外部访问、有意攻击时的系统防护能力
兼容性测试:测试在系统不同运行环境(网络、硬件、第三方软件等)下的实际表现
可靠性测试:检验系统是否能保持长期稳定、正常的运行,如确定系统平均故障间隔时间(MTBF)。包括:强壮性测试和异常处理测试
压力测试:也称负载测试,用来检查系统在不同负载(如数据量、并发用户、连接数等)条件下的系统运行情况,特别是高负载、极限负载下的系统运行情况,以发现系统不稳定,系统性能瓶颈、内存泄漏、CPU使用率过高等问题
灾难恢复性测试:在系统崩溃、硬件故障或其它灾难发生之后重新恢复系统和数据的能力测试
回归测试:为保证软件中的新变化(新增的代码、代码修改等)不会对原有功能的正常使用有影响而进行的测试。即,在满足用户需求的原有功能不应因代码变化而出现任何新的问题
安装测试:在一个真实的或近似的用户环境中,验证系统是否能按照安装说明书成功地完成系统地安装,其中要考虑环境的不同设置或配置、安装文档的准确性等
按照被测软件是否被执行
静态测试:包括对软件产品的需求和设计规格说明书、对程序代码的审查以及静态分析等
动态测试:在系统运行时进行测试。通过真正运行程序发现错误,通过观察代码运行过程,来获取系统行为、变量实时结果、内存、堆栈、线程以及测试覆盖度等各方面的信息,来判断系统是否存在问题,或者通过有效的测试用例,对应的输入输出关系分析被测程序的运行情况,来发现缺陷
根据代码可见度划分
白盒测试:也称结构化测试、逻辑驱动测试。可应用在程序的单元测试,覆盖程序的结构特性或逻辑路径,同时可扩展到控制流路径、业务流程路径和数据流路径等的覆盖
白盒测试的基本原则:
(1)在执行测试时,先考虑各个分支被覆盖
(2)再考虑完成所有逻辑条件分别为真值(True)和假值(False)的测试
(3)若有更高的质量要求,测试对象流程图中所有独立路径至少被运行一次
(4)检查内部数据结构,注意上下文的影响,以确保其测试的有效性
黑盒测试:数据驱动测试,更关注输出。不关注软件内部结构,着眼于程序外部用户界面,关注软件的输入和输出,关注用户需求,直接获得用户体验,从用户角度或扮演用户角色来验证软件功能,验证产品每个功能能否正常使用,评估软件的使用质量。
黑盒测试方法常发现以下缺陷:
(1)有错误的功能或遗漏了某项功能
(2)不能正确地接受输入数据、输出数据错误的结果
(3)功能操作逻辑不合理
(4)界面出错、不美观
(5)安装过程中出现问题,安装步骤不清晰、不够灵活
(6)系统初始化问题等
按照是否由软件工具完成测试划分
- 手工测试
- 自动化测试:是通过计算机运行测试工具和测试脚本自动完成软件测试工作的方法