• Sonuç bulunamadı

F. Veri Madenciliğinin Kullanıldığı Bir Sahtekârlık Örneğinin İncelemesi

1. Örnek Olay Üzerinde Veri Madenciliği Süreci

A etapa de Teste de Software é tratada por diversos autores como a atividade de maior custo para o desenvolvimento do software, pois é nesta etapa que serão verificadas a qualidade e a eficiência do produto.

A preocupação em reduzir os custos sem comprometer a qualidade do software fez com que outra área da Ciência da Computação e da Matemática Aplicada fosse então inserida nesta etapa do Teste de Software para resolver este problema, que são as técnicas de otimização.

A união dessas duas áreas foi chamada por Harman e Jones em 2001 de

Search Based Software Engineering (SBSE). Apesar de este termo ter sido proposto

apenas em 2001, observa-se que, em meados da década de 70, já apareciam os primeiros trabalhos de pesquisa (MILLER e SPOONER, 1976) utilizando a técnica de otimização em problemas de Teste de Software. Entre 1976 e 2000, eram apenas 60 artigos publicados, enquanto entre 2001 e 2014, já foram contabilizadas 652 publicações, mostrando o grande despertar da comunidade acadêmica para esta nova área de pesquisa.

Uma classificação dos trabalhos publicados no período de 2009 a 2014 considerou os algoritmos de otimização utilizados pelos autores e as suas principais características. Importante ressaltar que, na grande maioria dos trabalhos, os autores comparam os experimentos a outras técnicas/algoritmos e não buscam estender trabalhos já existentes.

Referências

ALI, S.; IQBAL, M. Z.; ARCURI, A. “Improved Heuristics for Solving OCL Constraints

using Search Algorithms.” GECCO’14, Vancouver, CA, USA. July 12-16, 2014.

ALI, S.; IQBAL, M. Z.; ARCURI, A. “Generating Test data from OCL Constraints with Search Techniques.” IEEE Transactions on Software Engineering, vol, 39, nº 10, October, 2013.

ALI, S.; IQBAL, M. Z.; ARCURI, A.; BRIAND, L. “A Search-based OCL Constraint Solver for Model-based Test Data Generation.” IEEE Computer Society. 11th International Conference on Quality Software. pp. 41 – 50. 2011.

ALSHRAIDEH, M. A.; MAHAFZAH, B. A.; SALMAN, H. S. E.; SALAH, I. “Using Genetic Algorithm as Test Data Generator for Stored PL/SQL Program Units.” Journal of Software Engineering and Applications, pp. 65 – 73. 2013.

ALSHARAIDEH, M.; BOTTACI, L.; MAHAFZAH, B. A.; AL-SHARAEH, S. “A multiple- population genetic algorithm for branch coverage test data generation.” Software Quality Journal. Vol. 19, Issue 3, pp. 489 – 513. September, 2011.

ALSHRAIDEH, M.; BOTTACI, L.; MAHAFZAH, B. A. “Using program data-state scarcity to guide automatic test data generation.” Software Qual J (2010) 18: 109 – 144. 2010.

ANAND, S.; PASAREANU, C. S.; VISSER, W. “JPF-SE: A symbolic execution extension to java pathfinder”. In Proceedings of tools and algorithms for the construction and analysis of systems (TACAS), 2007.

ANDREA, A. “Longer is better: On the role of test sequence length in Software Testing.”, International Conference in Software testing verification and validation, 2010, pp. 469-478.

ARCURI, A.; FRASER, G. “On The Effectiveness of Whole Test Suite Generation.” Proceedings of the Sixth International Conference on Search Based Software Engineering, Berlin, Heidelberg, pp. 1-15. 2014.

ARCURI, A.; FRASER, G.; GALEOTTI, J. P. “Automated Unit Test Generation for Classes with Environment Dependencies.” ASE’14 Proceedings of the 29th ACM/IEEE international conference on Automated Software Engineering. New York, USA. pp. 79 – 90. 2014.

ARCURI, A. “A Theoretical and Empirical Analysis of the Role of Test Sequence Length in Software Testing for Structural Coverage.” IEEE Transactions on Software Engineering, vol. 38, nº 3, May/June 2012.

ARCURI, A.; FRASER, G. “On parameter tuning search based software engineering.” Third international conference on Search Based Software Engineering (SSBSE ’11), pp. 33 – 47. 2011.

