A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teste e Qualidade de Software, 2006/07, Mário Correia 1 Testes de Mutação baseado no artigo de Mário Correia, Testes de Mutação, 2006, acessível emhttp://deec.fe.up.pt/~ei02070/tqs/http://deec.fe.up.pt/~ei02070/tqs/

Apresentações semelhantes


Apresentação em tema: "Teste e Qualidade de Software, 2006/07, Mário Correia 1 Testes de Mutação baseado no artigo de Mário Correia, Testes de Mutação, 2006, acessível emhttp://deec.fe.up.pt/~ei02070/tqs/http://deec.fe.up.pt/~ei02070/tqs/"— Transcrição da apresentação:

1 Teste e Qualidade de Software, 2006/07, Mário Correia 1 Testes de Mutação baseado no artigo de Mário Correia, Testes de Mutação, 2006, acessível emhttp://deec.fe.up.pt/~ei02070/tqs/http://deec.fe.up.pt/~ei02070/tqs/ 7 Dezembro 2006

2 2Teste e Qualidade de Software, 2006/07, Mário Correia Índice Introdução Processo de teste com mutação Jester Problemas com a técnica Comparação com testes de cobertura Notas finais

3 3Teste e Qualidade de Software, 2006/07, Mário Correia Introdução Objectivo dos Testes de Mutação: Verificar a qualidade dos testes. Designações alternativas para Testes de Mutação: Test tester [Jester, 2005]; Testing the testing [Himsworth, 2003]; Automated error seeding [Jester, 2005].

4 4Teste e Qualidade de Software, 2006/07, Mário Correia Introdução Ideias chave: Injecção de falhas no código original originam mutantes; A cada mutante é aplicado os testes originais: Se os testes passam -> testes devem ser melhorados; Se os testes falham -> o mutante diz-se neutralizado; Se os testes detectam as falhas artificiais podemos assumir que detectará falhas reais; Falhas injectadas pela aplicação de operadores de mutação.

5 5Teste e Qualidade de Software, 2006/07, Mário Correia Processo de teste com mutação Strong mutation testing: Mutantes executados até terminarem; Permite a recuperação de falhas; Resultados muito precisos; Gasta muito tempo. Weak mutation testing: Mutantes terminam após detecção de falha; Não permite a recuperação de falhas; Resultados pouco precisos; Gasta pouco tempo.

6 6Teste e Qualidade de Software, 2006/07, Mário Correia Processo de teste com mutação Firm mutation testing: Compromisso entre Strong e Weak mutation testing; Mutantes terminam execução algures entre o código do mutante e o fim do programa; Deve ser o mais cedo possível para poupar tempo; Mas suficientemente tarde para permitir recuperar de falhas.

7 7Teste e Qualidade de Software, 2006/07, Mário Correia Jester The Junit test tester: Testes de Mutação em Java (com portings para Python e C#). Operadores de mutação: Modificação de números literais: ex.: 0 para 1 ; Alteração de true por false e vice-versa; Alteração de if( para if(true || ; Alteração de if( para if(false &&.

8 8Teste e Qualidade de Software, 2006/07, Mário Correia Jester: tutorial O código exemplo para demonstrar o funcionamento do Jester será o problema dos Extensos dado nas aulas de TQS. Criar projecto e copiar ficheiros do Jester: jester.cfg : configuração do Jester; ignorelist.cfg : construções da linguagem a ignorar; mutations.cfg : mutações a aplicar; jester.jar : jar do Jester; lib/junit.jar : jar do Junit.

9 9Teste e Qualidade de Software, 2006/07, Mário Correia Jester: tutorial Lançar Jester em consola: java -classpath.:lib/jester.jar:lib/junit.jar:src/ jester.TestTester extensos.test.TestExtensos src/ > resultados.txt

10 10Teste e Qualidade de Software, 2006/07, Mário Correia Jester: tutorial Após o Jester terminar, analisa-se os resultados:

11 11Teste e Qualidade de Software, 2006/07, Mário Correia Jester: tutorial

12 12Teste e Qualidade de Software, 2006/07, Mário Correia Jester: tutorial

13 13Teste e Qualidade de Software, 2006/07, Mário Correia Jester: notas O Jester apenas executa se os testes passarem no código original; O Jester realiza as mutações directamente no código original -> manter cópia do projecto ou ter o projecto sob controlo de versões; O código deve ser compilado para a mesma pasta onde reside o código fonte (não pode ser para a pasta bin/ habitual no Eclipse).

14 14Teste e Qualidade de Software, 2006/07, Mário Correia Jester: avaliação da ferramenta Jester its really a jest of mutation, [Offutt, 2005] Operadores muito simples; Trocar 0 por 1 é praticamente inútil pois os testes irão detectá-lo de certeza -> Operadores instáveis; Jester resume-se a testar condições. Ferramenta muito ineficiente.

15 15Teste e Qualidade de Software, 2006/07, Mário Correia Jester: avaliação da ferramenta [Bybro, 2003] propõe uma ferramenta de mutação para Java, com uma vasta gama de operadores:

16 16Teste e Qualidade de Software, 2006/07, Mário Correia Problemas com a técnica Vasto número de mutantes: Escolha criteriosa dos operadores de mutação. Processo dispendioso em tempo: Eliminação de mutantes equivalentes - mutantes com o mesmo comportamento que o original; Processo Weak ou Firm. Detecção de mutantes equivalentes. Neutralização dos chamados stubborn mutants: mutantes não equivalentes mas difíceis de neutralizar.

17 17Teste e Qualidade de Software, 2006/07, Mário Correia Comparação com testes de cobertura Testes de Cobertura de código: Verificam se todas as possíveis condições de execução de um programa, são cobridas pelos testes; Saber que uma instrução não está a ser executada pelos testes prova que não está a ser testada; Contudo, o inverso não é verdade: Se uma linha de código é executada, isso não significa que está a ser verdadeiramente testada. Testes de Mutação: Alteram o código pela introdução de falhas, permitindo verificar se efectivamente os testes cobrem a situação que foi alterada.

18 18Teste e Qualidade de Software, 2006/07, Mário Correia Notas finais Testes de Mutação ajudam a melhorar a qualidade dos testes; Podem guiar o processo de criação de testes; Usados em complemento com outro tipo de testes, em especial testes de cobertura de código; Técnica valiosa para sistemas confiáveis e tolerantes a falhas, em conjunto com injecção de falhas por hardware; Mutação pode ser aplicada a outras áreas: ex.: geração de dados de teste complexos [Shan and Zhu, 2006].


Carregar ppt "Teste e Qualidade de Software, 2006/07, Mário Correia 1 Testes de Mutação baseado no artigo de Mário Correia, Testes de Mutação, 2006, acessível emhttp://deec.fe.up.pt/~ei02070/tqs/http://deec.fe.up.pt/~ei02070/tqs/"

Apresentações semelhantes


Anúncios Google