Automatically Testing Interacting Software Components

Workshop on Automation of Software Test (AST 2006). pages 57-63, May 2006, Shanghai, China.

Leonard Gallagher and Jeff Offutt


One goal of integration testing for object-oriented software is to ensure high object interoperability. Sent messages should have the intended effects on the states and subsequent actions of the receiving objects. This is especially difficult when software is comprised of components developed by different vendors, with different languages, and the implementation sources are not all available. A previous paper presented a model of inter-operating OO classes based on finite state machines. It addresses methods for identifying the relevant actions of a test component to be integrated into the system, transforms the finite state specification into a control and data flow graph, labels the graph with all defs and uses of class variables, and presents an algorithm to generate test specifications as specific paths through the directed graph. It also presents empirical results from an automatic tool that was built to support this test method. This paper presents additional details about the tool itself, including how several difficult problems were solved, and adds new capabilities to help automate the transformation of test specifications into executable test cases. The result is a fresh approach to automated testing. It follows accepted theoretical procedures while operating directly on an object-oriented software specification. This yields a data flow graph and executable test cases that adequately cover the graph according to classical graph coverage criteria. The tool supports specification-based testing and helps to bridge the gap between theory and practice.

Back to my home page.