众包测试是一种新兴的软件测试方法,得到了学术界和工业界的广泛关注。针对当前众包测试存在的测试用例质量难以评估,测试人员难以编写高效测试用例等问题,我院iSE实验室提出了基于程序分析、机器学习以及数据挖掘等多种技术相结合的解决方案,在众包测试质量保障方面取得了一系列重要进展。
进展一:提出一种基于编码记录的众包测试用例质量评估方法
众包测试中收集的测试用例数量众多,然而其质量参差不齐,并且难以使用传统技术进行质量评估。为了解决这一问题,我们提出了基于编码记录的测试用例质量评估方法。该方法主要包含以下三个步骤:(1)对编码时间序列进行建模,(2)从时间序列中提取多个相关特征,以及(3)构建机器学习类模型以对测试用例质量进行分类。该方法通过利用编码记录来评估测试用例的质量,从而避免了昂贵的源代码分析或大规模测试用例执行。在真实的众包测试数据集上进行评估,其结果表明:与传统的测试用例质量评估技术相比,该方法能够以相对较低的开销,高精度和快速地评估测试用例的质量。同时,评估结果显示:该方法可以在测试完成之前获得测试用例质量的实时评估。该成果由19级博士生赵源完成,被中国科学院和国家自然科学基金委员会共同主办的SCIENCE CHINA Information Sciences录用。
进展二: 研发出一套基于方法同源性分析的测试用例推荐系统
测试用例推荐是众包测试用例质量的重要方法。 我们提出了一个通过度量两个方法的同源性来实现在线测试用例推荐的创新性系统,并将其实现为HomoTR,从而帮助测试人员在进行众包白盒测试的过程中更高效地编写测试用例。其中,同源性是指不同的方法具有相同或相似的结构或功能。当开发者为待测方法编写测试用例时,如果新的待测方法与具有测试用例的现有方法同源,HomoTR将自动向新的待测方法推荐测试用例。实验表明,HomoTR可以快速有效地推荐测试用例,帮助开发者提高测试效率。另外,HomoTR已进行工业集成,并进一步自动执行所推荐测试用例和可视化测试结果(如分支覆盖率),以帮助开发者理解测试过程。该成果由19级博士生孙伟松等完成,被录用为国际计算机协会(ACM)举办的软件工程领域的顶级国际会议ASE 2020的工具原型论文。
进展三:研发出一套基于切片覆盖过滤的测试代码推荐系统
在众包白盒测试中如何获取高质量、可推荐的测试代码片段是一个值得关注的问题。我们通过代码切片技术对测试脚本分析得到一系列代码简洁、可读性高的测试代码片段,并进一步对每个测试代码片段进行覆盖率分析。然后,将提取出测试覆盖向量并和代码片段进行关联,共同构成测试代码片段推荐语料。用户使用我们所开发的WebIDE进行白盒测试时,待测项目实时运行,后台实时计算测试覆盖,然后将测试覆盖报告转化成测试覆盖向量的形式,并与语料库中待推荐语料计算覆盖向量相似度,从而,系统完成实时推荐测试覆盖互补的代码片段。该方法提升了众包测试用例质量与测试效率。该成果由19级博士生赵源等完成,被录用为国际计算机协会(ACM)举办的软件测试与分析领域的顶级国际会议ISSTA 2020的工具原型论文。
以上研究工作得到了国家重点研发计划项目、国家自然科学基金重点、面上及青年项目、中央高校基本科研业务经费的资助。
来源:南京大学软件学院
声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。