Sponsored by: National Science Foundation, SERC
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 30 and 40 years ago. Some studies have shown 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 automating methods of using 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.
The following are SERC technical reports on research in the Spyder project.
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 DeMillo was co-investigator of the first part of this project. He was co-advisor of Agrawal and Pan's dissertation work.
Hiralal Agrawal received his Ph.D. in August 1991 and is now at Telcordia (formerly Bellcore). For his thesis work, Hiralal developed the theory behind dynamic slicing and bounded backtracking. He then implemented both in the Spyder prototype debugging tool. He can be reached at hira@bellcore.com
Hsin Pan received his Ph.D. in August of 1993 and is now with Verity Systems. For his thsis work, Hsin developed a family of heuristics for combining dynamic slices to localize faults. He further examined several new slicing methods he designed, including criticial slicing.
Chonchanok Viravan ("Nok") received her Ph.D. in May of 1994 and is working for the government of Thailand. 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.
An alpha release of Spyder was available for many years. However, given the changes in software platforms and the age of the code, it was withdrawn in 1999 as no longer functional.