ARCURI, A. “It does matter how you normalize the branch distance in search based software testing.” In ICST’10: Proceedings of the 3rd International Conference on Software Testing, Verification and Validation. IEEE Computer Society, pp. 205–214. 2010.

BAARS, A.; HARMAN, M.; HASSOUN, Y.; LAKHOTIA, K.; McMINN, P.; TONELLA, P.; VOS, T. “Symbolic Search-Based Testing.” ASE ’11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering, pp. 53 – 62. 6-10 Nov 2011.

BAUERSFELD, S.; WAPPLER, S.; WEGENER, J. “A Metaheuristic Approach to Test Sequence Generation for Applications with a GUI.” Search Based Software Engineering. Lecture Notes in Computer Science, vol. 6956, pp. 173 – 187, 2011a. BAUERSFELD, S.; WAPPLER, S.; WEGENER, J. “An Approach to Automatic Input Sequence Generation for GUI Testing using Ant Colony Optimization.” GECCO ’11: Proceedings of the 13th annual conference companion on Genetic and evolutionary computation, pp. 251 – 252.12-16 July 2011b.

BENOUHIBA, T.; ZIDOUNE, W. “Target adequacy criteria for search-based test data generation.” IEEE Computer Society. Information Technology and e-Services (ICITeS). International Conference on Sousse, pp. 1 – 6. March 24-26, 2012.

BEIZER, B.; “Software Testing Techniques”, Van Nostrand Reinhold, New York. 1990.

BOTTACI, L. “A Genetic Algorithm Fitness Function for Mutation Testing.” Proc. Int’l Workshop Software Eng. Using Metaheuristic Inovative Algorithms, a Workshop at 23rd Int’l Conf. Software Eng., pp. 3 – 7, 2001.

BOURQUE, P.; FAIRLEY, R. E. “Guide to the Software Body of Knowledge”, IEEE Computer Society, 2004.

BOZKUT, M.; HARMAN, M. “Optimised Realistic Test Input Generation Using Web Services.” 4th International Symposium, SSBSE 2012, Riva del Garda, Italy, pp. 105 – 120, 28 – 30 September, 2012.

BLANCO, R.; TUYA, J.; ADENSO-DÍAZ, B. “Automated test data Generation using a scatter search approach.” Information and Software Technology 51 (2009), 708 – 720.

BUENO, P. M. S.; JINO, M.; WONG, W. E. “Diversity oriented test data generating using metaheuristic search techniques.” Information Sciences 259, pp. 490 – 509. 2014.

CLARKE, J.; DOLADO, J. J.; HARMAN, M.; HIERONS, R.; JONES, B.; LUMKIN, M.; MANCORIDIS, S.; REES, K.; ROPER, M.; SHEPPERD, M. “Reformulating Software Engineering as a Search Problem.” Browse Journals & Magazines. IEEE proceedings Software, vol 150, pp. 161 – 175.

CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L.; STEIN, C. “Introduction to Algorithms.” second ed., The MIT Press, 2001.

DAHIYA, S. S.; CHHABRA, J. K.; KUMAR, S. “Application of Artificial Bee Colony Algorithm to Software Testing.” IEEE 21st Australian Software Engineering Conference, pp. 149 – 154. 2010.

DELAMARO, M. E.; MALDONADO J. C. “Proteum - a tool for the assessment of test adequacy for C programs”. In Conference on Performability in Computing Systems (PCS 96), pp. 79–95, July 1996.

DIJKSTRA, E.; “Notes on Structured Programming.” in Dahl O, Dijkstra E, Hoare C (Eds.) Structured Programming, (AcademicPress 1972).

DORIGO, M.; COLONI, A.; MANIEZZO, V. “Distributed optimization by ant colonies.” Proceedings of the First European Conference on Artificial Life, pp. 134—142. 1992. DORIGO, M.; STUTZLE, T. “Ant Colony Optimization.” The MIT Press, Cambridge, 2004.

FERRER, J.; CHICANO, F.; ALBA, E. “Evolutionary Algorithms for the Multi-Objective Test Data Generation Problem.” Publicado online em: Wiley InterScience (www.interscience.wiley.com) DOI: 10.1002/spe

FRASER, G.; ARCURI, A. “Automated test Generation for Java Generic.” Software Quality. Model-Based Approaches for Advanced Software and Systems Engineering. Vol. 166 of the series Lecture Notes in Business Information Processing. pp. 185 – 198. 2014.

