Testability, the tendency for software to reveal its faults during testing, is an important issue for verification and quality assurance. But testability can also be used to good advantage as a debugging technique. Although this concept is more general, we will illustrate it with a specific example: propagation analysis.
Propagation Analysis (PA) is a technique for predicting the probability that a data state error affects program output. PA is a technique that produces information about a piece of software's testability. PA bases its prediction on empirical measurement of the probability that an ‘artificial’ data state error affects program output. After obtaining propagation analysis information for a program and obtaining a failure probability estimate for the program during execution we build a model that can be used to identify possible sites of missing-assignment faults of the form x ≔ f(x). Thus we can apply the testability technique PA as a debugging tool.
This is a preview of subscription content, log in to check access.
Buy single article
Instant access to the full article PDF.
Price includes VAT for USA
Subscribe to journal
Immediate online access to all issues from 2019. Subscription will auto renew annually.
This is the net price. Taxes to be calculated in checkout.
College of William and Mary (1990) A Proportional Navigation Problem, Fall Semester, Computer Science Course CS242 Project.
DeMillo, R.A., Lipton, R. and Sayward, F.G. (1978), Hints on test data selection: help for the practicing programmer, IEEE Computer 11 (4), 34–41.
Howden, W. E. (1976) Reliability of the path analysis testing strategy, IEEE Transactions on Software Engineering SE 2, 208–215.
Howden, W.E. (1982). Weak mutation testing and completeness of test test, IEEE Transactions on Software Engineering, SE-8(4), 371–379.
Laski, L. W. and Korel, B. (1983) A data flow oriented program testing strategy, IEEE Transactions on Software Engineering, SE-9(3), 347–54.
Law, A.M. and Kelton, W.D. (1982) Simulation Modeling and Analysis, McGraw-Hill Book Company, New York.
Morell, L.J. (1990). A theory of fault-based testing, IEEE Transactions on Software Engineering, SE-16, 844–57.
Murrill, B.W. and Morell, L.J. (1990). Error Flow Testing, Technical Report WM-90-1, College of William and Mary, Department of Computer Science.
Offutt, A.J. (1988) Automatic Test Data Generation, PhD thesis, Department of Information and Computer Science, Georgia Institute of Technology.
Offutt, A.J. (1989) The Coupling Effect: Fact or Fiction in Proceedings of the ACM SIGSOFT 89 Third Symposium on Software Testing, Analysis, and Verification, Key West, KL, December 1989.
Park, S.K. and Miller, K.W. (1988) Random number generators: good ones are hard to find, Communications of the ACM, 31(10), 1192–1201.
Rapps, S. and Weyuker, E.J. (1985) Selecting software test data using data flow information, IEEE Transactions on Software Engineering SE-11(4), 367–375.
Richardson, D. and Thomas M. (1988) The RELAY model of error detection and its application, in Proceedings of the ACM SIGSOFT/IEEE 2nd Workshop on Software Testing, Analysis, and Verification, Banff, Canada, July 1988.
Shimeall, T.J., (1990) CONFLICT Specification, Technical Report NPSCS-91-001, Computer Science Department, Naval Postgraduate School, Monterey, CA.
Voas, J. (1992). PIE: a dynamic failure-based technique, IEEE Transactions on Software Engineering SE-18 (8), 717–27.
Weiss, S.N. and Weyuer, E.J. (1988) An extended domain-based model of software reliability, IEEE Transactions on Software Engineering, 14(10), 1512–1524.
This work supported by a National Research Council NASA-Langley Resident Research Associateship and NASA-Langley Grant NAG-1-884.
About this article
Cite this article
Voas, J.M., Miller, K.W. Applying a dynamic testability technique to debugging certain classes of software faults. Software Qual J 2, 61–75 (1993). https://doi.org/10.1007/BF00417427
- propagation analysis
- software testing
- probability of failure
- fault-based testing