卡巴斯基循环试用工具_自动测试用例生成:如果测试代码质量很重要怎么办?...

本文探讨了在自动化测试用例生成中引入测试代码质量度量,如内聚和耦合的重要性。研究发现,大多数自动生成的测试存在耦合度高和内聚度低的问题,影响了测试的可维护性。通过将这些质量指标纳入搜索算法,实验结果显示生成的测试更加凝聚,耦合度更低,甚至在给定足够时间的情况下,分支覆盖率可提高10%。此外,这种方法还能生成更短的测试用例,对现有搜索后最小化策略起到补充作用。
摘要由CSDN通过智能技术生成
95844d8238bcef374c5a788884b68049.png

引用:Automatic test case generation: what if test code quality matters?, Fabio Palomba, Annibale Panichella, Andy Zaidman, Rocco Oliveto, Andrea De Lucia, Proceeding ISSTA 2016 Proceedings of the 25th International Symposium on Software Testing and Analysis

Pages 130-141

摘要

人们已经广泛研究了优化代码覆盖率的测试用例生成工具。最近,研究人员建议添加其他非覆盖标准,如内存消耗或可读性,以增加生成的测试的实际用途。在本文中,我们观察到测试代码质量度量,特别是测试内聚和耦合,作为附加标准是有价值的指标。实际上,低内聚和/或高耦合的测试已被证明对未来的维护活动有负面影响。在一项探索性调查中,我们发现大多数生成的测试确实受到测试代码质量差的影响。出于这个原因,我们将内聚和耦合度量结合到基于搜索的算法的主循环中以用于测试用例生成。通过实证研究,我们发现该方法不仅能够生成更具凝聚力和更少耦合的测试,而且当搜索有足够的时间时,可以将分支覆盖率提高10%,并且生成的更短的统计测试。

关键字

进化测试,多目标优化,分支覆盖,测试代码质量

1.引言

自动化测试用例生成工具已在文献中广泛研究,以降低软件测试的成本。通过自动化技术生成单元测试有助于开发人员根据完善的代码覆盖标准来最大化确定代码元素(例如,语句)的百分比。测试用例生成的传统方法主要关注代码覆盖作为实现的唯一目标,而不考虑可能与测试者相关的其他因素。

在本文中,除了代码覆盖之外,我们还关注要考虑的测试代码质量指标。首先需要在生成测试时维护自动化测试,因为测试人员需要手动验证每个测试用例以检查断言(oracle成本)。 此外,还需要根据在以后的开发活动期间在生产代码中执行的更改来维护并最终更新测试。 因此,我们认为实现易于维护的测试是测试用例生成中理想且重要的目标。

本文考虑了两个简单但关键的质量度量标准,用于评估测试代码的可维护性,即测试内聚和测试耦合。可维护的测试必须尽可能简单(内聚),即每个测试不应同时验证太多功能以避免测试混淆。此外,应尽量减少测试重叠(或测试耦合),以便只有少数测试受到未来任何变化的影响,从而提高测试可读性并简化未来的维护活动。为了测量测试内聚和测试耦合,我们依赖于信息检索(IR)方法,类似于以前用于评估生产代码质量的论文。具体来说,我们定义了两个新的度量,即耦合测试方法(CBTM)和低内聚测试方法(LCTM)我们选择IR方法,因为之前的研究表明文本分析在描述内聚和耦合现象的能力方面往往优于结构度量。

为了评估自动生成的测试用例在多大程度上存在设计问题,我们对SF110数据集进行了大规模的初步研究,并使用Evosuite作为测试用例生成工具。该分析表明,大多数自动生成的测试都会遇到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值