Automatic Test Data Generation for Java Card Applications Using Genetic Algorithm


The main objective of software testing is to have the highest likelihood of finding the most faults with a minimum amount of time and effort. Genetic Algorithm (GA) has been successfully used by researchers in software testing to automatically generate test data. In this paper, a GA is applied using branch coverage criterion to generate the least possible set of test data to test JSC applications. Results show that applying GA achieves better performance in terms of average number of test data generations, execution time, and percentage of branch coverage.

Share and Cite:

Manaseer, S. , Manasir, W. , Alshraideh, M. , Hashish, N. and Adwan, O. (2015) Automatic Test Data Generation for Java Card Applications Using Genetic Algorithm. Journal of Software Engineering and Applications, 8, 603-616. doi: 10.4236/jsea.2015.812057.

Conflicts of Interest

The authors declare no conflicts of interest.


[1] Stuber, G. (1996) The Electronic Purse: An Overview of Recent Developments and Policy Issues. Bank of Canada.
[2] Myers, G.J., Sandler, C. and Badgett, T. (2011) The Art of Software Testing. John Wiley & Sons, Hoboken.
[3] Sommerville, I. (2000) Software Engineering. Addison-Wesley, Harlow.
[4] Srivastava, P.R. and Kim, T.H. (2009) Application of Genetic Algorithm in Software Testing. International Journal of Software Engineering and Its Applications, 3, 87-96.
[5] Pargas, R.P., Harrold, M.J. and Peck, R.R. (1999) Test-Data Generation Using Genetic Algorithms. Software Testing Verification and Reliability, 9, 263-282.<263::AID-STVR190>3.0.CO;2-Y
[6] McCart, J., Berndt, D. and Watkins, A. (2007) Using Genetic Algorithms for Software Testing: Performance Improvement Techniques. Proceedings Americas Conference on Information Systems (AMCIS), Colorado, 2007, 222.
[7] Coglio, A. (2003) Code Generation for High-Assurance Java Card applets. Proceedings of 3rd NSA Conference on High Confidence Software and Systems, Gold Coast, April 2003, 85-93.
[8] Tuteja, M. and Dubey, G. (2012) A Research Study on Importance of Testing and Quality Assurance in Software Development Life Cycle (SDLC) Models. International Journal of Soft Computing, 2, 251
[9] Giorgio, Z. (2015) Understanding Java Card 2.0.
[10] Mitchell, M. (1996) An Introduction to Genetic Algorithms. MIT Press, Cambridge.
[11] Hermawanto, D. (2013) Genetic Algorithm for Solving Simple Mathematical Equality Problem. Cornell University Library, Computer Science, Neural and Evolutionary Computing, Indonesia, 1-10.
[12] Xie, H. and Zhang, M. (2009) Sampling Issues of Tournament Selection in Genetic Programming. School of Engineering and Computer Science, Victoria University of Wellington, Wellington.
[13] Spears, W.M. and Anand, V. (1991) A Study of Crossover Operators in Genetic Programming. Springer, Berlin Heidelberg, 409-418.
[14] DeJong, K.A. (1975) Analysis of the Behavior of a Class of Genetic Adaptive Systems. Department of Computer and Communication Sciences, University of Michigan, Ann Arbor.
[15] El Farissi, I., Azizi, M., Lanet, J.L. and Moussaoui, M. (2013) Neural Network vs. Bayesian Network to Detect Java Card Mutants. Agriculture and Agricultural Science Procedia, 4, 132-137.
[16] Kindermann, R. (2009) Testing a Java Card Applet Using the LIME Interface Test Bench: A Case Study.? Technical Report TKK-ICS-R18, Helsinki University of Technology, Department of Information and Computer Science, Espoo.
[17] Mostowski, W. and Poll, E. (2010) Electronic Passports in a Nutshell. Technical Report ICIS-R10004, Radboud University, Nijmegen.
[18] Vandewalle, J.J. and Vetillard, E. (1998) Developing Smart Card Based Applications Using Java Card. Proceedings of the Third Smartcard Research and Advanced Application Conference, Louvain-la-Neuve, 14-16 September 1998, 105-124.
[19] Bouquet, F., Legeard, B., Peureux, F. and Torreborre, E. (2005) Mastering Test Generation from Smart Card Software Formal Models. In: Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, Springer, Berlin Heidelberg, 70-85.
[20] Martin, H. and du Bousquet, L. (2001) Automatic Test Generation for Java Card Applets. In: Java on Smart Cards: Programming and Security, Springer, Berlin Heidelberg, 121-136.
[21] VanWeelden, A., Oostdijk, M., Frantzen, L., Koopman, P. and Tretmans, J. (2005) On-the-Fly Formal Testing of a Smart Card Applet. In: Security and Privacy in the Age of Ubiquitous Computing, Springer, New York, 565-576.
[22] Philipps, J., Pretschner, A., Slotosch, O., Aiglstorfer, E., Kriebel, S. and Scholl, K. (2003) Model-Based Test Case Generation for Smart Cards. Electronic Notes in Theoretical Computer Science, 80, 170-184.
[23] Berndt, D.J. and Watkins, A. (2005) High Volume Software Testing Using Genetic Algorithms. Proceedings of the 38th Annual Hawaii International Conference on System Sciences, Big Island, 3-6 January 2005, 318b.
[24] Korel, B. (1990) Automated Software Test Data Generation. IEEE Transactions on Software Engineering, 16, 870-879.
[25] Boneh, D. (1999) Twenty Years of Attacks on the RSA Cryptosystem. Notices of the AMS, 46, 203-213.
[26] Willis, N. (2014) Smart Card Features on the YubiKey NEO.
[27] Al-Khouri, A.M. (2012) PKI in Government Digital Identity Management Systems. European Journal of ePractice, 4, 4-21.

Copyright © 2022 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.