软件产品质量是由系统性质量要求与可执行的测试细则共同定义和保障的。ISO/IEC 25010 标准是当前定义软件产品质量的权威。
软件产品质量要求
1.功能适用性:软件提供满足规定和隐含需求功能的能力。
完备与正确:功能集覆盖全部指定任务,并能输出精确结果。
契合性:功能设计是否真正契合用户目标。
互操作性:与指定系统有效交互。
安全性:保护信息与数据免受未授权访问和篡改。
2.性能效率:在指定条件下,软件的性能表现与资源消耗水平。
时间特性:响应时间、处理速度及吞吐率。
资源利用率:CPU、内存、网络等资源的使用量。
容量:系统所能处理的最大并发用户数或数据量。
3.兼容性:与其他系统共享环境与资源,且互不干扰的能力。包含共存与互操作。
4.易用性:用户理解、学习、使用软件并从中获得满意体验的难易程度。
可辨识性、可学习性与易操作性是基础要求。
用户错误防护与用户界面美观性直接影响用户体验。
可访问性确保具有不同能力的用户均可使用。
5.可靠性:在指定条件下和规定时间内,无故障持续运行的能力。
成熟度、可用性、容错性和易恢复性是关特性。
6.安全性:专注于信息安全的维度,包括保密、完整、不可抵赖、可问责和真实。
7.可维护性:软件被修改(纠错、改进或适应变化)的难易程度。
模块化是基础,可复用性提升效率。
易分析性、易修改性和易测试性直接决定维护成本。
8.可移植性:从一种环境迁移到另一种环境的能力,主要体现在适应、易安装和易替换。
软件产品测试细则
1.测试计划策略
明确测试范围、目标及退出标准(如缺陷修复率、用例通过率)。
根据质量特性制定混合测试策略,规划资源与环境。
2.测试用例设计
功能测试:采用等价类划分、边界值分析、判定表等方法设计用例,验证功能的正确与完备。
性能测试:
负载测试:验证典型与峰值并发下的性能指标(响应时间、资源利用率)。
压力测试与耐力测试:探索系统极限并检查资源泄漏。
安全测试:通过漏洞扫描、渗透测试验证保密性与完整性,重点检查SQL注入、XSS跨站脚本、权限控制等。
兼容性测试:在明确规定的操作系统、浏览器及移动设备矩阵上进行验证。
易用性测试:依据设计规范与可访问性标准(如WCAG)评估用户界面。
可靠性测试:通过容错测试(模拟异常)与恢复性测试(系统崩溃后)验证系统的成熟度与易恢复。
3.测试环境数据获取
搭建与生产环境相似的独立测试环境。
准备覆盖正常、异常、边界场景的测试数据,并执行数据脱敏。
4.缺陷管理
定义清晰的缺陷生命周期(新建、修复、验证、关闭)。
规范缺陷报告,需包含标题、步骤、预期/实际结果、截图及严重等级。
5.测试报告评估
报告需基于测试数据,呈现测试摘要、执行结果(用例通过率、缺陷统计)、性能指标、遗留风险及明确的结论与建议。