Theories in Practice: Easy-to-Write Specifications that Catch Bugs

Written on Wednesday, January 30th, 2008 at 11:46 am by David Saff
Filed under Uncategorized.

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.

One Response to “Theories in Practice: Easy-to-Write Specifications that Catch Bugs”

  1. Dan Haywood Says:

    David,
    the URL for the tech report has a minor error (http: in there twice.

    Interesting stuff you’re doing, keep blogging!

    Dan

Leave a Reply

You must be logged in to post a comment.