FRASER, G.; ARCURI, A. “Whole Test Suite Generation.” IEEE Transactions on Software Engineering, vol. 39, nº 2, pp. 276 – 291. February 2013.

FRASER, G.; STAATS, M.; McMINN, P.; ARCURI, A.; PADBERG, F. “Does Automated White-Box Test Generation Really Help Software Testers?” International Symposium on Software Testing and Analysis (ISSTA), pp. 291 – 301. 2013a.

FRASER, G.; ARCURI, A.; McMINN, P. “Test Suite Generation with Memetic Algorithms.” GECCO ’13, July 6-10 2013b.

FRASER, G.; ZELLER, A. “Mutation-Driven Generation of Unit Tests and Oracles.” IEEE Transactions on Software Engineering, vol. 38, nº 2, March/April 2012.

FRASER, G.; ARCURI, A. “Sound Empirical Evidence in Software Testing.” International Conference on Software Engineering (ICSE), pp. 178 – 188, Zurich, Switzerland. 2012a.

FRASER, G.; ARCURI, A. “The Seed is Strong: Seeding Strategies in Search-Based Software Testing.” IEEE Fifth International Conference on Software Testing, Verification and Validation, pp. 121 – 130. 2012b.

FRASER, G.; ARCURI, A. “Evolutionary Generation of Whole Test Suites.” 11th International Conference on Quality Software, pp. 31 – 40. 2011a.

FRASER, G.; ARCURI, A. “It is not the length matters, It is how you control it.” Fourth IEEE International Conference on Software Testing, Verification and Validation, pp. 150 – 159. 2011b.

GALEOTTI, J. P.; FRASER, G.; ARCURI, A. “Extending a Search-Based Test Generator with Adaptive Dynamic Symbolic Execution.” ISSTA’14, San Jose, CA, USA. July 21-25, 2014.

GAREY, M. R.; JOHNSON, D. S. “Computers and Intractability: A Guide to the Theory of NP-Completeness”. W.H. Freeman and Company. 1979.

GERONIMO, L. Di; FERRUCI, F.; MUROLO, A.; SARRO, F. “A Parallel Genetic Algorithm Based on Hadoop MapReduce for the Automatic Generation of Unit Test Suites.” IEEE Fifth International Conference on Software Testing, Verification and Validation, pp. 785 – 793. 2012.

GHIDUK, A. S. “A new Software Data-Flow Testing Approach via Ant Colony Algorithms.” Universal Journal of Computer Science and Engineering Technology, 1 (1), pp. 64 – 72, Oct. 2010.

GHIDUK, A. S.; GIRGIS, M. R. “Using Genetic Algorithm and Dominance Concepts for Generating Reduced Test data.” An International Journal of Computing and Informatics, vol. 34, nº 3, pp. 377 – 386. 2010.

GOLDBARG, M. C.; LUNA, H. P. “Otimização Combinatória e Programação Linear: modelos e algoritmos.” Segunda edição. Revisada e atualizada. Editora Campus, 2005.

GONG, D.; ZHANG, Y. “Generating test data for both path coverage and fault detection using genetic algorithms.” Journal Frontiers of Computer Science. Vol 7, Issue 6, pp. 822 – 837. 2013

GLOVER, F. “Future paths for integer programming and links to artificial intelligence.” Comput & Ops. Res., vol. 13, nº 5, pp. 533 – 549. 1986.

GROSS, F.; FRASER, G.; ZELLER, A. “Search-Based System Testing: High Coverage, No False Alarms.” International Symposium on Software Testing and Analysis (ISSTA), pp. 67 – 77. 2012.

HARMAN, M.; MCMINN, P.; SOUZA, J. T.; YOO, S. “Search based software engineering: techniques, taxonomy, tutorial.” Book Empirical Software Engineering and Verification, pp. 1 – 59. 2012.

HARMAN, M.; McMINN, O. “A Theoretical and Empirical Study of Search-Based Testing: Local, Global, and Hybrid Search.” IEEE Transactions on Software Engineering, vol. 36, nº 2, March/April 2010.

HARMAN, M.; MANSOURI, A. S.; e ZHANG, Y.; “Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications”, Department of Computer Science, King's College London, Technical Report TR-09-03, Abril 2009.

HARMAN, M.; MCMINN, P. “A theoretical & empirical analysis of evolutionary testing and Hill Climbing for structural test data generation”. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA 2007), pp. 73-83, London, UK, 2007, ACM Prees.

