首页> 外文学位 >Change-Based Software Engineering: Using Reified Changes for Test Selection and Refactoring Reconstruction.
【24h】

Change-Based Software Engineering: Using Reified Changes for Test Selection and Refactoring Reconstruction.

机译:基于变更的软件工程:使用经过改进的变更进行测试选择和重构重构。

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

摘要

Software evolution is inevitable. Indeed a software system needs to be constantly modified and updated, else it risks becoming less and less useful. Since change takes a leading role in software development, we consider changes as a central entity. Our approach is to consider changes as first class citizens in the software development process. As such a change becomes a tangible entity that we can analyse and manipulate. In recent years many researchers have gone down this road and have devised several applications in which the reification of changes proved beneficial including, but not limited to: replaying changes on a system to better understand its evolution; making developers aware of changes made by other developers; mining a set of changes for frequently occurring change patterns; and using those patterns to suggest or predict future changes. This thesis presents a complete overview of the state-of-the-art in change reification.;Moreover, in this thesis, we focussed on two applications in the context of software development, where change reification proved beneficial: Test Selection and Refactoring Reconstruction.;For the test selection we used dependencies between the changes to trace a selected set of changes to a set of relevant tests for those changes. We then proceeded to compare the quality and the size of the reduced set of tests with the full test suite. Our results show that we are able to reach a sizeable reduction of the complete test suite, yet with a comparable number of mutants killed by the reduced test suite.;For the refactoring reconstruction we considered a graph representation of the changes (with the changes as nodes and the dependencies as edges) and then mined this graph for pre-defined abstract patterns (representing refactoring operations). We demonstrate that this approach of using changes recorded from the IDE is more accurate in a significant number of situations than the state-of-the-art snapshot-based technique RefFinder.
机译:软件的发展是不可避免的。确实,软件系统需要不断地进行修改和更新,否则可能会变得越来越有用。由于变更在软件开发中起着主导作用,因此我们将变更视为中心实体。我们的方法是将更改视为软件开发过程中的头等公民。这样的变化成为我们可以分析和操纵的有形实体。近年来,许多研究人员走了这条路,并设计了一些应用,这些应用的变化被证明是有益的,包括但不限于:重播系统上的变化以更好地理解其演变;以及使开发人员了解其他开发人员所做的更改;为频繁发生的变更模式挖掘一组变更;并使用这些模式来建议或预测未来的变化。本文对变更修订的最新技术进行了完整的概述。此外,在本文中,我们重点研究了在软件开发环境中进行变更修订的两个应用程序:测试选择和重构重构。 ;对于测试选择,我们使用了更改之间的依赖关系来跟踪一组选定的更改到一组与这些更改相关的测试。然后,我们将比较缩减的测试集的质量和大小与完整的测试套件。我们的结果表明,我们可以实现完整测试套件的大幅减少,但减少的测试套件可以杀死相当数量的突变体。;对于重构重建,我们考虑了变化的图形表示(变化为节点和依存关系作为边缘),然后针对预定义的抽象模式(表示重构操作)挖掘此图。我们证明,在很多情况下,这种使用从IDE记录的更改的方法比基于快照的最新技术RefFinder更准确。

著录项

  • 作者

    Soetens, Quinten David.;

  • 作者单位

    Universiteit Antwerpen (Belgium).;

  • 授予单位 Universiteit Antwerpen (Belgium).;
  • 学科 Computer science.
  • 学位 Ph.D.
  • 年度 2015
  • 页码 213 p.
  • 总页数 213
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号