Litcius/Paper detail

Mutational Fuzz Testing for Constraint Modeling Systems

Vanroose, Wout, Bleukx, Ignace, Devriendt, Jo, Tsouros, Dimos, Verhaeghe, Hélène, Guns, Tias

2024DROPS (Schloss Dagstuhl – Leibniz Center for Informatics)46 citationsDOIOpen Access PDF

Abstract

Constraint programming (CP) modeling languages, like MiniZinc, Essence and CPMpy, play a crucial role in making CP technology accessible to non-experts. Both solver-independent modeling frameworks and solvers themselves are complex pieces of software that can contain bugs, which undermines their usefulness. Mutational fuzz testing is a way to test complex systems by stochastically mutating input and verifying preserved properties of the mutated output. We investigate different mutations and verification methods that can be used on the constraint specifications directly. This includes methods proposed in the context of SMT problem specifications, as well as new methods related to global constraints, optimization, and solution counting/preservation. Our results show that such a fuzz testing approach improves the overall code coverage of a modeling system compared to only unit testing, and is able to find bugs in the whole toolchain, from the modeling language transformations themselves to the underlying solvers.

Topics & Concepts

Computer sciencePython (programming language)Unit testingProgramming languageJavaType inferenceTest caseInferenceArtificial intelligenceMachine learningSoftwareRegression analysisSoftware Testing and Debugging TechniquesSoftware Engineering ResearchSoftware Reliability and Analysis Research