首页> 外文学位 >Automated Techniques for Improving the Quality of Existing Test Suites
【24h】

Automated Techniques for Improving the Quality of Existing Test Suites

机译:自动化技术可提高现有测试套件的质量

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

摘要

Testing is playing a crucial and fundamental role in modern software development. Although software tests are conceptually simple---they are composed of two primary parts: inputs that are used to execute the program under test and an oracle that is used to verify that the execution induced by the inputs produces the expected results---they are often difficult to write in practice. The software engineering research community provided many techniques that can help developers determine whether they have written effective and efficient tests, including various coverage metrics which have been widely adopted. While they have been proven successful in practice, many follow-up studies show that there is still a lot to improve for the test quality measurements, including false negatives in alarming the lack of tests and constructive suggestions for improvements.;This dissertation focuses on improving the quality of existing test suites based on interpretations on test inputs and test oracles. If a test oracle checks the values which the test developers did not or can not control, it would make the test brittle. I developed a novel technique based on dynamic tainting which can identify the values that can make tests brittle. An empirical study on real-world applications shows that the technique can reveal brittle assertions and the values that cause the brittleness within reasonable cost. I also developed two techniques that can identify insufficiently tested code by interpreting traditional coverage information. One is a new approach based on the concepts of direct coverage and indirect coverage. The other is a new approach to discover incidentally tested code. Both techniques have shown efficiency and effectiveness in the empirical studies on real-world applications.
机译:测试在现代软件开发中扮演着至关重要的基础角色。尽管软件测试从概念上讲很简单-它们由两个主要部分组成:用于执行被测程序的输入和用于验证输入引起的执行产生预期结果的oracle-在实践中通常很难写。软件工程研究社区提供了许多技术,可以帮助开发人员确定他们是否编写了有效的测试,包括各种被广泛采用的覆盖率指标。尽管它们在实践中已被证明是成功的,但许多后续研究表明,对于测试质量的测量还有很多改进的地方,包括在警告缺少测试方面的假否定,以及对改进的建设性建议。基于对测试输入和测试预言的解释的现有测试套件的质量。如果测试Oracle检查测试开发人员未控制或无法控制的值,则会使测试变脆。我开发了一种基于动态污染的新技术,该技术可以识别使测试变脆的值。对实际应用的经验研究表明,该技术可以揭示脆性断言以及在合理成本内引起脆性的值。我还开发了两种技术,它们可以通过解释传统的覆盖率信息来识别未经充分测试的代码。一种是基于直接覆盖和间接覆盖的概念的新方法。另一种是发现偶然测试的代码的新方法。两种技术都在对实际应用的实证研究中显示了效率和有效性。

著录项

  • 作者

    Huo, Chen.;

  • 作者单位

    University of Delaware.;

  • 授予单位 University of Delaware.;
  • 学科 Computer science.
  • 学位 Ph.D.
  • 年度 2017
  • 页码 115 p.
  • 总页数 115
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号