TestEra: Specification-Based Testing of Java Programs Using SAT

  • Authors:
  • Sarfraz Khurshid;Darko Marinov

  • Affiliations:
  • MIT Lab for Computer Science, 200 Technology Square, Cambridge, MA 02139, USA. khurshid@lcs.mit.edu;MIT Lab for Computer Science, 200 Technology Square, Cambridge, MA 02139, USA. marinov@lcs.mit.edu

  • Venue:
  • Automated Software Engineering
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

TestEra is a framework for automated specification-based testing of Java programs. TestEra requires as input a Java method (in sourcecode or bytecode), a formal specification of the pre- and post-conditions of that method, and a bound that limits the size of the test cases to be generated. Using the method's pre-condition, TestEra automatically generates all nonisomorphic test inputs up to the given bound. It executes the method on each test input, and uses the method postcondition as an oracle to check the correctness of each output. Specifications are first-order logic formulae. As an enabling technology, TestEra uses the Alloy toolset, which provides an automatic SAT-based tool for analyzing first-order logic formulae. We have used TestEra to check several Java programs including an architecture for dynamic networks, the Alloy-alpha analyzer, a fault-tree analyzer, and methods from the Java Collection Framework.