通过用户在运行时的反馈对软件进行评估

通过用户在运行时的反馈对软件进行评估

引用:Sheriff N. Software evaluation via users’ feedback runtime. In: Proc. of the 18th Int’l Conf. on Evaluation and Assessment in Software Engineering. 2014. 1-4. http://ease2014.org/

摘要

用户在软件运行的过程中对软件进行评估是一种绝佳的方式,它使我们能够获取用户在整个生命周期中的是如何使用软件的最新和最丰富的反馈。用户的运行时评估反馈可以用于自主或半自主的运行时适应决策,或者支持开发人员进行产品迭代和维护决策。在这样的愿景下,我们的研究重点是开发一个运行时用户评价反馈的启发式框架,这包括设计一种机制——使用用户易于表达和开发人员易于解释的方式构造评估反馈。

问题和动机

软件评估是一项确保软件有效、正确地满足需求的任务。软件评估的涉众包括利用软件来满足其需求和期望的用户。因此,用户对软件的接受程度和有效使用是评估的主要内容。世界在变化,所以用户对软件的接受程度和看法也是动态的,并且需要在软件的整个生命周期中进行捕获,以保持最新。经典的评估主要是在软件设计阶段确定的,在这个阶段推测用户使用系统时可能使用的所有上下文往往是片面的。

用户的显性评估反馈是在运行时了解用户的角色和软件质量的主要机制。用户反馈是软件用户根据使用经验给出的有意义的信息,有助于识别软件中存在的问题,修改现有的需求或要求新的附加需求,从而更好地让用户接受软件。由于评估反馈的主体是系统在满足需求方面的角色,我们可以说这种反馈支持以用户为中心的基于需求的评估。

为了满足用户和使用环境的多样性,软件评估不应该只依赖于选定的用户组,也不应该只在一个阶段(通常是在开发阶段)进行。相反,最好将它作为一个在运行时迭代并涉及实际用户的广泛多样性的连续活动来执行。

研究目标和问题

我们的研究目标是:

1. 开发一种新的用户驱动的反馈建模语言让用户能够定义他们的反馈结构和获取方式。这种建模语言提高了人机交互的技术水平,为用户处理软件提供了新的角色和交互手段。

2. 开发面向用户和工程师的众包工程框架,在运行时对集体用户的反馈、情境、软件特性进行建模和关联,进行软件评价。这将有助于为软件评估提供一个新的视角,并为众包的使用提供一个新的环境。

3. 实现一个插件工具,可以与使用开发的工程框架的主应用程序并行使用。该工具将采用软件的模型,可能是特性模型或目标模型,捕获用户对所使用配置的反馈,以解释用户社区如何看待软件,并推导出反馈使用的模式。

下面我们讨论研究问题:

RQ1: 目前文献中对于在软件评估环境下获取和构建用户反馈的来源是什么?

RQ2: 能够帮助开发人员从收集的最终用户反馈中提取需求知识的关键反馈质量是什么?

RQ3: 哪些方法和机制可用于重用他人的反馈内容或者反馈结构?它们如何适应我们的框架?

RQ4: 我们的框架可以包括哪些关键方面来提高用户积极参与评估者这一新角色的意愿,以及如何通过软件工具来支持这一角色?

RQ5: 为了评估所提出的方法是否提高了获取和分析的效率,必须进行哪些验证?

方法和结论

首先,我们采取了一种实证方法,通过进行多时段的焦点小组研究,这是软件工程中一个流行的定性研究技术。我们的主要目的是收集一些有助于我们研究问题的见解。这些焦点小组的主要目的是了解软件开发人员通常如何收集用户的反馈,以及他们认为一个好的反馈应该如何构建。此外,还将探讨用户希望反馈页面的样式,以及判断反馈是否有意义和有用的标准。它还将探讨用户希望如何参与提供反馈的过程,以及是什么鼓励他们充当评估者。我们还想了解用户如何从其他用户的反馈结构中获益,并重用它们来回答类似的案例或问题。

为了回答回答我们的五个研究问题形成了五个专题领域:主题、结构、可重用性、约定和参与。五个专题领域的简要描述、例子和与研究问题的关系如下:

