A new tech report is up:
Theories in Practice: Easy-to-Write Specifications that Catch Bugs
by David Saff, Marat Boshernitsan, and Michael Ernst
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 theory-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.
February 29th, 2008 at 9:51 am
David,
the URL for the tech report has a minor error (http: in there twice.
Interesting stuff you’re doing, keep blogging!
Dan