Collaborative: Exploiting component contracts for static analysis and testing
University Of Chicago, Chicago IL
Investigators
Abstract
0306270/0306286 Collaborative: Exploiting Component Contracts Robert Bruce Findler/Matthew Flatt Despite the central role of testing in the development process, current programming languages and environments provide scarcely any support for testing. Most testing research has focused on generating test inputs and test oracles from program specifications, but program specifications are difficult to produce and maintain. Consequently, language and environment designers remain unmotivated to support specifications, and opportunities to support testing are lost. Contracts offer a route around the specification problem. Contracts are a form of lightweight specification that work with the base programming language, i.e., there is no need for the programmer to learn a special logic for writing specifications. Contracts are monitored as the program executes, which means that the programmer is forced to maintain contracts with the code. Since contracts are essentially a generalization of assert statements, experience suggests that programmers will use them. The investigators focus on contracts as a specification language for automatic test suite generation. To validate their investigations, they will extend the DrScheme programming environment to support unit testing at component boundaries. In addition, they will use the new testing infrastructure to test DrScheme itself.
View original record on NSF Award Search →