HARMAN, M. “The Current State and Future of Search Based Software Engineering.” Proceeding FOSE ’07 2007 Future of Software Engineering. IEEE Computer Society, Washington, DC, USA. Pages 342 – 357. 2007.

HARMAN, M.; e JONES, B. F.; “Search-based software engineering”, Information & Software Technology, Vol. 43, pp. 833 – 839. 2001.

HERMADI, I.; LOKAN, C.; SARKER, R. “Dynamic stopping criteria for search-based test data generation for path testing.” Information and Software Technology, 56, pp. 395 – 407. 2014.

HETZEL, B.; “The Complete Guide to Software Testing (2nd Ed.)”, QED Information Sciences, Inc. 1988.

HOLAND, J. H. “Adaptation in Natural and Artificial Systems.” University of Michigan Press, Ann Arbor. 1975.

HUANG, S.; COHEN, M. B.; MEMON, A. M. “Repairing GUI Test Suites Using a Genetic Algorithm.” ICST ’10 Proceedings of the 2010 Third International Conference on Software Testing, Verification and Validation, pp. 245 – 254. 2010.

IQBAL, M. Z.; ARCURI, A.; BRIAND, L. “Empirical Investigation of Search Algorithms for Environment Model-Based Testing of Real-Time Embedded Software.” International Symposium on Software Testing and Analysis (ISSTA), pp. 199 – 209. 2012.

ISLAM, M.; CSALLNER, C. “Dsc+mock: A test case + mock class generator in support of coding against interfaces. In International Workshop on Dynamic Analysis (WODA), pp 26–31, 2010.

JASPER, R.; BRENNAN, M.; WILLIAMSON, K.; CURRIER, B. “Test Data Generation and Feasible Path Analysis”, 1994.

JIA, Y.; HARMAN, M. “Higher Order Mutation Testing.” Information and Software Technology, vol 51, pp. 1379 – 1393. 2009.

JIN, R.; JIANG, S.; ZHANG, H. “Generation of Test Data Based on Genetic Algorithm and Program Dependence Analysis.” Proceedings of the 2011 IEEE International Conference on Cyber Technology in Automation, Control, and Intelligent Systems. Mach 20-23, 2011, Kunming, China.

JONES, B. F.; STHAMR, H-H.; YANG, X.; EYRES, D. E., “The Automatic Generation of Software Test Data Sets using Adaptive Search Techniques”, Transactions on Information and Communications Technologies: Software Quality Management, vol. 11, pp. 435-444. 1995.

KARABOGA, D. “An Idea Based on Honey Bee Swarm for Numerical Optimization.” Technical Report-TR 06, Recites University, Engineering Faculty, Computer Engineering Department, 2005.

KARABOGA, D.; BASTURK, B. “Artificial Bee Colony (ABC) Optimization Algorithm for Solving Constrained Optimization Problems.” Lecture Notes in Computes Science, vol 4529, pp. 789 – 798, 2007.

KEMPKA, J.; McMINN, P.; SUDHOLT, D. “A Theoretical Runtime and Empirical Analysis of Different Alternating Variable Searches for Search-Based Testing.” GECCO ’13, July 6-10, 2013, Amsterdam, The Netherlands.

KENNEDY, J.; EBERHART, R. "Particle swarm optimization." Proceedings of IEEE International Conference on Neutral Networks, pp. 1942-948, 1995.

KOTELYANSKII, A.; KAPFHAMMER, G. M. “Parameter Tuning for Search-Based Test-Data Generation Revisited: Support for Previous Results.” IEEE Computer Society. 14th International Conference on Quality Software. pp. 79 – 84. 2014.

KIRKPATRICK, S.; GELLAT, C. D.; BECCHI, M. P. “Optimization by simulated annealing.” Science, 220 (4598): 671 – 680, 1983.

KOREL, B. “Automated Software Test Data Generation.” IEEE Trans. Software Eng., vol 16, nº 8, pp. 870 – 879, Aug. 1990.

LAKHOTIA, K.; HARMAN, M.; GROSS, H. “AUSTIN: An open source tool for search based software testing of C programs.” Information and Software Technology 55, pp. 112 – 125. 2013.

LAKHOTIA, K.; McMINN, P.; HARMAN, M. “An empirical investigation into branch coverage for C programs using CUTE and AUSTIN.” The Journal of Systems and Software 83, pp. 2379 – 2391. 2010a.

