Abstract
Program transformation is a process in which an input program is transformed into another program that achieves a specific goal. Such transformation is done by applying a sequence of transformation rules on the input program to generate another program as the output. Such transformations can be done manually with human intervention (software developer) or automatically by a transformation program applying a transformation algorithm. Automating this process has been of an interest to a myriad of researchers in the past years. Several researches were done to automatically find good transformation sequences to achieve different transformation goals including program optimization and test case generation. The most popular techniques used are search-based meta-heuristic algorithms including genetic algorithm. In this paper, we will survey previous works that used genetic algorithm to achieve optimization goals under the umbrella of program transformation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Fatiregun, D., et al.: Evolving transformation sequences using genetic algorithms. In: Fourth IEEE International Workshop on Source Code Analysis and Manipulation, 8 June 2009. https://doi.org/10.1109/scam.2004.11
Srivastava, P.R., Kim, T.: Application of genetic algorithm in software testing. Int. J. Softw. Eng. Appl. 3(4), 87–96 (2009)
Sharma, A., et al.: Software testing using genetic algorithms. Int. J. Comput. Sci. Eng. Surv. 7(2), 21–33 (2016). https://doi.org/10.5121/ijcses.2016.7203
El-Mihoub, T.A., et al.: Hybrid genetic algorithms: a review. Eng. Lett. 13, 124–137 (2006)
Pandian, S., Modrák, V.: Possibilities, obstacles and challenges of genetic algorithm in manufacturing cell formation. Adv. Logistic Syst. 3, 63–70 (2009)
Kudjo, P.K., Ocquaye, E., Ametepe, W.: Review of genetic algorithm and application in software testing. Int. J. Comput. Appl. 160(2), 1–6 (2017). https://doi.org/10.5120/ijca2017912965
Goyal, S., et al.: Software test case optimization using genetic algorithm. Int. J. Sci. Eng. Sci. 1(12), 69–73 (2018)
Rajkumari, R., Geetha, B.G.: Automated test data generation and optimization scheme using genetic algorithm. In: International Conference on Software and Computer Applications, vol. 9, pp. 52–56 (2011)
Cooper, K.D., et al.: Optimizing for reduced code space using genetic algorithms. In: Proceedings of the ACM SIGPLAN 1999 Workshop on Languages, Compilers, and Tools for Embedded Systems - LCTES 99 (1999). https://doi.org/10.1145/314403.314414
Baxter, I.D.: Transformation systems: domain-oriented component and implementation knowledge. In: Proceedings of the Ninth Workshop on Institutionalizing Software Reuse, Austin, TX, USA, January 1999
Bennett, K.H.: Do program transformations help reverse engineering? In: IEEE International Conference on Software Maintenance (ICSM 1998), Bethesda, Maryland, USA, pp. 247–254. IEEE Computer Society Press, Los Alamitos, November 1998
Darlington, J., Burstall, R.M.: A transformation system for developing recursive programs. J. ACM 24(1), 44–67 (1977)
Harman, M., Fox, C., Hierons, R.M., Hu, L., Danicic, S., Wegener, J.: Vada: a transformation-based system for variable dependence analysis. In: IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2002), Montreal, Canada, pp. 55–64. IEEE Computer Society Press, Los Alamitos (2002)
Harman, M., Hu, L., Hierons, R., Baresel, A., Sthamer, H.: Improving evolutionary testing by flag removal. In: Proceedings of the Genetic and Evolutionary Computation Conference, GECCO 2002, pp. 1359–1366. Morgan Kaufmann Publishers, New York, 9–13 July 2002
Somerville, I.: Software Engineering, 7th edn. Addison-Wesley, Boston
Mathur, A.P.: Foundation of Software Testing, 1st edn. Pearson Education, London (2008)
Alander, J.T., Mantere, T., Turunen, P.: Genetic Algorithm Based Software Testing (1997). http://citeseer.ist.psu.edu/40769.html
Mansour, N., Salame, M.: Data generation for path testing. Softw. Qual. J. 12, 121–136 (2004)
Srivastava, P.R., et al.: Generation of test data using Meta heuristic approach. In: IEEE TENCON, 19–21 November 2008. India available in IEEEXPLORE
Wegener, J., Baresel, A., Sthamer, H.: Suitability of evolutionary algorithms for evolutionary testing. In: Proceedings of the 26th Annual International Computer Software and Applications Conference, Oxford, England, 26–29 August 2002
Berndt, D.J., Watkins, A.: Investigating the performance of genetic algorithm-based software test case generation. In: Proceedings of the Eighth IEEE International Symposium on High Assurance Systems Engineering (HASE 2004), pp. 261–262. University of South Florida, 25–26 March 2004
Korel, B.: Automated software test data generation. IEEE Trans. Softw. Eng. 16(8), 870–879 (1990)
Jones, B.F., Sthamer, H.-H., Eyres, D.E.: Automatic structural testing using genetic algorithms. Softw. Eng. J. 11, 299–306 (1996)
Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques and Tools. Addison Wesley, Boston (1986)
Visser, E., Benaissa, Z., Tolmach, A.: Building program optimizers with rewriting strategies. In: Proceedings of the International Conference on Functional Programming (ICFP 1998), Baltimore, USA, September 1998
Ward, M.: Reverse engineering through formal transformation. Comput. J. 37(5), 795–813 (1994)
Cooper, M.K.D., Schielke, P.J., Subramanian, D.: Optimising for reduced code space using genetic algorithms. In: Proceedings of the 1999 Workshop on Languages, Compilers and Tools for Embedded Systems (LCTES), May 1999 (1994)
Ward, M.P.: Assembler to C migration using the FermaT transformation system. In: IEEE International Conference on Software Maintenance (ICSM 1999), Oxford, UK, August 1999. IEEE Computer Society Press, Los Alamitos (1999)
Ryan, C.: Automatic Re-engineering of Software Using Genetic Programming. Kluwer Academic Publishers, Dordrecht (2000)
Goldberg, D.E.: Genetic Algorithms: in Search, Optimization & Machine Learning. Addison Wesley, Boston (1989)
Berndt, D.J., Fisher, J., Johnson, L., Pinglikar, J., Watkins, A.: Breeding software test cases with genetic algorithms. In: Proceedings of the Thirty-Sixth Hawaii International Conference on System Sciences (HICSS-36), Hawaii, January 2003
Last, M., Eyal1, S., Kandel, A.: Effective black-box testing with genetic algorithms. In: IBM Conference (2005)
Lin, J.C., Yeh, P.L.: Using genetic algorithms for test case generation in path testing. In: Proceedings of the 9th Asian Test Symposium (ATS 2000), Taipei, Taiwan, 4–6 December 2000
Baresel, A., Sthamer, H., Schmidt, M.: Fitness function design to improve evolutionary structural testing. In: Proceedings of the Genetic and Evolutionary Computation Conference (2002)
Rajappa, V., Biradar, A., Panda, S.: Efficient software test case generation using genetic algorithm based graph theory. In: First International Conference on Emerging Trends in Engineering and Technology, ICETET 2008, pp. 298–303 (2008)
Holland, J.: Adaptation in Natural and Artificial Systems: The University of Michigan (1975)
De Jong, K.: An analysis of the behavior of a class of genetic adaptive systems. Doctoral dissertation. The University of Michigan, Ann Arbor (1975)
Goldberg, D.E.: Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley, Boston (1989)
Girgis, M.R.: Automatic test data generation for data flow testing, using a genetic algorithm. J. Univ. Comput. Sci. 11(6), 898–915 (2005)
Last, M., Eyal, S., Kandel, A.: Effective black-box testing with genetic algorithms. Department of Computer Science and Engineering, Ben-Gurion University of the Negev, BeerSheva, Israel (2005)
Beasley, D., Bull, D.R., Martin, R.R.: An overview of genetic algorithms: part 1, fundamentals. Univ. Comput. 15, 58–69 (1993)
Itkonen, J., Mantyla, M.V., Lassenius, C.: How do testers do it? An exploratory study on manual testing practices. In: Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement, pp. 494–497 (2009)
Miller, C.M.: Automated testing system, ed: Google Patents (1995)
Michael, C.C., McGraw, G.E., Schatz, M.A., Walton, C.C.: Genetic algorithms for dynamic test data generation. In: Proceedings of 12th IEEE International Conference Automated Software Engineering, pp. 307–308 (1997)
Goldberg, D.E.: Optimal initial population size for binary-coded genetic algorithms: clearinghouse for genetic algorithms, Department of Engineering Mechanics, University of Alabama (1985)
Reeves, C.R.: Using genetic algorithms with small populations. In: ICGA, p. 92 (1993)
Ahn, C.W., Ramakrishna, R.S.: A genetic algorithm for shortest path routing problem and the sizing of populations. IEEE Trans. Evol. Comput. 6, 566–579 (2002)
Horn, J., Nafpliotis, N., Goldberg, D.E.: A niched Pareto genetic algorithm for multiobjective optimization. In: Proceedings of the First IEEE Conference on Evolutionary Computation, IEEE World Congress on Computational Intelligence, pp. 82–87 (1994)
Berndt, D.J., Watkins, A.: Investigating the performance of genetic algorithm-based software test case generation. In: Proceedings of Eighth IEEE International Symposium on High Assurance Systems Engineering, pp. 261–262 (2004)
Kosindrdecha, N., Daengdej, J.: A test case generation process and technique. J. Softw. Eng. 4, 265–287 (2010)
Last, M., et al.: Effective black-box testing with genetic algorithms. LNCS, pp. 134–148. Springer, Heidelberg (2006)
Giuseppe, A., et al.: Testing web –applications: the state of art and future trends. Inf. Softw. Technol. 48, 1172–1186 (2006)
Michael, C.C., McGraw, G.E., Schatz, M.A., Walton, C.C.: Genetic algorithms for dynamic test data generation. In: Proceedings of the 1997 International Conference on Automated Software Engineering (ASE 1997) (formerly: KBSE) 0-8186-7961-1/97 © 1997 IEEE
Asoh, H., Mühlenbein, H.: On the mean convergence time of evolutionary algorithms without selection and mutation. In: Davidor, Y., Schwefel, H.-P., Manner, R. (eds.) Parallel Problem Solving from Nature, PPSN III, pp. 88–97. Springer, Berlin (1994)
Thierens, D., Goldberg, D., Guimaraes, P.: Domino convergence, drift, and the temporal-salience structure of problems. In: 1998 IEEE International Conference on Evolutionary Computation Anchorage, pp. 535–540. IEEE (1998)
Mahfoud, S.W.: Boltzmann selection. In: Handbook of Evolutionary Computation, Back, T., Fogel, D.B., Michalewicz, Z. (eds.) pp. C2.5:1-4. IOP Publishing Ltd and Oxford University Press (1997)
Reeves, C.: Genetic algorithms and neighbourhood search. In: Fogarty, T.C. (ed.) Evolutionary Computing, AISB Workshop, vol. 865. LNCS, pp. 115–130. Springer, Heidelberg (1994)
Hart, W.E.: Adaptive global optimization with local search. Doctoral dissertation. University of California, San Diego (1994)
Lobo, F.G., Goldberg, D.E.: Decision making in a hybrid genetic algorithm. In: IEEE International Conference on evolutionary Computation, pp. 122–125. IEEE Press, Piscataway (1997)
De Jong, K.: Genetic algorithms: a 30 year perspective. In: Booker, L., Forrest, S., Mitchell, M., Riolo, R. (eds.) Perspectives on Adaptation in Natural and Artificial Systems. Oxford University Press, Oxford (2005)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Maghawry, A., Kholief, M., Omar, Y., Hodhod, R. (2019). A Survey on Program Analysis and Transformation. In: Silhavy, R., Silhavy, P., Prokopova, Z. (eds) Computational Statistics and Mathematical Modeling Methods in Intelligent Systems. CoMeSySo 2019 2019. Advances in Intelligent Systems and Computing, vol 1047. Springer, Cham. https://doi.org/10.1007/978-3-030-31362-3_12
Download citation
DOI: https://doi.org/10.1007/978-3-030-31362-3_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-31361-6
Online ISBN: 978-3-030-31362-3
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)