Abstract
The aim of this paper is to improve the reliability of programs by generating test cases considering different execution paths of the program. The method introduced in this paper assumes that only a single failing run is available for the program and applies a genetic algorithm which searches for the most similar failing and passing runs in terms of their executed predicates. By contrasting the similar passing and failing runs, the predicates that are different in two executions could be reported as fault relevant ones. We have also applied the k-means clustering technique to partition test cases according to their corresponding execution paths in order to ensure about the quality of software and locate the existing faults of the program. To evaluate the accuracy of the proposed method, we have conducted some case studies on a number of Siemens programs including different faulty versions. The results show the capability of the proposed method in generating a wide variety of test cases which could cover different program execution paths. The results also show the effectiveness of the approach in localizing faults according to detected fault relevant predicates.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Liu, C., Yan, X., Fei, L., Han, J., Midkiff, S.: SOBER: Statistical model-based bug localization. In: Proceedings of the 10th European Software Engineering Conference and 13th ACMSIGSOFT International Symposium on Foundations of Software Engineering, pp. 286–295. ACM Press, New York (2005)
Liblit, B., Aiken, A., Zheng, A.X., Jordan, M.I.: Bug isolation via remote program sampling. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 141–154. ACM Press, New York (2003)
Zhang, X., Gupta, R., Zhang, Y.: Precise dynamic slicing algorithms. In: IEEE/ACM International Conference on Software Engineering (ICSE), Portland, pp. 319–329 (2003)
Agrawal, H., De Millo, R., Spafford, E.: Debugging with dynamic slicing and backtracking. Software Practice and Experience (SP&E) 23(6), 589–616 (1993)
Zeller, A.: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann, San Francisco (2006)
Renieris, M., Reiss, S.: Fault localization with nearest neighbor queries. In: Proceedings of the 18th IEEE International Conference on Automated Software Engineering, pp. 30–39 (2003)
Mantere, T., Alander, J.T.: Evolutionary software engineering, a review. Journal of Applied Soft Computing Archive 5(3), 315–331 (2005)
Software Infrastructure Repository, http://www.cse.unl.edu/_galileo/sir
Lei, Y., Tai, K.: In-parameter-order: a test generation strategy for pairwise testing. In: Proceedings of the Third IEEE International High-Assurance Systems Engineering Symposium, Washington DC, pp. 254–261 (1998)
Korel, B.: Automated software test data generation. IEEE Transactions on Software Engineering (1990)
Pargas, R.P., Harrold, M.J., Robert, R.P.: Test-data generation using genetic algorithms. In: Software Testing, Verification and Reliability (1999)
Girgis, M.R.: Automatic test data generation for dataflow testing using genetic algorithm. Journal of Universal Computer Science 11(6), 898–915 (2005)
Singla, S., Singla, P., Rai, H.M.: An Automatic Test Data Generation for Data Flow Coverage Using Soft Computing Approach. International Journal of Research and Reviews in Computer Science (IJRRCS) 2 (2011)
Tan, P., Steinbach, M., Kumar, V.: Introduction to data mining. Pearson, Addison Wesley (2006)
Desikan, S., Ramesh, G.: Software testing Principles & Practices. Pearson Education, London (2007)
Ammann, P., Offutt, J.: Introduction to software testing. Cambridge University Press, Cambridge (2008)
Sivanandam, S.N., Deepa, S.N.: Introduction to Genetic Algorithms. Springer, Heidelberg (2010)
Edvardsson, J.: A survey on automatic test data generation. In: Proceedings of the Second Conference on Computer Science and Engineering in Link, pp. 21–28 (1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Parsa, S., PorShokooh, H.R., Teymouri, S., Vahidi-Asl, M. (2011). A Heuristic Test Data Generation Approach for Program Fault Localization. In: Deng, H., Miao, D., Lei, J., Wang, F.L. (eds) Artificial Intelligence and Computational Intelligence. AICI 2011. Lecture Notes in Computer Science(), vol 7002. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-23881-9_30
Download citation
DOI: https://doi.org/10.1007/978-3-642-23881-9_30
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-23880-2
Online ISBN: 978-3-642-23881-9
eBook Packages: Computer ScienceComputer Science (R0)