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

Download: PDF.

“Theories in practice: Easy-to-write specifications that catch bugs” by David Saff, Marat Boshernitsan, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-002, (Cambridge, MA), January 14, 2008.

Abstract

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.

Download: PDF.

BibTeX entry:

@techreport{SaffBE2008,
   author = {David Saff and Marat Boshernitsan and Michael D. Ernst},
   title = {Theories in practice: Easy-to-write specifications that catch
	bugs},
   institution = {MIT Computer Science and Artificial Intelligence Laboratory},
   number = {MIT-CSAIL-TR-2008-002},
   address = {Cambridge, MA},
   month = {January~14,},
   year = {2008}
}

(This webpage was created with bibtex2web.)

Back to Michael Ernst's publications.