Mutation Testing in Procedural and Object-Oriented Paradigms: An Evaluation of Data Structure Programs

Para auxiliar a definição e evolução de estratégias de testes estudos experimentais vêm sendo realizados comparando os critérios de teste em relação ao custo, eficácia e dificuldade de satisfação. Entretanto poucos estudos foram realizados com o objetivo de comparar critérios em diferentes paradigmas. Este trabalho apresenta um estudo experimental comparando o custo do critério Análise de Mutantes nos paradigmas Procedimental e Orientado a Objetos. Foi utilizado um conjunto de 32 programas do domínio de estrutura de dados com versões implementadas em C e em Java. Para tal estudo utilizaram-se as ferramentas Proteum e MuClipse. Foi avaliado também o strength do conjunto de casos de testes adequado a um programa em um paradigma na mesma versão do programa implementado no outro paradigma de interesse (cross scoring). Resultados indicam que tanto o custo quanto o strength do teste de mutação é maior em programas implementados no paradigma Procedimental do que no paradigma OO. Resultado este certamente influenciado pelo conjunto de operadores implementado nas duas ferramentas.

[1]  Ivan Moore Jester - a JUnit test tester , 2001 .

[2]  Gregg Rothermel,et al.  An experimental evaluation of selective mutation , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[3]  R. Lipton,et al.  Mutation analysis , 1998 .

[4]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[5]  A. Jefferson Offutt,et al.  An Experimental Comparison of Four Unit Test Criteria: Mutation, Edge-Pair, All-Uses and Prime Path Coverage , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.

[6]  Phyllis G. Frankl,et al.  All-uses vs mutation testing: An experimental comparison of effectiveness , 1997, J. Syst. Softw..

[7]  José Carlos Maldonado,et al.  Criterios potenciais usos : uma contribuição ao teste estrutural de Software , 1991 .

[8]  W. Eric Wong,et al.  Mutation Versus All-uses: An Empirical Evaluation of Cost, Strength and Effectiveness , 1994, Software Quality and Productivity.

[9]  Elaine J. Weyuker,et al.  The Cost of Data Flow Testing: An Empirical Study , 1990, IEEE Trans. Software Eng..

[10]  Adenilso Simao PROTEUM-RS/PN: uma ferramenta para a validação de redes de Petri baseada na análise de mutantes. , 2000 .

[11]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[12]  S. Shapiro,et al.  An Analysis of Variance Test for Normality (Complete Samples) , 1965 .

[13]  Yu-Seung Ma Description of Method-level Mutation Operators for Java , 2011 .

[14]  A. Jefferson Offutt,et al.  The class-level mutants of MuJava , 2006, AST '06.

[15]  Márcio Eduardo Delamaro PROTEUM - UM AMBIENTE DE TESTE BASEADO NA ANÁLISE DE MUTANTES , 1993 .

[16]  Stephen Ashcroft,et al.  The Wilcoxon Signed-Rank test , 2003 .

[17]  W. Eric Wong,et al.  A theoretical comparison between mutation and data flow based test adequacy criteria , 1994, International Conference on Scientific Computing.

[18]  A. Jefferson Offutt,et al.  An Experimental Evaluation of Data Flow and Mutation Testing , 1996 .

[19]  Auri Marcelo Rizzo Vincenzi,et al.  Toward the determination of sufficient mutant operators for C † , 2001, Softw. Test. Verification Reliab..

[20]  José Carlos Maldonado,et al.  Proteum/IM 2.0: An Integrated Mutation Testing Environment , 2001 .

[21]  Denis Larocque,et al.  The Wilcoxon Signed-Rank Test for Cluster Correlated Data , 2005 .

[22]  Auri Marcelo Rizzo Vincenzi,et al.  Control and data flow structural testing criteria for aspect-oriented programs , 2007, J. Syst. Softw..

[23]  Auri Marcelo Rizzo Vincenzi,et al.  Evaluating N -selective mutation for C programs: unit and integration testing , 2001 .

[24]  Dolores R. Wallace,et al.  Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric , 1996 .

[25]  S. Inglis,et al.  Jumble Java Byte Code to Measure the Effectiveness of Unit Tests , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[26]  E. Barbosa Uma contribuição para determinação de um conjunto essencial de operadores de mutação no teste de programas C , 1998 .