A review of software testing

Abstract Despite advances in formal methods of specification and improved software creation tools, there is no guarantee that the software produced meets its functional requirements. There is a need for some form of software testing. The paper introduces the aims of software testing. This is followed by a description of static and dynamic analysis, and, functional and structural testing strategies. These ideas are used to provide a taxonomy of testing techniques. Each technique is briefly described.

[1]  Lori A. Clarke,et al.  A System to Generate Test Data and Symbolically Execute Programs , 1976, IEEE Transactions on Software Engineering.

[2]  J. C. Browne,et al.  Fortran Automatic Code Evaluation System (FACES) , 1974 .

[3]  William E. Howden,et al.  An evaluation of the effectiveness of symbolic testing , 1978, Softw. Pract. Exp..

[4]  Clifford J. Maloney,et al.  Systematic mistake analysis of digital computer programs , 1963, CACM.

[5]  Jason Gait Command level software tools , 1983, SIGP.

[6]  David K. Gifford,et al.  The space shuttle primary computer system , 1984, CACM.

[7]  Andris Zarins,et al.  SMOTL - A System to Construct Samples for Data Processing Program Debugging , 1979, IEEE Trans. Software Eng..

[8]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[9]  J. P. Benson,et al.  The use of software probes in testing FORTRAN programs , 1974, Computer.

[10]  Michael Jackson,et al.  Principles of program design , 1975 .

[11]  Ippolito Spadafora,et al.  An Automatic Generator for Compiler Testing , 1982, IEEE Transactions on Software Engineering.

[12]  Richard J. Lipton,et al.  Theoretical and empirical studies on using program mutation to test the functional correctness of programs , 1980, POPL '80.

[13]  Simeon C. Ntafos,et al.  An Evaluation of Random Testing , 1984, IEEE Transactions on Software Engineering.

[14]  Dennis Van Tassel,et al.  Program Style, Design, Efficiency, Debugging, and Testing , 1974 .

[15]  Martin R. Woodward,et al.  Experience with Path Analysis and Testing of Programs , 1980, IEEE Transactions on Software Engineering.

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

[17]  A. J. Payne,et al.  A formalised technique for expressing compiler exercisers , 1978, SIGP.

[18]  Dorothy M. Andrews,et al.  An automated program testing methodology and its implementation , 1981, ICSE '81.

[19]  Lee J. White,et al.  A Domain Strategy for Computer Program Testing , 1980, IEEE Transactions on Software Engineering.

[20]  Donald E. Knuth,et al.  Optimal measurement points for program frequency counts , 1973 .

[21]  D. W. Cooper Adaptive testing , 1976, ICSE '76.

[22]  Darrel C. Ince,et al.  The Automatic Generation of Test Data , 1987, Comput. J..

[23]  Elaine J. Weyuker,et al.  Theories of Program Testing and the Application of Revealing Subdomains , 1980, IEEE Transactions on Software Engineering.

[24]  Leon J. Osterweil,et al.  Toolpack—An Experimental Software Development Environment Research Project , 1983, IEEE Transactions on Software Engineering.

[25]  Karl N. Levitt,et al.  SELECT - a formal system for testing and debugging programs by symbolic execution , 1975, Reliable Software.

[26]  Simeon C. Ntafos,et al.  A report on random testing , 1981, ICSE '81.

[27]  Richard J. Lipton,et al.  Social processes and proofs of theorems and programs , 1977, POPL.

[28]  Ian J. Hayes,et al.  Specification case studies , 1987 .

[29]  Karl N. Levitt,et al.  Greatest Common Divisor of n Integers and Multipliers (Certification of Algorithm 386) , 1973, Commun. ACM.

[30]  Gerald M. Weinberg,et al.  Psychology of computer programming , 1971 .

[31]  Leon J. Osterweil,et al.  Data Flow Analysis in Software Reliability , 1976, CSUR.

[32]  SIDNEY L. HANTLER,et al.  An Introduction to Proving the Correctness of Programs , 1976, CSUR.

[33]  Lori A. Clarke,et al.  The application of error-sensitive testing strategies to debugging , 1983 .

[34]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[35]  Elaine J. Weyuker,et al.  On Testing Non-Testable Programs , 1982, Comput. J..

[36]  Lori A. Clarke,et al.  A partition analysis method to increase program reliability , 1981, ICSE '81.

[37]  P. David Coward Symbolic execution systems-a review , 1988, Softw. Eng. J..

[38]  C. V. Ramamoorthy,et al.  On the Automated Generation of Program Test Data , 1976, IEEE Transactions on Software Engineering.