Spyder
National Science Foundation, SERC

About the project

Despite the variety of software development tools and techniques, and despite the best efforts of software engineers, software is frequently produced that contains faults (bugs). Even if it were possible to produce fault-free code from this time hence, the huge quantity of existing code to be maintained and reused would require fault detection and elimination technology.

Validation and verification of software is an important part of the software development process. Experience with current methods of software development continues to illustrate the need for testing of software, followed by the identification and repair of bugs exposed by that testing. This debugging process is usually time-consuming and labor-intensive, and relies on tools and methodologies little changed from the earliest debuggers developed in the 1970s. Some studies found that 50% or more of the total cost of software development may be attributed to testing and debugging, with nearly 80% of that cost being attributable to fault localization (the first step in debugging).

We were investigating new approaches that could enhance the state of debugging technology, and that might be applied to a wide range of software systems. We were exploring ways to automate the use of existing information—information not currently used effectively (or at all) in other debuggers—to aid the debugger. That information may be present in the mapping of specifications to code, in the behavior of the code when executed against test data, in data produced by the compiler, and in the performance of previous debugging steps.

This project involved research into advanced methods of software debugging, including exploration of new methods of bounded backtracking, dynamic program slicing, slice heuristics, and an active debugging critic.

Back to top

Selected Publications

The following are some technical reports (TR), dissertations, and citations to published research from the Spyder project.

TR–22–P
An Execution Backtracking Approach to Program Debugging, by H. Agrawal, Richard A. DeMillo, and Eugene H. Spafford. This paper was published in IEEE Software, May 1991, pp. 21–26.
TR–80–P
Efficient Debugging With Slicing and Backtracking, by H. Agrawal, Richard A. DeMillo, and Eugene H. Spafford. An expanded version of this paper appeared as Debugging With Dynamic Slicing and Backtracking in Software Practice & Experience, 23(6), pp. 589–616, June 1993.
TR–93–P
Dynamic Slicing in the Presence of Unconstrained Pointers, by H. Agrawal, Richard A. DeMillo, and Eugene H. Spafford. This paper appeared in Proceedings of the 4th ACM Symposium on Testing, Analysis and Verification, Oct 1991, pp. 60–73, under the title Dynamic Slicing in the Presence of Pointers, Arrays, and Records.
Dissertation
Towards Automatic Debugging of Computer Programs, Ph.D. dissertation by H. Agrawal.
[Also available as technical report TR–103–P]
TR–116–P
Heuristics for Automatic Localization of Software Faults, by Hsin Pan and Eugene H. Spafford. A shortened version of this paper appeared in Proceedings of the 10th Pacific Northwest Software Quality Conference, Oct 1992, pp. 192–209. An expanded version of this paper was to appear in an issue of Journal of Computer and Software Engineering, but the journal went defunct before the publication occurred.
TR–120–P
Experimental Designs: Testing A Debugging Oracle Assistant by Eugene H. Spafford and Chonchanok Viravan.
TR–134–P
Pilot Studies on Debugging Oracle Assistants by Eugene H. Spafford and Chonchanok Viravan.
Dissertation
Software Debugging With Dynamic Instrumentation and Test-Based Knowledge, Ph.D. dissertation by Hsin Pan.
[Also available as technical report TR–145–P]
Dissertation
Enhancing Debugging Technology, Ph.D. dissertation by Chonchanok Viravan.
[Also available as technical report TR–151–P]
Back to top

Personnel

Faculty

Gene Spafford was the lead researcher on this project from its inception. He was co-advisor for Agrawal and Pan's work (below), and advisor for Viravan's work.

Richard A. DeMillo was co-investigator of the first part of this project. He was co-advisor of Agrawal and Pan's dissertation work and was on the faculty at Purdue during this time.

Students

Hiralal Agrawal received his Ph.D. in August 1991 and joined the technical staff of Telcordia (formerly Bellcore) but is now retired. For his thesis work, Hiralal developed the theory behind dynamic slicing and bounded backtracking. He then implemented both in the Spyder prototype debugging tool.

Hsin Pan received his Ph.D. in August of 1993. For his thesis work, Hsin developed a family of heuristics for combining dynamic slices to localize faults. He further examined several new slicing methods he designed, including critical slicing.

Chonchanok Viravan ("Nok") received her Ph.D. in May of 1994. For her thesis, Nok developed an active critic system to provide guidance and feedback to users of the Spyder system. The critic provides information shown in experiments to help debugging speed.

After a career working in the public sector, Nok passed away in 2022.

Back to top

Source code

An alpha release of Spyder was available for many years. However, given changes to software platforms and the code's age, it was withdrawn in 1999 as no longer functional.

The original SERC was an NSF I/UCRC program center. It "graduated" that program in 2004, and in 2010 was reconstituted as the S2ERC (now defunct).