验收测试是部署软件之前的一个测试操作,是技术测试的一个阶段,也称为交付测试。在软件产品完成了单元测试、集成测试和系统测试之后、产品发布之前所进行的软件测试活动。
验收测试的目的是保证软件准备就绪,按照项目合同、任务书、双方约定的验收根据文档,向软件购买方展示该软件系统满足原始需求。任务是测试软件的有效性,即测试软件的功能和性能及其他特性是不是和用户的要求一致。验收测试是以用户为主的测试,软件开发人员和QA人员也应参加。
验收测试的原则:
验收测试始终要以双方确定的需求规格说明和技术合同为根据,确定各项需求是不是得到满足,各项合同条款是不是得到执行
验收测试以测试软件的正确性为主,而不是以发现软件错误为主
对验收测试中发现的软件错误要分级分类处理,直到通过验收为止
验收测试中的用例设计要综合全面,能以最少的时间在最大程度上确定软件的功能和性能是不是满足要求
验收测试的分类
验收测试分为正式验收和非正式验收两大类。
1. 正式验收测试
正式验收测试是一项管理严格的过程,一般是系统测试的延续。测试计划详细严密,选择的测试用例是系统测试中执行测试用例的子集。
正式验收测试有两种方式:一种是由开发组织和用户组织的代表一起执行验收测试;另一种则完全由最后用户组织执行,或由用户组织选择的客观公正小组执行。
2. 非正式验收测试(Alpha测试和Beta测试)
Alpha测试(α测试) :一般是在开发者所提供的场所进行测试,由用户来执行。Alpha测试是公司内部人员模拟各类最后用户行为,对即将面市的软件产品(称为α版本)进行的测试。Alpha测试不能由程序员或测试员完成。开发人员在旁边记录发现的缺陷和可用性问题。Alpha测试主要看有没有功能缺失或系统错误。
Beta测试(β测试) :完全脱离开发者的环境,完全交给用户进行测试。Beta测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试,开发者一般不在现场。用户定期报告问题和缺陷。Beta测试着重于产品的支持性,包括文档。
Alpha测试主要是测试人员在开发环境下的测试,Beta测试是在实际环境中的测试。一般用户对象相对固定的只进行Alpha测试或正式验收测试,用户对象广泛且不固定的则有必要进行Beta测试。
验收测试的主要测试内容
验收测试的测试内容包括软件质量的多个方面:
1. 功能测试
测试软件是不是按照需求规格说明书中的规定正常工作,包括:
功能的完整性-所有功能模块是不是正常运行
输入输出的正确性
功能的可靠性
正例测试、边界测试、时序测试、反例测试、错误处理测试
逐项测试系统功能是不是和合同和需求一致。
2. 性能测试
测试系统在不同负载条件下的性能表现,包括:
响应时间是不是满足要求
吞吐量是不是达标
资源利用率是不是合理
正常的负载和容量变化下的表现
压力测试-临界负载和容量变化下的表现
高负载下系统是不是稳定是验收的标准。
3. 安全性测试
检测安全漏洞和风险,包括:
用户认证和授权机制是不是完善
数据加密和保护是不是到位
网络和数据安全是不是合规
系统是不是稳定可靠运行
4. 兼容性测试
保证软件可以在不同的平台下运行,包括:
硬件兼容性
软件兼容性(不同操作系统版本、数据库等)
文件兼容性
5. 易用性测试
测试用户使用软件是不是觉得方便,包括标准性和规范性、直观性、灵活性、舒适性等。
6. 安装/部署测试
保证软件安装后可以正常使用,包括不同的安装方式、不同平台下的安装,以及启动和关机的正常性。
7. 可靠性测试
在出现掉电、硬件故障或切换、网络故障等异常情况下,系统是不是能够正常运行。
8. 文档测试
文档也是软件交付的产品之一,包括用户手册、使用说明、运维手册、设计文档、测试报告等的完整性审核。
9. 其他测试
还包括配置测试、平台测试、可移植性测试等。
验收测试的流程
标准的验收测试流程包括以下步骤:
需求理解:了解软件功能和性能要求、软硬件环境要求、质量要求和验收要求
计划编制:编制《验收测试计划》和《项目验收标准》,制定测试项、测试方法及验收通过标准,并经过客户参和的计划评审
用例设计:根据验收测试计划和项目验收标准编制测试用例,并经过评审
环境搭建:建立测试的硬件环境、软件环境等(可在委托客户提供的环境中进行)
测试实施:执行测试并记录测试结果
结果分析:根据验收通过标准分析测试结果,作出验收是不是通过及测试评价
报告提交:根据测试结果编制缺陷报告和验收测试报告,提交给客户
验收测试是软件交付前的一道质量步骤,是以用户为主、以测试正确性为目的的测试活动。包括功能、性能、安全、兼容性、易用性、安装部署、可靠性、文档等多个方面的全面测试。验收测试分为正式验收(管理严格、计划详尽)和非正式验收(Alpha测试在开发环境、Beta测试在实际环境)两种。验收测试的目的是确定软件能否按合同要求进行工作,决定是不是接收或拒收系统。