Dynamic Localisation and Automatic Correction of Software Faults using Evolutionary Mutation Testing

Pantelis Stylianos Yiasemis, Andreas S. Andreou

2012

Abstract

Software testing has recently turned to more “sophisticated” techniques, like automatic, self-adaptive mutation testing, aiming at improving the effectiveness of the testing process and handling the associated complexity that increases the level of time and effort spent. Mutation testing refers to the application of mutation operators on correctly functioning programs so as to induce common programming errors and then assess the ability of a set of test cases to reveal them. In the above context the present paper introduces a novel methodology for identifying and correcting faults in Java source code using dynamic slicing coupled with mutation testing and enhanced by Genetic Algorithms. A series of experiments was conducted to assess the effectiveness of the proposed approach, using different types of errors and sample programs. The results were quite encouraging as regards the ability of the approach to localise the faults, as well as to suggest the appropriate correction(s) to eliminate them.

References

  1. Agrawal, H., Horgan, J.R., 1990. Dynamic program slicing. In ACM SIGPLAN Conference on programming Language Design and Implementation, White Plains, New York, U.S.A., ACM Press, pp. 246-256.
  2. Agrawal, H., Horgan, J. R., London, S., Wong, W. E., 1995. Fault Localization Using Execution Slices and Dataflow Tests. In Sixth International Symposium on Software Reliability Engineering, Volume-Issue: 24- 27, pp. 143 - 151.
  3. Arcuri, A., Yao, X., 2008. A novel co-evolutionary approach to automatic software bug fixing. In IEEE Congress on Evolutionary Computation IEEE World Congress on Computational Intelligence, pp. 162-168 Binkley, D., Danicic, S., Gyimothy, T., Harman, M., Kiss, A., Korel, B., 2006. Theoretical foundations of dynamic program slicing. Theoretical Computer Science, pp.23-41.
  4. Black, S., Counsell, S., Hall, T., Wernick, P., 2005. Using Program Slicing to identify Faults in Software. Dagstuhl, Seminar Nº 05451.
  5. DeMillo, R. A., Lipton, R. J., Sayward, F. G., 1978. Hints on Test Data Selection: Help for the Practicing Programmer. IEEE Computer 11(4), pp. 34-41.
  6. Fraser, G., Zeller, A., 2011. Generating Parameterized Unit Tests. In International Symposium on Software Testing and Analysis (ISSTA'11), July 17-21, Toronto, Canada.
  7. Goldberg, D. E., 1989. Genetic Algorithms in Search, Optimization and Machine Learning. AddisonWesley.
  8. Gupta, N., He, H., Zhang, X., Gupta, R., 2005. Locating Faulty Code Using Failure-Inducing Chops. In IEEE/ACM International Conference On Automated Software Engineering, Long Beach, CA.
  9. Hamlet, R. G., 1977. Testing Programs with the Aid of a Compiler. IEEE Transactions on Software Engineering, 3(4), pp. 279-290.
  10. Harman, M., Jia, Y., Langdon, W. B., 2011. Strong Higher Order Mutation-Base Test Data Generation. In ESEC/FSE'11, September 5-9, Szeged, Hungary.
  11. Jiang, T., Gold, N., Harman, M., Li, Z., 2008. Locating Dependence Structures Using Search Based Slicing. Journal of Information and Software Technology, Volume 50, No.12, pp. 1189-1209.
  12. King, K. N., Offutt, J., 1991. A Fortran Language System for Mutation-Based Software Testing. Software Practice and Experience, 21(7), pp. 686-718.
  13. Ma, Y.S., Offutt, J., 2005. Description of Method-level Mutation Operators for Java. http://cs.gmu.edu /offutt/ mujava/mutopsMethod.pdf.
  14. Myers, G. J., 1979. The Art of Software Testing. WileyInterscience.
  15. Nica, M., Nica, S., Wotawa, F., 2012. On the use of mutations and testing for debugging. SoftwarePractice and Experience, Article published online.
  16. Offutt, A. J., 1989. The Coupling Effect: Fact or Fiction. In ACM SIGSOFT 7889 - Third symposium on Software testing, analysis, and verification ACM New York, NY, USA ACM.
  17. Offutt, A. J., Untch, R. H., 2001. Mutation 2000: Uniting the Orthogonal. In 1st Workshop on Mutation Analysis (MUTATION'00), San Jose, California, pp.34-44.
  18. Offutt, J., Ma, Y. S., Kwon, Y. R., 2005. MuJava : An Automated Class Mutation System. Software Testing, Verification and Reliability, vol. 15, pp. 97-133.
  19. Patton, R., 2006. Software Testing, Sams Publishing, 2nd edition.
  20. Wang, T., Roychoudhury, A., 2004. Using compressed bytecode traces for slicing Java programs. In ACM/IEEE International Conference on Software Engineering (ICSE), pp. 512-521.
  21. Weimer, W., Forrest, S., Le Goues, C., Nguyen, T., 2010. Automatic program repair with evolutionary computation. Communications of the ACM Research Highlight 53:5 pp. 109-116.
  22. Zhang, X., He, H., Gupta, N., Gupta, R., 2005. Experimental Evaluation of Using Dynamic Slices for Fault Location. In Sixth International Symposium on Automated and Analysis-Driven Debugging, Monterey, California.
Download


Paper Citation


in Harvard Style

Stylianos Yiasemis P. and S. Andreou A. (2012). Dynamic Localisation and Automatic Correction of Software Faults using Evolutionary Mutation Testing . In Proceedings of the 14th International Conference on Enterprise Information Systems - Volume 2: ICEIS, ISBN 978-989-8565-11-2, pages 15-26. DOI: 10.5220/0003992000150026


in Bibtex Style

@conference{iceis12,
author={Pantelis Stylianos Yiasemis and Andreas S. Andreou},
title={Dynamic Localisation and Automatic Correction of Software Faults using Evolutionary Mutation Testing},
booktitle={Proceedings of the 14th International Conference on Enterprise Information Systems - Volume 2: ICEIS,},
year={2012},
pages={15-26},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0003992000150026},
isbn={978-989-8565-11-2},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 14th International Conference on Enterprise Information Systems - Volume 2: ICEIS,
TI - Dynamic Localisation and Automatic Correction of Software Faults using Evolutionary Mutation Testing
SN - 978-989-8565-11-2
AU - Stylianos Yiasemis P.
AU - S. Andreou A.
PY - 2012
SP - 15
EP - 26
DO - 10.5220/0003992000150026