Abstract
Tools for automated fault localization usually generate too many bug candidates depending on the underlying technique. Hence, further information is required in order to further restrict the bug candidates. Approaches that rely on specific knowledge of the program to be debugged like variable values at specific position in the source code, are not easily accessible for users especially in case of software maintenance. In order to avoid this problem we suggest to integrate testing for restricting the number of bug candidates. In particular, we suggest to compute possible corrections of the program and from this, distinguishing test cases. A distinguishing test case is a test that reveals different output values for two given program variants, given the same input values. Besides the formal definitions and algorithms, we present the first empirical results of our approach. The use of mutations and distinguishing test cases substantially reduces the number of bug candidates.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Wotawa, F., Nica, M., Aichernig, B.K.: Generating distinguishing tests using the minion constraint solver. In: CSTVA 2010: Proceedings of the 2nd Workshop on Constraints for Testing, Verification and Analysis. IEEE, Los Alamitos (2010)
Weimer, W., Nguyen, T.V., Goues, C.L., Forrest, S.: Automatically finding patches using genetic programming. In: ACM/IEEE International Conference on Software Engineering (ICSE), pp. 512–521 (2009)
Debroy, V., Wong, W.E.: Using mutation to automatically suggest fixes for faulty programs. In: Third International Conference on Software Testing, Verification and Validation (ICST 2010). IEEE, Los Alamitos (2010)
Tretmans, J.: Test generation with inputs, outputs and repetitive quiescence. Software - Concepts and Tools 17(3), 103–120 (1996)
Wotawa, F., Peischl, B.: Automated source level error localization in hardware designs. IEEE Design and Test of Computers 23(1), 8–19 (2006)
Mayer, W., Abreu, R., Stumptner, M., van Gemund, A.J.: Prioritising model-based debugging diagnostic reports. In: Proceedings of the International Workshop on Principles of Diagnosis (DX) (2009)
Abreu, R., Zoeteweij, P., van Gemund, A.J.: On the accuracy of spectrum-based fault localization. In: Proceedings TAIC PART 2007, pp. 89–98. IEEE, Los Alamitos (2006)
Mayer, W.: Static and hybrid analysis in model-based debugging. PhD Thesis, School of Computer and Information Science, University of South Australia (2007)
Ceballos, R., Gasca, R.M., Valle, C.D., Borrego, D.: Diagnosing errors in dbc programs using constraint programming. In: Marín, R., Onaindía, E., Bugarín, A., Santos, J. (eds.) CAEPIA 2005. LNCS (LNAI), vol. 4177, pp. 200–210. Springer, Heidelberg (2006)
Nica, M., Weber, J., Wotawa, F.: How to debug sequential code by means of constraint representation. In: 19th International Workshop on Principles of Diagnosis (DX 2008) (2008)
Wotawa, F., Nica, M.: On the compilation of programs into their equivalent constraint representation. Informatika 32, 359–371 (2008)
Gent, I.P., Jefferson, C., Miguel, I.: Minion: A fast, scalable, constraint solver. In: 17th European Conference on Artificial Intelligence, ECAI 2006 (2006)
Ma, Y.S., Offutt, J., Kwon, Y.R.: Mujava: An automated class mutation system. Software Testing, Verification and Reliability 15, 97–133 (2005)
Offutt, A.J., Lee, A., Rothermel, G., Untch, R., Zapf, C.: An experimental determination of sufficient mutation operators. ACM Transactions on Software Engineering Methodology 5, 99–118 (1996)
Reiter, R.: A theory of diagnosis from first principles. Artificial Intelligence 32(1), 57–95 (1987)
Mayer, W., Stumptner, M.: Model-based debugging using multiple abstract models. In: Proceedings of the 5th International Workshop on Automated and Algorithmic Debugging, AADEBUG 2003, pp. 55–70 (2003)
Ceballos, R., Nica, M., Weber, J., Wotawa, F.: On the complexity of program debugging using constraints for modeling the program’s syntax and semantics. In: Proc. Conference of the Spanish Association for Artificial Intelligence (CAEPIA), Seville, Spain (2009)
Zeller, A., Hildebrandt, R.: Simplifying and isolating failure-inducing input. IEEE Transactions on Software Engineering 28(2) (2002)
Jones, J.A., Harrold, M.J.: Empirical evaluation of the tarantula automatic fault-localization technique. In: Proceedings ASE 2005, pp. 273–282. ACM Press, New York (2005)
Abreu, R., Zoeteweij, P., van Gemund, A.J.: Spectrum-based multiple fault localization. In: Proc. IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 88–99 (2009)
Kusumoto, S., Nishimatsu, A., Nishie, K., Inoue, K.: Experimental evaluation of program slicing for fault localization. Empirical Software Engineering 7, 49–76 (2002)
Binkley, D., Harman, M.: A survey of empirical results on program slicing. In: Zelkowitz, M. (ed.) Advances in Software Engineering – Advances in Computers, vol. 62, pp. 106–172. Academic Press Inc., London (2004), citeseer.ist.psu.edu/661032.html
Zhang, X., He, H., Gupta, N., Gupta, R.: Experimental evaluation of using dynamic slices for fault localization. In: Sixth International Symposium on Automated & Analysis-Driven Debugging (AADEBUG), pp. 33–42 (2005)
Wotawa, F.: Bridging the gap between slicing and model-based diagnosis. In: Proc. of the 20th Intl. Conference on Software Engineering and Knowledge Engineering (SEKE), Knowledge Systems Institute Graduate School, pp. 836–841 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nica, M., Nica, S., Wotawa, F. (2010). Does Testing Help to Reduce the Number of Potentially Faulty Statements in Debugging?. In: Bottaci, L., Fraser, G. (eds) Testing – Practice and Research Techniques. TAIC PART 2010. Lecture Notes in Computer Science, vol 6303. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15585-7_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-15585-7_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-15584-0
Online ISBN: 978-3-642-15585-7
eBook Packages: Computer ScienceComputer Science (R0)