Teste de mutação nos paradigmas procedimental e oo: uma avaliação no contexto de estrutura de dados

Com o objetivo de auxiliar a definição e evolução de estratégias de testes, estudos experimentais vêm sendo realizados comparando diferentes técnicas e critérios de teste em relação ao custo, eficácia e dificuldade de satisfação (strength). Entretanto poucos estudos buscam avaliar os critérios e...

Full description

Bibliographic Details
Main Author: Diogo Nascimento Campanha
Other Authors: José Carlos Maldonado
Language:Portuguese
Published: Universidade de São Paulo 2010
Subjects:
Online Access:http://www.teses.usp.br/teses/disponiveis/55/55134/tde-14022011-151308/
Description
Summary:Com o objetivo de auxiliar a definição e evolução de estratégias de testes, estudos experimentais vêm sendo realizados comparando diferentes técnicas e critérios de teste em relação ao custo, eficácia e dificuldade de satisfação (strength). Entretanto poucos estudos buscam avaliar os critérios em diferentes paradigmas. Esta avaliação é importante pois o paradigma de implementação influência significativamente no programa gerado e as características entre programas implementados em diferentes paradigmas pode influenciar em diversos aspectos da atividade de teste. Este estudo é complementar a um outro trabalho do grupo do laboratório de engenharia de software do ICMC em que foram comparados o custo da aplicação dos critérios da técnica Estrutural em relação aos paradigmas Procedimental e Orientado a Objetos. Este trabalho apresenta um estudo experimental comparando o custo e o strength do critério Análise de Mutantes nos dois paradigmas. Além da avaliação do critério Análise de Mutantes, o material gerado para este estudo será construído de forma que possa ser utilizado para o ensino e treinamento das principais técnicas e critérios de teste e espera-se que este possa contribuir de alguma forma para que o ensino de teste de software possa ser aplicado em paralelo com o ensino de algoritmos e estrutura de dados. Para a condução deste estudo, foi utilizado um conjunto de 32 programas do domínio de estrutura de dados com versões implementadas em C e em Java. O critério Análise de Mutantes foi aplicado com auxílio das ferramentas Proteum e MuClipse. Para a avaliação do strength, o conjunto de casos de teste adequado a um programa foi executado contra os mutantes gerados na mesma versão do programa implementado no outro paradigma de interesse e o escore de mutação avaliado (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. Resultados estes certamente influenciados pelo conjunto de operadores implementado nas duas ferramentas. No paradigma procedimental, também foi avaliado o escore de mutação obtido por um subconjunto dos operadores da Proteum, construído com o objetivo de reduzir o custo da aplicação do critério. O escore obtido foi satisfatório e as reduções no custo significativas. Também foi avaliado strength das técnicas Funcional e Estrutural em relação ao critério AM nos dois paradigmas. Os resultados mostram que os conjuntos de casos de teste adequados aos critérios das técnicas Funcional e Estrutural no paradigma OO obtiveram, em geral, um escore de mutação maior do que no paradigma Procedimental === AIming at to assist the definition and evolution of testing strategies, empirical studies have been conducted comparing the test criteria in terms of cost effectiveness and strength. However few studies were conducted comparing the criteria in different paradigms. This assessment is important because program paradigm can cause a big influence in the result program and the characteristics of this programs can cause influences in testing activities. This study complements another work in this group that compared the cost of Structural test technique considering the Procedural and Object Oriented paradigms. This paper presents an experimental study comparing the cost and strength of Mutation Test in Procedural and OO paradigms. Besides the evaluation of mutation test, the results of this study can be used to help teaching and training many test criteria and it may somehow contribute to teach software testing n parallel with algorithms and data structures programs. It was used a set of 32 programs of data structure programs with versions in C and Java. For this study it were used Proteum and MuClipse to execute the mutation tests. It was also evaluated the strength of a set of test cases (TC) appropriate to a program in a paradigm in the same version of the program implemented in the other paradigm of interest (cross scoring). Results indicate that both cost and strength is higher in Procedural programs than in OO. This results are certainly influenced by the set of operators built in each tool studied. It was also measured the mutation score of a subset of Proteums operators built to reduce the cost of Mutation Testing in Procedural programs. The mutation score obtained was satisfactory and there was a significant reduction in cost. It was also evaluated the strength of Functional and Structural techniques in Mutation Test for both paradigms. The results show that the mutation score of the set of test cases adequate to Functional and Structural techniques were in general, higher in OO paradigm than in Procedural paradigm