MC/DC guided Test Sequence Prioritization using Firefly Algorithm

  • Swadhin Kumar BarisalEmail author
  • Arpita Dutta
  • Sangharatna Godboley
  • Bibhudatta Sahoo
  • Durga Prasad Mohapatra
Special Issue


Optimization of the regression testing process has been playing an important role in developing quality software. Still, it is difficult to achieve satisfactory results on the generation of non-redundant and optimized test sequences. There are many optimization techniques applied to regression testing. Firefly algorithm (FA) has gained its popularity as an optimization technique to provide better solutions in the areas of science and engineering. But, the original FA needs to have a better or modified objective function. This work uses FA with an improvised objective function to generate optimal test paths guided by “Modified Condition/Decision Coverage” (MC/DC) criteria in the form of a guided matrix. This matrix is built with MC/DC influence values that we obtained from the predicate nodes of “control flow graph” (CFG). This guided matrix also helps in measuring the fault-finding potential of a node. It also helps in routing fireflies to move between the nodes of a CFG. We have chosen MC/DC criteria, as it is the second strongest code coverage criteria due to its linear time complexity. Then, FA is used by defining an appropriate objective function to traverse the graph using fireflies. We obtain optimal test sequences after executing the FA. These test sequences are ranked by computing the mean brightness of nodes along a path and then prioritized based on their ranks. Our simulation and comparison are validated by experimenting on several moderate sized Java programs.


