Software debugging, testing, and verification

In commercial software development organizations, increased complexity of products, shortened development cycles, and higher customer expectations of quality have placed a major responsibility on the areas of software debugging, testing, and verification. As this issue of the IBM Systems Journal illustrates, there are exciting improvements in the underlying technology on all three fronts. However, we observe that due to the informal nature of software development as a whole, the prevalent practices in the industry are still immature, even in areas where improved technology exists. In addition, tools that incorporate the more advanced aspects of this technology are not ready for large-scale commercial use. Hence there is reason to hope for significant improvements in this area over the next several years.

[1]  James A. Whittaker,et al.  What is software testing? And why is it so hard? , 2000 .

[2]  Alan Hartman,et al.  A study in coverage-driven test generation , 1999, DAC '99.

[3]  Robert M. Poston Automating specification-based software testing , 1996 .

[4]  John D. Musa,et al.  Software Reliability Engineering , 1998 .

[5]  Jr. Frederick P. Brooks,et al.  The Mythical Man-Month: Essays on Softw , 1978 .

[6]  Richard G. Hamlet,et al.  Foundations of software testing: dependability theory , 1994, SIGSOFT '94.

[7]  Wolfgang Pollak Compiler Specification and Verification , 1981, Lecture Notes in Computer Science.

[8]  Michael S. Deutsch Software Verification and Validation: Realistic Project Approaches , 1981 .

[9]  Stephan Merz,et al.  Model Checking , 2000 .

[10]  Edsger W. Dijkstra,et al.  Notes on structured programming , 1970 .

[11]  Mladen A. Vouk Software Reliability Engineering , 1999 .

[12]  Glenford J. Myers,et al.  Softwear Reliability , 1976 .

[13]  Matthew B. Dwyer Model Checking Software , 2001, Lecture Notes in Computer Science.

[14]  Aaron Marcus,et al.  Software visualization for debugging , 1997, CACM.

[15]  Brent Hailpern Verifying Concurrent Processes Using Temporal Logic , 1982, Lecture Notes in Computer Science.

[16]  Glenford J. Myers,et al.  Software Reliability: Principles and Practices , 1976 .

[17]  Watts S. Humphrey,et al.  Managing the software process , 1989, The SEI series in software engineering.

[18]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[19]  Michael E. Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[20]  Ernst-Rüdiger Olderog,et al.  Verification of Sequential and Concurrent Programs , 1991, Texts and Monographs in Computer Science.

[21]  Amit M. Paradkar SALT-an integrated environment to automate generation of function tests for APIs , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.

[22]  Daniel Brand,et al.  A software falsifier , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.

[23]  Alessandro Orso,et al.  Regression test selection for Java software , 2001, OOPSLA '01.

[24]  Jessica Keyes,et al.  IEEE Standard Dictionary of Measures to Produce Reliable Software , 2002 .

[25]  John D. Musa,et al.  Software-Reliability-Engineered Testing , 1996, Computer.

[26]  Richard H. Carver,et al.  Replay and testing for concurrent programs , 1991, IEEE Software.

[27]  Anish Arora,et al.  Book Review: Verification of Sequential and Concurrent Programs by Krzysztof R. Apt and Ernst-Riidiger Olderog (Springer-Verlag New York, 1997) , 1998, SIGA.

[28]  Frederick P. Brooks,et al.  The Mythical Man-Month: Essays on Softw , 1978 .

[29]  Padmanabhan Santhanam,et al.  Evaluating Software Development Objectively , 1998, IEEE Softw..

[30]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[31]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[32]  Andreas Zeller,et al.  Yesterday, my program worked. Today, it does not. Why? , 1999, ESEC/FSE-7.

[33]  Henry Lieberman,et al.  The Debugging Scandal and What to Do About It (Introduction to the Special Section) , 1997, Commun. ACM.

[34]  Diane Manlove,et al.  In-process metrics for software testing , 2001, IBM Syst. J..

[35]  Clay E. Williams Towards a Test-Ready Meta-model for Use Cases , 2001, pUML.

[36]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[37]  Elaine J. Weyuker,et al.  Performance testing of software systems , 1998, WOSP '98.

[38]  David Lee,et al.  Principles and methods of testing finite state machines-a survey , 1996, Proc. IEEE.

[39]  Gary Sevitsky,et al.  Visualizing reference patterns for solving memory leaks in Java , 1999, Concurr. Pract. Exp..

[40]  Marc Eisenstadt,et al.  My hairiest bug war stories , 1997, CACM.

[41]  P. Kidwell,et al.  The mythical man-month: Essays on software engineering , 1996, IEEE Annals of the History of Computing.

[42]  Robert S. Boyer,et al.  Program Verification , 1985, J. Autom. Reason..

[43]  Michael R. Lyu,et al.  What is software reliability? , 1994, Proceedings of COMPASS'94 - 1994 IEEE 9th Annual Conference on Computer Assurance.

[44]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .