陈振宇教授团队在众包软件测试研究中取得重要成果

发布日期:2020-01-10 浏览次数:

依托互联网打造开放共享的创新机制和创新平台为大势所趋。企业创新模式由蜂蜜是逐步转向开放式,再由开放式转向依托互联网的无边界模式。在开放的创新环境下,以群体智能为理念的众包模式开始得到产业的尝试和任何。众包借助互联网平台发布众包任务、激励参与者分享创意、知识和技术,通过灵活的群体参与方式实现企业创新的无边界化发展。众包测试已广泛用于解决各种软件工程测试任务。借助众包工人的力量,众包测试能够模拟各种真实的使用场景,并检测出各种错误,但同时,众包软件测试也存在测试任务生成繁复、任务完成成本高、测试过程缺少监督、测试报告审核困难等问题。软件学院陈振宇教授团队围绕众包软件测试中存在的各种问题进行了一系列深入研究,在国内外顶级软件工程期刊与学术会议(ICSE、ISSTA、EMSE、SANER、软件学报等)上发表了多篇论文讨论了这些成果。

博士生郝蕊为第一作者,陈振宇教授指导,与加利福尼亚大学尔湾分校教授James A. Jones合作,发表在全球软件工程大会(ICSE2019)上的研究论文,对目前工业众包测试平台上的测试报告进行调研发现,相比于传统测试报告,众包测试报告存在重复报告率高、文本描述简短、截图丰富等特点。在此基础上,团队提出了CTRAS:一种全新的自动聚合与摘要重复众包测试报告的方法,此方法能够根据文本信息和屏幕截图自动检测重复报告,并进一步将重复测试报告聚合和摘要成一份全面且易于理解的聚合报告。通过在来自十二个个工业项目的五千多份测试报告上的评估实验表明,对于自动检测重复报告,此方法平均可以达到0.87的准确度并可生成优化传统方法的摘要内容。此外,我们对30名参与者进行了基于任务的用户研究,结果表明此方法可以平均节省30%的时间成本而不损失其正确性。

图1 CTRAS框架图

此外,博士生李玉莹为第一作者,陈振宇教授指导,与加利福尼亚大学尔湾分校教授James A. Jones合作,将CTRAS进行了原型工具的实现并应用于工业众包测试平台中,此成果论文发表在ISSTA 2019会议上。此工具可自动对已提交的众包测试报告进行自动聚合与摘要,并提供可视化界面展示每个重复报告集的摘要信息,包括主题、补充点、关键词、重复关系等,然后自动将聚合后的测试报告分派给开发人员,以协助测试报告管理和诊断。图2为聚合报告界面,在界面中间靠上的部分,我们提供有关聚合报告的信息,例如,在此集合中提交过报告的所有众包工人。此外,该视图还显示来自"主报告"的信息。在"主报告"面板下方,可以查看"补充点"。在右上方,CTRAS提供了一个标签云,用于展示加权关键字,这可以在"聚合报告"中简明地表达测试报告中的主要主题。在标签云下方,可以查看每个测试报告的详细内容。在此窗格中可以找到该"聚合报告"包含的所有测试报告。最后,在视图的底部是一个聚合关系图,描述了测试报告及其补充点。橙色圆圈表示"聚合报告"摘要,黄色圆圈表示"主报告"。围绕橙色"聚合报告"的蓝色圆圈代表"补充点"。围绕蓝色"补充主题"节点的每个黄色圆圈代表一份测试报告。边和它们的长度代表节点之间的相似关系和相似程度。然后,用户可以单击任何节点,并在该图右侧的窗格中查看其详细信息。

图2 聚合报告界面

研究生李灏宇为第一作者,陈振宇教授指导,发表在ISSTA 2019会议上的论文,针对移动众包测试中存在的重复报告提交率高、质量低下等问题,提出了针对安卓应用的协作式众包测试工具CoCoTest。在CoCoTest SDK的帮助下,众包工人们可以很有效率的截图、写报告、提交报告。同时,一系列的报告将在线融合并且实时的推荐给其他众包工人。借助着群体智能,众包工人们可以1. 帮助其他人检查、确认和丰富报告;2. 避免提交重复报告;3. 被引导进行更加专业的测试。CoCoTest可以提高最终报告的质量和减少测试成本。

图3 CoCoTest测试框架

博士生赵源为第一作者,陈振宇教授指导,发表在NASAC 2018会议上的论文,针对众包中收集的大量测试用例的水平参差不齐、数量众多,使用传统技术进行质量评估可能会非常昂贵的特点。引入了一种评估方法TCQA,根据编码历史来评估测试用例的质量。TCQA通过以下三个步骤来评估测试用例的质量:(i)对编码时间序列进行建模,(ii)从时间序列中提取多个相关特征,以及(iii)建立模型以将测试用例分类为不同的水准使用基于特征的机器学习技术来分类。因此,通过利用编码记录,TCQA可以评估测试用例的质量,而无需进行昂贵的源代码分析或执行这些测试用例。利用来自400多个参与者的9个测试开发任务的数据,团队从多个角度评估TCQA。结果表明,与传统的测试用例质量评估技术相比,TCQA能够以相对较低的开销,高精度和快速地评估测试用例的质量。此外,评估表明TCQA甚至可以在完成测试用例之前就获得有关测试用例质量的实时评估。

此外,陈振宇教授团队与大连理工大学教授江贺团队合作,发表在ATIT 2017期刊上的论文,对众包测试报告中多错误报告模糊聚类问题进行了研究,并提出了TERFUR自动模糊聚类框架,此框架首先构建一个过滤器来删除无效的测试报告。然后,构建预处理器以解决测试报告描述短问题。最后,通过两阶段合并算法,将冗余报告和多bug报告进行聚类。为了验证框架的有效性,团队采用来自五个工业应用程序的1,728份测试报告进行了评估,结果显示,TERFUR的平均准确率可达到78.15%,平均召回率可达到78.41%,平均值F值为75.82%,性能优于对照方法31.69%,33.06%和24.55%。

图4 TERFUR自动模糊聚类框架

陈振宇教授团队与大连理工大学教授江贺团队合作的另外一篇发表在SANER 2018会议上的论文,同样针对众包测试工人提交的测试报告质量差异大,审核开销大等问题,为了帮助开发人员预测是否应该在有限的资源范围内选择测试报告进行检查,提出了一个名为TERQAF的新框架来自动建模检测测试报告的质量。TERQAF定义了一系列可量化的指标来衡量测试报告的理想属性,并汇总所有指标的数值,以通过使用步骤转换函数来确定测试报告的质量。在移动应用程序的五个测试报告数据集上进行的实验表明,TERQAF可以正确预测测试报告的质量,准确率高达88.06%,优于基线方法高达23.06%。同时,实验结果还表明,四类可测量指标对TERQAF在评估测试报告质量方面具有积极影响。

图5 TERQAF质量自动评估框架