AmPyfier: Test amplification in Python. Issue 11 (24th July 2022)
- Record Type:
- Journal Article
- Title:
- AmPyfier: Test amplification in Python. Issue 11 (24th July 2022)
- Main Title:
- AmPyfier: Test amplification in Python
- Authors:
- Schoofs, Ebert
Abdi, Mehrdad
Demeyer, Serge - Other Names:
- Miranda Breno guestEditor.
Tuya Javier guestEditor.
Garrido Alejandra guestEditor. - Abstract:
- Abstract: Test amplification aims to automatically improve a test suite. One technique generates new test methods through transformations of the original tests. These test amplification tools heavily rely on analysis techniques that benefit a lot from type declarations present in the source code of projects written in statically typed languages. In dynamically typed languages, such type declarations are not available, and therefore, research regarding test amplification for those languages is sparse. Recent work has brought test amplification to the dynamically typed language Pharo Smalltalk by introducing the concept of dynamic type profiling. The technique is dependent on Pharo‐specific frameworks and has not yet been generalized to other languages. Another significant downside in test amplification tools based on the mutation score of a test suite is their high time cost. In this paper, we present AmPyfier, a tool that brings test amplification and type profiling to the dynamically typed language Python. AmPyfier introduces multi‐metric selection in order to increase the time efficiency of test amplification. We evaluated AmPyfier on 11 open‐source projects and found that AmPyfier could strengthen 37 out of 54 test classes. Multi‐metric selection decreased the time cost ranging from 17% to 98% as opposed to selection based on the full mutation score. Abstract : AmPyfier extends test amplification through generalization of dynamic type profiling to one of the most popularAbstract: Test amplification aims to automatically improve a test suite. One technique generates new test methods through transformations of the original tests. These test amplification tools heavily rely on analysis techniques that benefit a lot from type declarations present in the source code of projects written in statically typed languages. In dynamically typed languages, such type declarations are not available, and therefore, research regarding test amplification for those languages is sparse. Recent work has brought test amplification to the dynamically typed language Pharo Smalltalk by introducing the concept of dynamic type profiling. The technique is dependent on Pharo‐specific frameworks and has not yet been generalized to other languages. Another significant downside in test amplification tools based on the mutation score of a test suite is their high time cost. In this paper, we present AmPyfier, a tool that brings test amplification and type profiling to the dynamically typed language Python. AmPyfier introduces multi‐metric selection in order to increase the time efficiency of test amplification. We evaluated AmPyfier on 11 open‐source projects and found that AmPyfier could strengthen 37 out of 54 test classes. Multi‐metric selection decreased the time cost ranging from 17% to 98% as opposed to selection based on the full mutation score. Abstract : AmPyfier extends test amplification through generalization of dynamic type profiling to one of the most popular dynamically typed languages, Python. Thanks to multi‐metric selection, AmPyfier decreases the time‐cost of test amplification while increasing the efficiency. With multi‐metric selection, mutants are dynamically generated for (newly) covered code in the project under test, and amplified test methods are scored against both code coverage and mutation score resulting in a strengthened test suite. … (more)
- Is Part Of:
- Journal of software. Volume 34:Issue 11(2022)
- Journal:
- Journal of software
- Issue:
- Volume 34:Issue 11(2022)
- Issue Display:
- Volume 34, Issue 11 (2022)
- Year:
- 2022
- Volume:
- 34
- Issue:
- 11
- Issue Sort Value:
- 2022-0034-0011-0000
- Page Start:
- n/a
- Page End:
- n/a
- Publication Date:
- 2022-07-24
- Subjects:
- mutation testing -- Python -- test amplification -- unit testing
Software engineering -- Periodicals
Computer software -- Development -- Periodicals
Software maintenance -- Periodicals
005.1 - Journal URLs:
- http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2047-7481 ↗
http://onlinelibrary.wiley.com/ ↗ - DOI:
- 10.1002/smr.2490 ↗
- Languages:
- English
- ISSNs:
- 2047-7473
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - BLDSS-3PM
British Library HMNTS - ELD Digital store - Ingest File:
- 24241.xml