LAKHOTIA, K.; HARMAN, M.; GROSS, H. “AUSTIN: A tool for Search Based Software Testing for the C Language and its Evaluation on Deployed Automotive Systems.” 2nd International Symposium on Search Based Software Engineering, pp. 101 – 110. 2010b.

LAKHOTIA, K.; MCMINN, P.; HARMAN, M. “Automated Test Data Generation for Coverage: Haven’t We Solved This Problem Yet?” IEEE Computer Society. Testing: Academic and Industrial Conference – Practice and Research Techniques. pp. 95 – 104. 2009.

LATIU, G. I.; CRET, O. A.; VACARIU, L. “Automatic Test Data Generation for Software Path Testing using Evolutionary Algorithms.” IEEE Computer Society. 2012 Third International Conference on Emerging Intelligent Data and Web Technologies, pp. 1 – 8. 2012.

LEE, S. Y.; CHOI, H. J.; JEONG, Y. J.; KIM, T. H.; CHAE, H. S.; CHANG, C. K. “An Improved Technique of Fitness Evaluation for Evolutionary Testing.” 35th IEEE Annual Computer Software and Applications Conference Workshops, pp.190 – 193. 2011.

LEFTICARU, R.; IPATE, F. “An Improved Test Generation Approach from Extended Finite State Machines Using Genetic Algorithms.” Software Engineering and Formal Methods. Lecture Notes in Computer Science Volume 7504, pp. 293 – 307. 2012. LEWIS, W. E.; VEERAPILLAI, G.; “Software Testing and Continuous Quality Improvement”. 2. ed, Florida: Auerbach, 2005, 534p.

MALBURG, J.; FRASER, G. “Combining Search-based and Constraint-based Testing.” ASE ’11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering, pp. 436 – 439. 2011.

MALDONADO, J. C.; CHAIM, M. L.; JINO, M. “Briding the gap in the presence of infeasible paths: Potential uses testing criteria”. In XII International Conference of the Chilean Science Computer Society, pp. 323–340, October 1992.

MALHOTRA, R.; GARG, M. “Na Adequacy Based Test data Generation Techniques Using Genetic Algorithms.” Journal of Information Processing Systems, vol 17, nº 2, June 2011.

MAO, C. “Generating Test Data for Software Structural Testing Based on Particle Swarm Optimization.” Research Article – Computer Engineering and Computer Science. Arab J Sci Eng (2014) 39: 4593-4607.

MARAGATHAVALLI, P. “Search-based software test data generation using evolutionary computation.” International Journal of Computer Science & Information Technology (IJCSIT), vol. 3, nº 1, pp. 213 – 223. 2011.

MARAGATHAVALLI, P.; ANUSHA, M.; GEETHAMALINI, P.; PRIYADHARSINI, S. “Automatic test-data Generation for modified condition/decision coverage using genetic algorithm.” International Journal of Engineering Science and Technology (IJEST), vol. 3, nº 2. Feb 2011.

MCMASTER, S.; MEMON, A. “Call-stack coverage for GUI test suite reduction”. IEEE Transactions on Software Engineering, pp. 99 – 115, 2008.

MCMINN, P. “Search-Based Software Testing: Past, Present and Future.” Fourth International Conference on Software Testing, Verification and Validation Workshops. pp. 153 – 163. 2011.

MCMINN, P.; “Search-based software test data generation: a survey”. Software Testing, Verification and Reliability, 14(2) pp. 105-156. 2004.

MEHBOOB, F.; JILANI, A. A. A.; ABBASS, M. “State Based Testing Using Swarm Intelligence.” Science and Information Conference 2013, October 7-9, 2013, London, UK.

MEHRMAND, A.; FELDT, R. “A Factorial Experiment on Scalability of Search Based Software Testing.” 3d Artificial Intelligence Techniques in Software Engineering Workshop, 7 October, 2010, Larnaca, Cyprus.

MYERS G. J.; “The art of Software Testing” – 2nd ed. New Jersey, USA: John Wiley & Sons, 2004.

OFFUT, A. J.; LEE, A.; ROTHERMEL, G.; UNTCH, R.H.; ZAPF, C. “An experimental determination of sufficient mutant operators”. ACM Transactions on Software Engineering and Methodology 5 (2) (1996) 99–118.

