Theories in practice: Easy-to-write specifications that catch bugs

TitleTheories in practice: Easy-to-write specifications that catch bugs
Publication TypeMiscellaneous
Year of Publication2008
AuthorsSaff D, Boshernitsan M, Ernst MD
Abstract<p>Automated testing during development helps ensure that software works according to the test suite. Traditional test suites verify a few well-picked scenarios or example inputs. However, such example-based testing does not uncover errors in legal inputs that the test writer overlooked. We propose <em>theory-based testing</em> as an adjunct to example-based testing. A theory generalizes a (possibly infinite) set of example-based tests. A theory is an assertion that should be true for any data, and it can be exercised by human-chosen data or by automatic data generation. A theory is expressed in an ordinary programming language, it is easy for developers to use (often even easier than example-based testing), and it serves as a lightweight form of specification. Six case studies demonstrate the utility of theories that generalize existing tests to prevent bugs, clarify intentions, and reveal design problems.</p>
DownloadsPDF PostScript
Citation KeySaffBE2008
Last changed Mon, 2013-06-03 10:27