Input invariants
Dominic Steinhöfel, Andreas Zeller
2022Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering35 citationsDOIOpen Access PDF
Abstract
How can we generate valid system inputs? Grammar-based fuzzers are highly efficient in producing syntactically valid system inputs. However, programs will often reject inputs that are semantically invalid. We introduce ISLa, a declarative specification language for context-sensitive properties of structured system inputs based on context-free grammars. With ISLa, it is possible to specify input constraints like "a variable has to be defined before it is used," "the 'file name' block must be 100 bytes long," or "the number of columns in all CSV rows must be identical."
Topics & Concepts
Computer scienceProgramming languageRowByteContext (archaeology)Rule-based machine translationBlock (permutation group theory)Variable (mathematics)GrammarNatural language processingTheoretical computer scienceMathematicsBiologyMathematical analysisGeometryPaleontologyLinguisticsPhilosophySoftware Testing and Debugging TechniquesFormal Methods in VerificationSoftware Engineering Research