OMAR, E.; GHSH, S.; WHITLEY, D. “Comparing Search Techniques for Finding Subtle Higher Order Mutantes.” GECCO’14, Vancouver, BC, Canada. July 12-16, 2014.

OMAR, E.; GHOSH, S.; WHITLEY, D. “Constructing Subtle Higher Order Mutants for Java and AspectJ Programs.” IEEE 24th International Symposium on Software Reliability Engineering (ISSRE), pp. 340 – 349. 4-7 Nov 2013.

PACHAURI, A.; GURSARAN. “Software Test Data Generation using Path Prefix Strategy and Genetic Algorithm.” Proc. Of International Conference on Science and Engineering (ICSE 2011), pp. 131 – 140. 2011.

PACHAURI, A.; SRIVASTAVA, G. “Automated test data generation for branch testing using genetic algorithm: An improved approach using branch ordering, memory and elitism.” The Journal of Systems and Software 86, pp. 1191 – 1208. 2013.

PACHECO, C.; LAHIRI, S. K.; ERNST, D.; BALL, T. “Feedback directed random test generation. In ACM/IEEE Conference on Software Engineering (ICSE), pp. 75 – 84, 2007.

PAVLOV, Y.; FRASER, G. “Semi-Automatic Search-based Test Generation.” IEEE Fifth International Conference on Software Testing, Verification and Validation, pp. 777 – 784. 2012

PRATHER, R. E.; MYERS, J. P. “The Path Prefix Software Testing Strategy” IEEE Trans. Software Engineering. 13, 7 (Jul. 1987), pp. 761-766.

PRESSMAN, R. S., “Software Engineering: A Practitioner’s Approach”, McGraw-Hill, 6th ed, Nova York, NY, 2005.

PINTO, G. H. L.; VERGILIO, R. V. “A Multi-Objective Genetic Algorithm to Test Data Generation.” IEEE Computer Society. 22nd International Conference on Tool with Artificial Intelligence. pp. 129 – 134. 2010

ROMANO, D.; PENTA, M. D.; ANTONIOL, G. “An Approach for Search Based Testing of Null Pointer Exceptions.” IEEE Fourth International Conference on Software Testing, Verification and Validation, pp. 160 – 169. 2011.

