GeMTest: A General Metamorphic Testing Framework
Metamorphic testing (MT) is an established software testing methodology suitable for testing various types of systems under test (SUTs), but identifying and implementing metamorphic relations (MRs) remains a challenge. This paper presents GeMTest, a general-purpose metamorphic testing framework that is domain-independent, enabling software testers to implement MRs in Python and execute them with pytest. In GeMTest, MRs are implemented using custom decorators to annotate Python functions, which specify the follow-up generation function, the metamorphic oracle, and the SUT. GeMTest then automatically creates and executes a pytest test suite containing multiple metamorphic test cases derived from the user-defined MRs. We evaluate GeMTest on 16 program domains, ranging from trigonometric functions to deep learning image classifiers, implementing in total over 200 MRs. To enable the adoption and encourage further extension, the open-source implementation of GeMTest is available on GitHub. Our demo video is available at https://youtu.be/EcSSK-meu90.
Authors
- Alexander Pretschner (ORCID: https://orcid.org/0000-0002-5573-1201)
- Simon Speth (ORCID: https://orcid.org/0000-0002-8525-1823)
Institutions
- Technical University of Munich (DE)
Publication Details
- Published
- 2025-04-27
- DOI
- https://doi.org/10.1109/icse-companion66252.2025.00020
- Citations
- 2
- Primary Topic
- Software Testing and Debugging Techniques
- Type
- article
- Field-Weighted Citation Impact
- 4.62