TitleTheories in practice: Easy-to-write specifications that catch bugs
Publication TypeMiscellaneous
Year of Publication2008
AuthorsSaff D, Boshernitsan M, Ernst MD
Date or Month PublishedJanuary 14,
AbstractAutomated 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 \emphtheory-based testing 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.
Downloadshttps://dspace.mit.edu/bitstream/handle/1721.1/40090/MIT-CSAIL-TR-2008-0... PDF
Citation KeySaffBE2008