Test Amplification is a method to extend handwritten tests into a more rigorous test suite covering corner cases in the system under test. Unfortunately, the current state-of-the-art for test amplification heavily relies on program analysis techniques which benefit a lot from explicit type declarations present in statically typed languages like Java and C++. In dynamically typed languages, such type declarations are not available and as a consequence test amplification has yet to find its way to programming languages like Python, Ruby and Javascript. In this paper, we present AmPyfier, a proof-of-concept tool, which brings test amplification to the dynamically typed, interpreted language Python. We evaluated this approach on 7 open-source projects, and found that AmPyfier could successfully strengthen 7 out of 10 test classes (70%). As such we demonstrate that test amplification is feasible for one of the most popular programming languages in use today.
翻译:测试放大是将手写测试扩展为更严格测试套件以覆盖测试系统中角落案例的一种方法。 不幸的是,当前测试放大的最新技术在很大程度上依赖于程序分析技术,这些技术从静态打印语言(如爪哇语和C+++)的清晰类型声明中获益匪浅。 在动态输入的语言中,这种类型声明是不存在的,因此,测试放大尚未找到如何将Python语、Ruby语和Javascript语等语言编程的方法。在本文中,我们介绍了AmPyfier, 一种概念校准工具,它为动态键入的、解释的语言Python提供了测试放大。我们在7个开放源项目中评估了这一方法,发现AmPyfier可以成功地加强10个测试类中的7个(70%),因此,我们证明对当今使用的最流行的编程语言之一进行测试放大是可行的。