官方微信视频号
▍软件产品质量的8个特性是什么
在软件质量管理中,常常将软件质量特性分为功能特性和非功能特性。国家标准GB/T 25000.51-2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第51部分:就绪可用软件产品(RUSP)的质量要求和测试细则》将系统/软件产品质量属性划分为8个特性:功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性、可移植性,如图1所示。每项特性进一步分为多项子特性,不仅有利于理解质量特性,而且有助于测试和度量。
▍质量特性说明
1、功能性(functional suitability)
在指定条件下使用时,产品或系统提供满足明确和隐含要求的功能的程度。它涉及完备性、正确性、适合性、功能性的依从性。功能测试主要针对本项目完成的软件系统进行功能测试,逐项验证系统提供的功能是否符合软件需求规格说明书、用户手册等能够说明用户需求的文件要求,发现系统存在的功能问题,并提出合理的整改建议。上海机器人产业技术研究院功能测试要求:根据系统需求规格说明书设计相应的测试用例;执行功能测试,并做好测试记录;分析各个模块的功能缺陷,形成功能测试问题清单;整改后对功能进行回归复测。
2、性能效率(efficiency)
在指定条件下,软件对操作所表现出的时间特性(如响应速度)以及实现某种功能有效利用计算机资源(包括内存大小、CPU占用时间等)的程度,局部资源占用高通常是性能瓶颈存在;系统可承受的并发用户数、连接数量等。它涉及时间特性、资源利用性、容量、性能效率的依从性。
性能测试是依据软件需求规格说明书中对应用系统性能效率的描述,考查应用系统关键业务在正常工作量、预期的峰值工作量下的效率情况,主要考虑系统容量特性、时间特性及资源利用状况等效率指标是否符合用户需求,并据此对系统的性能做出全面的评价。
3、兼容性(compatibility)
在共享相同的硬件或软件环境的条件下,产品、系统或组件能够与其他产品、系统或组件交换信息,和/或执行其所需的功能的程度。它涉及共存性、互操作性、兼容性的依从性。兼容性测试主要包括:硬件、软件、数据库三方面。不仅要覆盖软件系统之间兼容、和第三方系统之间的兼容,还要考虑同一个系统版本之间的兼容,特别是用户数据的兼容。
4、易用性(usability)
在指定的使用周静中,产品或系统在有效性、效率和满意度特性方面为了指定的目标可为指定用户使用的程度。它涉及可辨识性、易学性、易操作性、用户差错防御性、用户界面舒适性、易访问性、易用性的依从性。易用性测试包括软件界面、文档、产品外观等方面测试。测试方法有静态测试、动态测试、动静态相结合测试。
5、可靠性(reliability)
系统、产品或组件在指定条件下、指定时间内执行指定功能的程度。它涉及成熟性、可用性、容错性、易恢复性、可靠性的依从性。可靠性测试通常是在系统测试、验收、交付阶段进行,它主要是在实验室内仿真环境下进行,也可以根据需要和可能在用户现场进行。主要活动包括:测试数据、测试环境的准备,测试运行,可靠性数据收集,可靠性数据分析和失效纠正。
6、信息安全性(security)
产品或系统保护信息和数据的程度,以使用户、其他产品或系统具有与其授权类型和授权级别一致的数据访问度。它涉及保密性、完整性、抗抵赖性、可核查性、真实性、信息安全性的依从性。软件安全测试包含功能安全及信息安全两大方向。功能安全主要针对软件的静态分析、单元测试和硬件在环测试来实现。信息安全测试包含代码漏洞扫描、渗透测试和应用漏洞扫描。
7、维护性(maintainability)
产品或系统能够被预期的维护人员修改的有效性和效率的程度。它涉及模块化、可重用性、易分析性、易修改性、易测试性、维护性的依从性。维护性测试包括建立明确的软件质量目标和优先级,使用提高软件质量的技术和工具,进行明确的质量保证审查,选择可维护的程序设计语言。
8、可移植性(portability)
系统、产品或组件能够从一种硬件、软件、或者其他运行(或使用)环境迁移到另一种环境的有效性和效率的程度。它涉及适应性、易安装性、易替换性、可移植性的依从性。可移植性测试是验证软件的运行环境改变后是否能正常工作,包括代码变更测试、安装测试、用户界面测试和功能测试。
▍软件产品质量测试的意义和作用
随着软件规模的扩大,复杂程度的提高,应用领域的广泛深入,对软件产品的质量要求不断提高,而软件测试则是提高软件质量的重要手段,因此软件产品质量测试变得尤为重要。国家标准GB/T 25000.51-2016,确立了就绪可用软件产品(RUSP)的质量要求,以及测试RUSP的测试计划、测试说明和测试结果等的测试文档集要求和RUSP的符合性评价细则,为国内软件检测、测评机构提供了参考规范,为保证软件质量提供了有力依据。
软件产品质量测试有以下作用:
产品质量评估
全面地评估软件产品的质量,为软件产品鉴定(第三方独立测试)提供产品质量所需的各种信息,能够提供准确、客观、完整的软件质量报告。
客户满意度的提升
通过测试发现索要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷,降低或消除产品质量风险,提高客户的满意度。