Evosuite和Randoop单元测试用例生成工具覆盖率对比分析①
2020-09-22杨正卉黄小丹
计算机系统应用 2020年9期
杨正卉,洪 玫,郭 丹,王 潇,刘 芳,黄小丹
(四川大学 计算机学院(软件学院),成都 610065)
1 研究背景及意义
软件测试是发现软件缺陷的过程,是保障软件质量的重要手段.由于被测系统的复杂性以及测试成本的限制,软件测试自动化已经成为必然.随着测试技术的进一步发展,测试流程的不断规范,大量的单元测试用例生成工具涌现.这些工具以覆盖率作为测试标准.有研究者发现,测试用例的覆盖率是越高,捕获代码缺陷的可能性就越大.研究自动化单元测试用例生成工具生成的测试用例的覆盖率和检错率具有重要意义,直接影响着这些测试工具是否能在业界发挥更好的作用.在国际上的一些单元测试工具竞赛中[1-6],Evosuite多次获得第一名;在2019年的竞赛中,Randoop 工具和手工编写的测试用例被作为其余工具对比的基线.因此,本文选择Evosuite,Randoop 两个具有代表性的工具为例,采用了2016年单元测试工具竞赛中使用的数据集:Defects4J,研究自动化单元测试工具的性能,拟回答以下问题:
(1)在不同的生成时间下,Evosuite,Randoop 生成的测试用例在数量上、方法覆盖率、分支覆盖率等方面的表现如何?
(2)哪些因素影响了Evosuite、Randoop 工具生成的测试用例的覆盖率?
2 相关研究
为了分析自动化测试用例生成工具的性能,Fraser等进行了手工测试和自动化测试的对比实验,邀请49 名参与者,从多个方面分析了手工测试用例和自动化工具Evosuite 所生成的测试用例的特定[7].Shamshiri等在Defects4J 数据集上研究了Evosuite、Randoop 工具,以及商用工具AgitarOne 的性……
登录APP查看全文
