Mutation Testing

1.001 visualizações

Publicada em

Testes de Mutação

Publicada em: Turismo, Negócios
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.001
No SlideShare
0
A partir de incorporações
0
Número de incorporações
122
Ações
Compartilhamentos
0
Downloads
26
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Mutation Testing

  1. 1. Leonardo Molinari
  2. 2. <ul><li>Questões Básicas </li></ul><ul><li>Entendendo Teste de Mutação </li></ul><ul><li>Terminologia Base </li></ul><ul><li>Visão do Processo </li></ul>
  3. 3. <ul><li>Usuário não sabe se a suíte de teste é adequada ou não para encontrar erro </li></ul><ul><li>Solução 1 </li></ul><ul><ul><li>Medir cobertura </li></ul></ul><ul><ul><ul><li>Mas não se sabe se o teste é adequado para encontrar erros </li></ul></ul></ul>
  4. 4. <ul><li>Usuário não sabe se a suíte de teste é adequada ou não para encontrar erro </li></ul><ul><li>Solução 2 </li></ul><ul><ul><li>Introduzir um bug (Fault seeding) </li></ul></ul><ul><ul><ul><li>É possível saber se o erro introduzido será ou não encontrado </li></ul></ul></ul>
  5. 5. <ul><li>Como saber se TS é adequada para encontrar erros? </li></ul>P TS = T0 T1 T2 … Tn    
  6. 6. <ul><li>P’ é uma versão que contém um erro! </li></ul><ul><li>O que se pode concluir sobre TS? </li></ul>P P’ TS = T0 T1 T2 … Tn     T0 T1 T2 … Tn    
  7. 7. <ul><li>P’ é uma versão que contém um erro! </li></ul><ul><li>O que se pode concluir sobre TS? </li></ul>P P’ TS = Inadequado para encontrar erro introduzido em P’ T0 T1 T2 … Tn     T0 T1 T2 … Tn    
  8. 8. <ul><li>O que o programador deve fazer ao perceber isto? </li></ul>P P’ TS = T0 T1 T2 … Tn     T0 T1 T2 … Tn    
  9. 9. <ul><li>O que o programador deve fazer ao perceber isto? </li></ul>P P’ TS = Adicionar novo teste para capturar erro em P’ T0 T1 T2 … Tn     T0 T1 T2 … Tn    
  10. 10. <ul><li>Novo teste deve passar em P e falhar em P’ </li></ul><ul><li>Definição: TS distingue programas P e P’ </li></ul>P P’ T0 T1 T2 … Tn     TS = Tn+1  Tn+1  T0 T1 T2 … Tn    
  11. 11. <ul><li>Mutante : Programa original modificado </li></ul><ul><li>Operador de Mutação : Definição de uma transformação (de original para mutante) </li></ul><ul><li>Mutante morto : Quando a suíte de teste consegue distinguir mutante do original </li></ul><ul><li>Mutante sobrevivente : Não morto (acima) </li></ul><ul><li>Mutante equivalente : Semântica do mutante é equivalente ao original </li></ul>
  12. 12. P TS Set of Mutants OPs gerarMutantes encontreSobreviventes sobreviventes novos testes P: Pgm, TS: set of Pgm Ops: Output (survivors: set of Pgm, killed)
  13. 13. <ul><li>Não se sabe se erro introduzido por um operador de mutação é relevante </li></ul><ul><li>Classificar um mutante como equivalente é manual (caro e passível de erro) </li></ul>

×