
TL;DR
This paper introduces a language-based approach for testing nondeterministic interactive systems, providing a formal theory, specification techniques, and practical testers that effectively identify implementation discrepancies.
Contribution
It presents a novel theory for specifying and validating nondeterministic behaviors, along with a language design for generating effective test inputs.
Findings
Successfully tested real-world systems like web servers and file synchronizers.
Derived testers identified specification-implementation disagreements.
Demonstrated soundness and correctness of the testing methodology.
Abstract
Software engineering requires rigorous testing to guarantee the product's quality. Semantic testing of functional correctness is challenged by nondeterminism in behavior, which makes testers difficult to write and reason about. This thesis presents a language-based technique for testing interactive systems. I propose a theory for specifying and validating nondeterministic behaviors, with guaranteed soundness and correctness. I then apply the theory to testing practices, and show how to derive specifications into interactive tester programs. I also introduce a language design for producing test inputs that can effectively detect and reproduce invalid behaviors. I evaluate the methodology by specifying and testing real-world systems such as web servers and file synchronizers, demonstrating the derived testers' ability to find disagreements between the specification and the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Engineering Research · Advanced Malware Detection Techniques
