Upload
leonardo-molinari
View
832
Download
1
Embed Size (px)
Citation preview
Usuário não sabe se a suíte de teste é adequada ou não para encontrar erro
Solução 1◦ Medir cobertura Mas não se sabe se o teste é adequado para encontrar
erros
Usuário não sabe se a suíte de teste é adequada ou não para encontrar erro
Solução 2◦ Introduzir um bug (Fault seeding) É possível saber se o erro introduzido será ou não
encontrado
P’ é uma versão que contém um erro! O que se pode concluir sobre TS?
P
T0T1
T2
…Tn
P’
T0
T1
T2
…Tn
TS =
P’ é uma versão que contém um erro! O que se pode concluir sobre TS?
P
T0T1
T2
…Tn
P’
T0
T1
T2
…Tn
TS =
Inadequado para encontrar erro introduzido em P’
O que o programador deve fazer ao perceber isto?
P
T0T1
T2
…Tn
P’
T0
T1
T2
…Tn
TS =
Adicionar novo teste para capturar erro em P’
Novo teste deve passar em P e falhar em P’ Definição: TS distingue programas P e P’
P
T0T1
T2
…Tn
P’
T0
T1
T2
…Tn
TS =
Tn+1 Tn+1
Mutante: Programa original modificado Operador de Mutação: Definição de uma
transformação (de original para mutante) Mutante morto: Quando a suíte de teste
consegue distinguir mutante do original Mutante sobrevivente: Não morto (acima) Mutante equivalente: Semântica do mutante é
equivalente ao original
P
TS
Set of Mutants
OPsgerarMutantes encontreSobreviventes
sobreviventesnovos testes
P: Pgm, TS: set of PgmOps: Output (survivors: set of Pgm, killed)