SEDec 21, 2021

AmPyfier: Test Amplification in Python

arXiv:2112.11155v12 citationsHas Code
Originality Incremental advance
AI Analysis

This work addresses the challenge of improving test suites for Python developers, representing an incremental step by adapting test amplification to a new language context.

The paper tackled the problem of test amplification in dynamically typed languages like Python, where existing methods rely on static type declarations, and demonstrated that their tool AmPyfier successfully strengthened 70% of test classes in an evaluation on 7 open-source projects.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes