What Good Are Strong Specifications?
Nadia Polikarpova, Carlo A. Furia, Yu Pei, Yi Wei, Bertrand Meyer

TL;DR
This paper explores the use of strong specifications in software development, demonstrating that they can significantly improve bug detection with manageable costs, thus offering a practical enhancement to traditional lightweight formal methods.
Contribution
It introduces a methodology extending Design by Contract for strong specifications and evaluates its effectiveness and cost in real-world testing scenarios.
Findings
Strong specifications detect twice as many bugs as standard contracts.
Testing against strong specifications has reasonable overhead.
Strong specifications offer a favorable benefit-to-effort ratio.
Abstract
Experience with lightweight formal methods suggests that programmers are willing to write specification if it brings tangible benefits to their usual development activities. This paper considers stronger specifications and studies whether they can be deployed as an incremental practice that brings additional benefits without being unacceptably expensive. We introduce a methodology that extends Design by Contract to write strong specifications of functional properties in the form of preconditions, postconditions, and invariants. The methodology aims at being palatable to developers who are not fluent in formal techniques but are comfortable with writing simple specifications. We evaluate the cost and the benefits of using strong specifications by applying the methodology to testing data structure implementations written in Eiffel and C#. In our extensive experiments, testing against…
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 Engineering Research · Software Testing and Debugging Techniques · Software Reliability and Analysis Research