SCHOENAUER, M.; XANTHAKIS, S.; “Constrained GA Optimization”, Proceedings of the 5th International Conference on Genetic Algorithms (ICGA '93), pp. 573-580, San Mateo CA USA, 17-22 July 1993.

SCHULTZ, A. C.; GREFENSTETTE, J. J.; DeJONG, K. A. “Adaptive testing of controllers for autonomous vehicles”, Proceedings of the 1992 Sympo. on Auto. underwater vet. Technique, pp. 158-64, 1992.

SEN, K.; MARINOV, D.; AGHA, G. “CUTE: a Concolic unit testing engine for C.” In: ESEC/SIGSOFT FSE. ACM, pp. 263 – 272. 2005.

SOFOKLEOUS, A. A.; ANDREOU, A. S.; KOURRAS, A. “Symbolic Execution for Dynamic, Evolutionary Test Data Generation.” Conference: ICEIS 2009 – Proceedings of the 11th International Conference on Enterprise Information Systems, vol. DISI, Milan, Italia. May 6-10, 2009.

SOFOKLEOUS, A. A.; ANDREOU, A. S. “Automatic, evolutionary test data generation for dynamic software testing”. The Journal of Systems & Software, 81(11), pp. 1883-1898, 2008.

SRIVASTAVA, P. R.; GUPTA, P.; ARRAWATIA, Y.; YADAV, S. “Use of Genetic Algorithm in Generation of Feasible Test Data.” SIGSOFT Software Engineering Notes, vol. 34, nº 2, pp. 1 – 4, March 2009.

TILMANN, N.; HALLEUS, N. J. “Pex — white box test generation for .NET.” In International Conference on Tests And Proofs (TAP), pp. 134–253, 2008.

TONELLA, P. “Evolutionary testing of classes”. In ACM SIGSOFT International Symposium on Software Testing and Analysis, pp. 119–128, 2004.

TRACEY, N; CLARK, J.; MANDER, K.; MCDERMID, J. “Automated test-data generation for exception conditions.” Journal Software – Practice Experience. Vol. 30, issue 1, pp. 61 – 79. January 2000.

VINCENZI, A. M. R.; DELAMARO, M. E.; MALDONADO, J. C.; WONG, W. E. “Establishing structural testing criteria for Java bytecode. Software: Practice and Experience”, 36(14):1513–1541, 2006.

VIVANTI, M.; MIS, A.; GORLA, A.; FRASER, G. “Search-based Data-flow Test Generation.” IEEE 24th International Symposium on Software Reliability Engineering (ISSRE). pp. 370 – 379. 4-7 Nov 2013.

WEGENER, J.; BARESEL, A.; STHAMER, H. “Evolutionary test environment for automatic structural testing.” International and Software Technology 43, pp. 841 – 854. 2001.

WHITLEY, D. “A Genetic Algorithm Tutorial.” Computer Science Department, Colorado State University, 1994.

XANTHAKIS, S.; ELLIS, C.; SKOURLAS, C.; GALL, A. Le; KATSIKAS, S.; KARAPOULIOS, K.; “Application of Genetic Algorithms to Software Testing”, Proceedings of the 5th International Conference on Software Engineering and Applications, pp. 625-636, Toulouse France, 7-11 December 1992.

YOO, S.; HARMAN, M. “Using hybrid algorithm for Pareto efficient multi-objective test suite minimization.” The Journal of Systems and Software 83, pp. 689 – 701, 2010. ZHAO, R.; HARMAN, M.; LI, Z. “Empirical study on the efficiency of search based test generating for EFSM models.” IEEE Computer Society. Third International Conference on Software Testing, Verification, and Validation Workshops. pp. 222 – 231. 2010.

Anexo A: Algoritmos de Otimização

Neste apêndice, serão descritos os algoritmos de otimização utilizados por diversos pesquisadores na área de Teste de Software para o problema de geração de dados de teste.

A.1. Algoritmo Genético

O Algoritmo Genético (AG) é um exemplo de Algoritmo Evolutivo que trata de uma técnica de busca heurística (MARAGATHAVALLI, 2011). São conhecidos como algoritmo de busca global, uma vez que a amostragem de muitos pontos no espaço de busca de uma só vez oferece maior resistência aos mínimos locais. Normalmente, um AG utiliza uma representação binária, ou seja, as soluções candidatas são codificadas como sequências de 1s e 0s; contudo, também pode ser utilizada representação mais natural para o problema, como, por exemplo, uma lista de valores de ponto flutuante (HARMAN et al., 2012).

Proposto por John Holland em 1975, o AG é inspirado na evolução Darwiniana e no conceito de sobrevivência do “mais apto”. Cada ponto no espaço de busca atual sob consideração é referido como um “indivíduo” ou um “cromossomo”. O atual conjunto de indivíduos atualmente sob consideração é coletivamente referido como “população” atual, e cada sucessiva população é chamada de geração. O loop principal do AG pode ser visto na Figura 8.

Figura 8: Visão geral das principais etapas do AG

A.2. Algoritmo Memético

O Algoritmo Memético é uma forma híbrida do Algoritmo Genético que utiliza algum método de Busca Local (descrito na seção 4.2). A maneira mais comum de implementar esse algoritmo é a utilização de um algoritmo de busca local simples que melhore a aptidão da população inicial e dos indivíduos resultantes da operação de recombinação. De forma geral, o Algoritmo Memético tem uma melhor performance do que os Algoritmo Genético (WHITLEY, 1994).

A.3. Estratégia Evolutiva

O algoritmo de Estratégia Evolutiva é mais simples do que o Algoritmo Genético. Este algoritmo se caracteriza pelo tamanho da população, que é igual a um, ou seja, existe apenas um indivíduo na população e ele é representado por uma sequência de bits. A exploração do espaço de busca é feita pelo operador de mutação bit a bit. Para produzir uma prole, este operador gera cada bit, independentemente, na cadeia de bits, com uma probabilidade (p) com base no comprimento da string. Caso a aptidão do filho seja melhor do que a do pai, o filho é mantido para a próxima geração (ARCURI, 2012).

A.4. Busca Aleatória

Busca Aleatória é o algoritmo de busca mais simples. Soluções aleatórias são verificadas até que um ótimo global seja encontrado ou um critério de parada seja atendido (tempo máximo, número máximo de tentativas etc.). A função de aptidão é responsável por informar se um ótimo global foi localizado. Busca Aleatória é geralmente utilizado na literatura como uma linha de base para comparação com outros algoritmos de busca. Uma característica importante deste algoritmo é a

distribuição de probabilidades utilizadas para verificação das novas soluções