主题是指用户想要响应反馈请求的上下文。这包括主题特异性、清晰度和反馈方法。具体来说,参与者希望使用一种他们更喜欢提供反馈的方法,例如“快照、文本或音频”,并且当他们“遇到一个明确的问题说明”时,他们希望给出更详细的反馈说明。这个主题领域回答了RQ1。

结构是指反馈的质量,这些反馈主要是由软件开发人员看到的。参与者确认了一些常识,如,实时反馈、给出详细的反馈、对具体问题给出反馈、使用预定义的关键字、以特定的方式构建、面向特性的反馈等。这个主题领域回答了RQ2。

可重用性是指用户重用别人的反馈结构或经验“可以有一组报表,用户可以查看反馈,并对他们对反馈的同意/不同意程度进行评分”,“统计应该代表一个反馈多少是有意义的,有用/无用”。这既可以帮助他们轻松完成任务,也可以通过不同的软件配置提高他们的意识。这将导致更好的用户体验和对软件的接受。这个主题领域回答了RQ3。

约定是指用户希望如何参与评价反馈获取的过程。例如,他们希望收到“参与的友好确认”和“反馈的更加个性化的选择”,“如果用户知道如何使用反馈的循环,这将增加用户的信任和反馈意愿”。这个主题回答了RQ4。

参与是指可直接影响使用/评估软件的决策和活动的多种“环境”因素。参与者提到了隐私问题,因为他们“希望保持匿名”,“用户希望可以控制谁能看到来自我的反馈”例如,“软件对我的反馈的响应速度会影响我给出反馈的意愿”。此外,参与者对参与的奖励机制特别感兴趣。例如,“系统应该奖励那些提供有用反馈以帮助增强系统的用户”。这个专题领域也回答了RQ4。

为了解决RQ5,我们在验证阶段可能使用的关键技术之一是控制实验。控制实验有几个优点。它们将允许我们:进行明确定义的、重点明确的研究,产生有统计学意义的结果;捕捉用户所处环境与软件不同用途之间的关系;对于为什么结果会发生和不会发生提供良好的解释;获取重要的变量和变量之间的不同关系。当然,控制实验作为软件工程中的任何一种经验方法都有其不足之处。然而,实验设计得越好,得到的结果和关系就越好。

我们在图1中总结了整个研究项目的研究计划和里程碑。这些里程碑如下:

首先,我们将设计并进行一组对工程师的访谈,以了解和洞察他们的观点,即是什么使得用户的反馈对RQ2的演进和维护决策有用。数据将使用分类和主题分析的方法进行分析,因为它是一种观察的方式,也是对定性信息进行编码的过程。此外,我们还将设计一份问卷,收集我们从焦点小组得出的概念之间的更多关系,并确认来自更大的人群的结果,以便进一步解决RQ1。

其次,在分析了所有方法的数据后,我们会得出一组结论,这些结论将被整合到我们的目标众包软件评估工程框架的设计中。在设计框架的这个阶段,我们将改进关于要采用的方法和技术的决策。这些决策与向用户表示软件特性的需求模型有关;哪一种人机交互技术最适合与用户进行交互以获得用户的反馈;自然语言处理技术可以用来派生关键字用户的反馈。

第三,我们将开始设计原型工具。它将把开发的框架付诸实践,并将包括验证设计的模型和一个易于使用的用户界面,以允许反馈建模和获取。

最后,我们打算将原型应用于使用商业软件的用户。从激励的角度来看,这些用户是最好的,因为这些用户的工作和表现都有直接的价值。

通过用户在运行时的反馈对软件进行评估

本文主要贡献

在本文中,作者分析了传统软件评估方法的缺点,以及在真实用户使用场景下传统软件评估方法无法解决的的问题,提出了一种基于众包的用户实时反馈的软件评估方法,旨在解决传统软件评估方法无法处理软件的动态性和高可变性的场景和评估的主观性、片面性以及反馈用户群体基数小的问题。相比传统软件评估方法,本文提出的方法具有以下几个优点:可以在软件运行时,通过软件提供的上下文来描述他们的反馈、在高可变的软件环境下具有极高的可扩展性、能够保证评估的时效性、该方法可以得到更广泛的更多样的用户使用场景。我们相信在未来,基于众包的软件评估方法终会在真实场景中实现并得到使用。

致谢

此文由南京大学软件学院2018级硕士门铎翻译转述。

来源:慕测科技

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年1月2日
下一篇 2019年1月2日

相关推荐