...
首页> 外文期刊>The Journal of Systems and Software >Bug-proneness and late propagation tendency of code clones: A Comparative study on different clone types
【24h】

Bug-proneness and late propagation tendency of code clones: A Comparative study on different clone types

机译:代码克隆的错误倾向和后期传播趋势:不同克隆类型的比较研究

获取原文
获取原文并翻译 | 示例
           

摘要

Code clones are defined to be the exactly or nearly similar code fragments in a software system’s code-base. The existing clone related studies reveal that code clones are likely to introduce bugs and inconsistencies in the code-base. However, although there are different types of clones, it is still unknown which types of clones have a higher likeliness of introducing bugs to the software systems and so, should be considered more important for managing with techniques such as refactoring or tracking. With this focus, we performed an empirical study that compared the bug-proneness of the major clone-types: Type 1, Type 2, and Type 3.According to our experimental results on thousands of revisions of nine diverse subject systems, Type 3 clones exhibit the highest bug-proneness among the three clone-types. The bug-proneness of Type 1 clones is the lowest. Also, Type 3 clones have the highest likeliness of being co-changed consistently while experiencing bug-fixing changes. Moreover, the Type 3 clones that experience bug-fixes have a higher possibility of evolving following a Similarity Preserving Change Pattern (SPCP) compared to the bug-fix clones of the other two clone-types. From the experimental results it is clear that Type 3 clones should be given a higher priority than the other two clone-types when making clone management decisions. Our investigation on the relatedness between bug-proneness and late propagation in code clones implies that bug-proneness of code clones is not primarily related with late propagation. The possibility that a bug-fix experienced by a clone fragment will be related with late propagation is only 1.4%. Moreover, for only 10.76% of the cases, a late propagation experienced by clone fragments can be related with a bug. Thus, late propagation contributes to a very little proportion of the bugs in code clones. We believe that our study provides useful implications for ranking clones for management such as refactoring and tracking.
机译:代码克隆被定义为软件系统代码库中完全或几乎相似的代码片段。现有的与克隆相关的研究表明,代码克隆可能会在代码库中引入错误和不一致之处。但是,尽管存在不同类型的克隆,但仍不知道哪种类型的克隆具有向软件系统引入错误的可能性更高,因此,对于使用诸如重构或跟踪之类的技术进行管理,应将其视为更重要的。以此为重点,我们进行了一项经验研究,比较了主要克隆类型(类型1,类型2和类型3)的易错性。根据我们对九种不同主题系统的数千个修订版的实验结果,类型3克隆在三种克隆类型中表现出最高的错误倾向。类型1克隆的错误倾向最低。同样,在经历错误修复更改时,类型3克隆具有始终如一地共同更改的最高可能性。此外,与其他两个克隆类型的错误修复克隆相比,遇到错误修复的3类克隆具有遵循相似性保留更改模式(SPCP)进化的更高可能性。从实验结果可以明显看出,在制定克隆管理决策时,应该给类型3克隆赋予比其他两个克隆类型更高的优先级。我们对代码克隆中易错性与延迟传播之间的相关性的研究表明,代码克隆的易错性与延迟传播主要无关。克隆片段遇到的错误修复与后期传播相关的可能性仅为1.4%。此外,在只有10.76%的情况下,克隆片段经历的后期传播可能与错误有关。因此,后期传播只占代码克隆中错误的很小一部分。我们相信我们的研究为对克隆进行排序(例如重构和跟踪)管理提供了有用的启示。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号