1. Model-Based Testing of Networked Applications
- Author
-
Yishuai Li, Benjamin C. Pierce, and Steve Zdancewic
- Subjects
FOS: Computer and information sciences ,Computer science ,0102 computer and information sciences ,02 engineering and technology ,computer.software_genre ,01 natural sciences ,Computer Science - Software Engineering ,Fragment (logic) ,Server ,0202 electrical engineering, electronic engineering, information engineering ,Formal verification ,Implementation ,Protocol (object-oriented programming) ,Model-based testing ,Computer Science - Programming Languages ,D.2.5 ,Programming language ,Proof assistant ,020207 software engineering ,Nondeterministic algorithm ,Software Engineering (cs.SE) ,010201 computation theory & mathematics ,F.3.1 ,computer ,Programming Languages (cs.PL) - Abstract
We present a principled automatic testing framework for application-layer protocols. The key innovation is a domain-specific embedded language for writing nondeterministic models of the behavior of networked servers. These models are defined within the Coq interactive theorem prover, supporting a smooth transition from testing to formal verification. Given a server model, we show how to automatically derive a tester that probes the server for unexpected behaviors. We address the uncertainties caused by both the server's internal choices and the network delaying messages nondeterministically. The derived tester accepts server implementations whose possible behaviors are a subset of those allowed by the nondeterministic model. We demonstrate the effectiveness of this framework by using it to specify and test a fragment of the HTTP/1.1 protocol, showing that the automatically derived tester can capture RFC violations in buggy server implementations, including the latest versions of Apache and Nginx., Comment: 11 pages, 15 figures
- Published
- 2021
- Full Text
- View/download PDF