Test Sequence Prioritization Firefly Optimization CFG MC/DC 



  1. 1.
    Yajing Z, Jing D, Tu P (2010) Ontology classification for semantic-web-based software engineering. IEEE Trans Serv Comput 2(4):303–317Google Scholar
  2. 2.
    Mall R (2018) Fundamental of software engineering. PHI Learning Private Limited, New DelhiGoogle Scholar
  3. 3.
    Godboley S, Dutta A, Mohapatra DP, Mall R (2018) GECOJAP: a novel source-code preprocessing technique to improve code coverage. Comput Stand Interfaces 55:27–46CrossRefGoogle Scholar
  4. 4.
    Godboley S, Dutta A, Mohapatra DP, Mall R (2018) Scaling modified condition/decision coverage using distributed concolic testing for Java programs. Comput Stand Interfaces 59:61–86CrossRefGoogle Scholar
  5. 5.
    Chauhan N (2016) Software testing principles and practices. Oxford University Press, New DelhiGoogle Scholar
  6. 6.
    Bhattacherjee V, Suri D, Mahanti P (2005) Application of regular matrix theory to software testing. Eur J Sci Res 12(1):60–70Google Scholar
  7. 7.
    Sharma B, Girdhar I, Taneja M, Basia P, Vadla S, Srivastava PR (2011) Software coverage: a testing approach through ant colony optimization. In: Proceedings of international conference on swarm, evolutionary, and memetic computing, Berlin, Heidelberg. Springer, pp 618–625CrossRefGoogle Scholar
  8. 8.
    Srivastava PR, Baby MK, Raghurama G (2009) An approach of optimal path generation using ant colony optimization. In: TENCON 2009 IEEE region 10 conference, Singapore. IEEE, pp 1–6Google Scholar
  9. 9.
    Kumar S, Ranjan P, Rajesh R (2016) An overview of test case optimization using meta-heuristic approach. In: Recent advances in mathematics, statistics and computer science. World Scientific, pp 475–485Google Scholar
  10. 10.
    Stutzle T, Dorigo M (2003) The ant colony optimization metaheuristic: algorithms, applications, and advances. Int Ser Oper Res Manag 57:250–285MathSciNetzbMATHGoogle Scholar
  11. 11.
    Shi G, Chen W, Shi CJR (2007) A graph reduction approach to symbolic circuit analysis. In: 2007 Asia and South Pacific design automation conference. IEEE, pp 197–202Google Scholar
  12. 12.
    Xu Y, Salapaka SM, Beck CL (2011) On reduction of graphs and Markov chain models. In: 2011 50th IEEE conference on decision and control and European control conference. IEEE, pp 2317–2322Google Scholar
  13. 13.
  14. 14.
    Liu CL, Mohapatra DP (2013) Element of discrete mathematics, 4th edn. Tata McGraw-Hill, New DelhiGoogle Scholar
  15. 15.
    Kleinberg J, Tardos E (2006) Algorithm design. Pearson Education India, BangaloreGoogle Scholar
  16. 16.
    EAs (2019). University of Granada.
  17. 17.
    Yelghi A, Köse C (2018) A modified firefly algorithm for global minimum optimization. Appl Soft Comput 62:29–44CrossRefGoogle Scholar
  18. 18.
    Jiang S, Shi J, Zhang Y, Han H (2015) Automatic test data generation based on reduced adaptive particle swarm optimization algorithm. Neurocomputing 158:109–116CrossRefGoogle Scholar
  19. 19.
    Senthilnath J, Omkar SN, Mani V (2011) Clustering using firefly algorithm: performance study. Swarm Evol Comput 1(3):164–171CrossRefGoogle Scholar
  20. 20.
    Yong C, Yong Z (2008) Automatic path oriented test data generation using a multi-population genetic algorithm. In: Proceedings of the fourth international conference (IEEE) on natural computation. ICNC, pp 566–570Google Scholar
  21. 21.
    Nasiri B, Meybodi M (2012) Speciation based firefly algorithm for optimization in dynamic environments. Int J Artif Intell 8(12):118–132Google Scholar
  22. 22.
    Leidenfrost R, Elmenreich P (2008) Establishing wireless time-triggered communication using a firefly clock synchronization approach. In: Proceedings of ternational workshop on intelligent solutions in embedded systems, Regensburg, Germany. IEEE, pp 1–18Google Scholar
  23. 23.
    Jumadinova J, Dasgupt P (2008) Firefly-inspired synchronization for improved dynamic pricing in online markets. In: Proceedings of the 2008 IEEE international conference on self-adaptive and self-organizing systems, Venice, Italy. IEEE, pp 403–412Google Scholar
  24. 24.
    Srivastava PR (2012) Optimal software release using time and cost benefits via fuzzy multi-criteria and fault tolerance. J Inf Process Syst 8(1):21–24CrossRefGoogle Scholar
  25. 25.
    Nayak J, Naik B, Behera HS (2016) A novel nature inspired firefly algorithm with higher order neural network: performance analysis. Eng Sci Technol Int J 19(1):197–211CrossRefGoogle Scholar
  26. 26.
    Wang H, Wang W, Sun H, Rahnamayan S (2016) Firefly algorithm with random attraction. Int J Bio-Inspired Comput 8(1):33–41CrossRefGoogle Scholar
  27. 27.
    Omur S, Bahriye A (2016) Comparisons of metaheuristic algorithms and fitness functions on software test data generation. Appl Soft Comput 49:1202–1214CrossRefGoogle Scholar
  28. 28.
    Antosiewicz M, Koloch G, Kamiński B (2013) Choice of best possible metaheuristic algorithm for the travelling salesman problem with limited computational time: quality, uncertainty and speed. J Theor Appl Comput Sci 7(1):46–55Google Scholar
  29. 29.
    Fister I, Fister I Jr, Yang XS, Brest J (2013) A comprehensive review of firefly algorithms. Swarm Evol Comput 13:34–46CrossRefGoogle Scholar
  30. 30.
    Yang XS, He X (2013) Firefly algorithm: recent advances and applications. Int J Swarm Intell 1(1):36–50CrossRefGoogle Scholar
  31. 31.
    Yang XS, Hosseini SSS, Gandomi AH (2012) Firefly algorithm for solving non-convex economic dispatch problems with valve loading effect. Appl Soft Comput 12(3):1180–1186CrossRefGoogle Scholar
  32. 32.
    Srivatsava PR, Mallikarjun B, Yang XS (2013) Optimal test sequence generation using firefly algorithm. Swarm Evol Comput 8:44–53CrossRefGoogle Scholar
  33. 33.
    Panthi V, Mohapatra DP (2017) Generation and prioritization of test scenarios for object-oriented software using UML state machines. J Appl Res Technol 16:466–483Google Scholar
  34. 34.
    Panthi V, Mohapatra DP (2015) Generating prioritized test sequences using firefly optimization technique. In: Jain L, Behera H, Mandal J, Mohapatra D (eds) Computational intelligence in data mining, vol 2. Springer, New Delhi, pp 627–635CrossRefGoogle Scholar
  35. 35.
    Bodiwala S S, Jinwala C D (2016) Optimizing test case generation in glass box testing using bio-inspired algorithms. In: Proceedings of software engineering and service science (ICSESS), 7th IEEE international conference, Beijing, China. IEEE, pp 40–44Google Scholar
  36. 36.
    Sahoo RK, Mohapatra DP, Patra MR (2016) A firefly algorithm based approach for automated generation and optimization of test cases. Int J Comput Sci Eng 4(8):54–58Google Scholar
  37. 37.
    Kaur A, Agrawal A P (2017) A comparative study of bat and cuckoo search algorithm for regression test case selection. In: 7th international conference cloud computing, data science & engineering-confluence, 2017. IEEE, pp 164–170Google Scholar
  38. 38.
    Hashim NL, Dawood SY (2018) Test case minimization applying firefly algorithm. Int J Adv Sci Eng Inf Technol 8(4):1777–1783CrossRefGoogle Scholar
  39. 39.
    Srivastava PR, Vinod R, Gourab TKM, Tiwari Vivek, Sharma P (2008) Generation of test data using meta heuristics approach. In: Proceedings of the TENCON 2008. IEEE, pp 1–6Google Scholar
  40. 40.
    Samuel P, Mall R, Bothra AK (2008) Automatic test case generation using unified modeling language UML state diagrams. IET Softw 2(2):1080–1086CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2019

Authors and Affiliations

  1. 1.CSE DepartmentNational Institute of Technology, Rourkela (Parent Address: Siksha ‘O’ Anusandhan Deemed to be University, Bhubaneswar, India)RourkelaIndia
  2. 2.CSE DepartmentIndian Institute of Technology, KharagpurKharagpurIndia
  3. 3.National University of SingaporeSingaporeSingapore
  4. 4.Siksha ‘O’ Anusandhan Deemed to be UniversityBhubaneswarIndia

Personalised recommendations