Artigo Engenharia de Software 8 - Testes de Mutação com o plug-in MuClipse

Artigo da Revista Engenharia de Software edição 08.

Esse artigo faz parte da revista Engenharia de Software 8 edição especial. Clique aqui para ler todos os artigos desta edição

 

Validação, Verificação e Testes

Testes de Mutação com o plug-in MuClipse

 

De que se trata o artigo:

Apresentação dos principais conceitos sobre testes de mutação e demonstração do funcionamento da técnica utilizando um plug-in para Eclipse chamado MuClipse.

 

Para que serve:

Além de testar o software, também pode ser considerada uma técnica para auxiliar no processo de melhoria dos casos de testes para torná-los mais eficientes.

 

Em que situação o tema é útil:

Testes de mutação podem ser utilizados como técnica para melhorar ou afirmar a qualidade dos casos de testes.

 

Testes de Mutação com o Plug-in MuClipse – Resumo DevMan:

A técnica de teste de mutação é divida em quatro etapas. Primeiro, operadores de mutação são utilizados sobre o programa original realizando pequenas alterações sobre esse programa e gerando variações, ou seja, mutantes. Depois disto, o programa original é testado e deve ser aprovado pelos casos de testes. Após a execução do programa original, os mutantes são executados com o caso de teste e, se forem reprovados pelo caso de teste são considerados mortos. Caso algum mutante não seja reprovado, esse mutante é considerado vivo e precisa ser analisado. Para os mutantes vivos pode-se considerar que este mutante é equivalente ao programa original ou que os casos de testes não são bons o suficiente para testar o programa. Neste último caso, os casos de testes devem ser alterados e, com isso, se tornam cada vez mais eficientes.

 

Introdução

O desenvolvimento de sistemas não é uma tarefa simples e, por este motivo, precisa que artifícios sejam utilizados para diminuir os defeitos que podem ser introduzidos nesse processo.

Teste de software contribui para a produção de um produto final de maior qualidade e é um processo bastante aceito e difundido atualmente. Porém, uma das questões mais complexas que norteia os testes de software é como garantir que os casos de testes gerados são eficientes, ou seja, garantir que os casos de testes encontrem a maior quantidade de defeitos possíveis.

Dentre outras técnicas que podem ser utilizadas para se testar o software, ou melhorar os casos de testes, pode-se destacar o Teste de Mutação.

Este artigo tem como finalidade principal demonstrar a utilização de um plug-in desenvolvido para se aplicar testes de mutação chamado MuClipse, além de explicar os principais conceitos relacionados a este tipo de  teste.

Testes de Mutação

Por mais simples que um software possa ser, os caminhos de execução possíveis na sua utilização podem ser muito grandes, com isto é praticamente impossível testar um sistema por completo e afirmar que o sistema não contém defeitos.

Por outro lado, os tipos de problemas que podem ser encontrados em um software podem ser finitos. É nesta premissa que os testes de mutação se embasam.

Basicamente, testes de mutação propõem a criação de variações de um programa anteriormente desenvolvido, ou seja, mutantes, posteriormente à construção de casos de testes com a finalidade de provar que as variações do programa original não estão corretas. Assim, por eliminação, pode-se constatar que o programa original está correto.

O primeiro passo para a execução dos testes de mutação é a criação dos mutantes que são criados executando uma série de operadores chamados operadores de mutação. Esses operadores alteram partes do programa original, como, por exemplo, trocar um sinal de “>” por “<”, e assim formar os mutantes.

O segundo passo que deve ser feito é a execução dos casos de testes sobre o programa original. Os casos de testes devem aprovar o programa original concluindo-se assim que ele está correto com base nos casos de testes executados.

No próximo passo, os mutantes gerados devem ser executados com os mesmos casos de testes que o programa original foi executado. Caso algum caso de teste falhe significa que são abrangentes o suficiente para demonstrarem a diferença entre o mutante e o programa original. Neste caso, o mutante que fez com que o caso de teste falhasse está morto e, por conseqüência, é descartado." [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados