[0]
概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。
具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。
[1]
软件开发正在越来越多地根据既定的工程和科学原理完成。为使软件工程真正成为一个科学学科,软件开发过程和所产生的软件产品的量化往往是强制性的。
软件质量保证功能的第一个功能定义了在其组织单元中开发的软件产品的标准。软件质量保证组织的第二个主要功能是指定和实施用于评估软件产品质量的工具或辅助工具。软件质量保证组织的第三个主要功能是应用这些工具来评估其组织单位开发的软件产品遵守其建立的适合于该产品的标准的程度。
下面给出一些较常见的软件质量因素的定义:
软件质量因素 |
描述 |
正确性 |
程序满足其规范并满足用户任务目标的程度。 |
可靠性 |
扩展到程序可以期望以所需精度执行其预期功能。 |
效率 |
程序执行函数所需的计算资源和代码量。 |
诚信 |
可以控制未授权人员访问软件或数据的程度。 |
可用性 |
学习,操作,准备输入和解释程序输出所需的努力。 |
可维护性 |
在操作程序中定位和修复错误所需的努力。 |
可测性 |
测试程序以确保其执行其预期功能所需的努力。 |
灵活性 |
修改操作程序所需的努力。 |
可移植性 |
需要将程序从一个硬件配置或软件系统环境传输到另一个硬件配置或软件系统。 |
可重用性 |
程序可以在其他应用程序中使用的程度与程序执行的功能的包装和范围有关。 |
互操作性 |
将一个系统与另一个系统耦合所需的努力。 |
Tab 1 质量因素和指标
[2]
软件质量描述了软件的所需属性。深入了解软件质量和质量对用户的影响有助于使用户需求清晰化。用户对这些属性的不满影响软件的健康和可持续性。对软件质量和软件质量于用户的影响缺乏洞察力,使得利益相关者无法确保用户要求对软件满意。下面通过研究软件质量与质量对用户体验质量的影响之间的关系,以进行软件产品,功能和需求的评估。
软件质量分析提供了对软件质量的在一定标准上的评估,但它并没有说明用户对质量的满意度。
用户反馈可以反映用户使用该软件的体验情况,但没有揭示具体影响不良体验的软件质量因素。
不同于纯软件质量分析或纯用户反馈,软件质量分析和用户反馈的组合体现了可以使用户满意的软件质量水平。同样地,如果用户不满意,用户反馈可以有助于在根本原因分析中解释质量缺点。
下面介绍一种质量—影响评估方法。该方法连同来自不同用户组的用户反馈周期性地收集连续使用日志。这种方法在软件使用期间测量用户的体验质,以识别用户如何感知软件的质量以及他们如何满足其提供的功能。
如前所述,软件质量分析和用户感知质量的分析对于产品所有者评估软件产品是重要的。质量—影响方法确定四个过程,包括准备,测量,分析和决策,以确定软件质量与质量对用户体验质量的影响之间的关系,获得对软件产品,特性和要求的评估的见解。准备过程包括诸如安装工具(即分析工具,反馈工具)、制定用户反馈请求等活动。在测量过程中,收集关于软件质量测量和用户感知质量的数据(质量测量与在分析过程期间用户的感知质量相关)。在该过程中,还执行用户反馈的定性分析以便于相关分析的解释。分析结果用于决策过程,以基于可接受和期望的质量水平决定产品功能等。
该方法定期收集用户反馈,以衡量用户在使用过程中的体验质量。然后相关分析可以帮助产品所有者通过与测量的质量水平对准来解释用户的不满意。
为了阐明质量—影响方法如何工作,图1的左边部分提出了基于时间表的情景,强调了数据收集和分析中涉及的事件和活动。
启动用户体验,数据收集被连续地开始以收集使用日志,定期提供用户反馈请求,以收集用户体验的质量。接收的用户反馈和质量分析有助于执行用户接受质量和软件质量之间的相关性分析以及定性用户反馈分析。图1的右边部分展示出了这种相关分析的示例。
相关性分析将用于评估软件产品功能等。该分析有助于产品所有者评估用户满意度或不满意度与测量的质量水平,找出可能干扰用户的质量水平,以进行需求验证。另外,该分析还可用于通过决定可接受的影响来引出正确的质量水平。
以上是基于软件质量和用户体验质量之间的相关分析来提出质量—影响评估方法的简单解读。
该方法的需要收集大量的用户反馈以实现相关性分析,具有一定的挑战性。
想要深入研究这一课题的读者,可以阅读文献:
[1] J. E. Gaffney, “Metrics In Software Quality Assurance”, presented at Tutorial Abstract, ACM ‘81, November 9-11, 1981.
[2] F. Fotrousi, “Quality-Impact Assessment of Software Systems”, presented at the IEEE 24th International Requirements Engineering Conference, Karlskrona, Sweden, 2016.