para linguagem C#. Autores: Alexandre Freitag Fbio Valter Siscate
Orientador: Prof. Dr. Flvio Moreira de Oliveira
MOTIVAO "O custo de correo de defeitos tende a aumentar quanto mais tarde o defeito for encontrado, numa proporo de 10x." Glenford Myers em 1979
Qualidade no software importante. Processo de teste importante. E quem garante a qualidade do teste? Uma tcnica a Anlise de Mutantes.
FUNDAMENTAO TERICA Classificar os desvios: Falha - Inconsistncias no cdigo-fonte Erro Estados interno inconsistente Defeito - Desvio da especificao quanto a regra de negcio
Nveis de teste: Teste Unitrio: testa a classe, mtodo ou trechos menores do cdigo Teste de Integrao: testa integrao em componentes Teste de Sistema: funcional, com viso do usurio Teste de Aceitao: executado pelo usurio
FUNDAMENTAO TERICA Teste unitrio Arquivos de entrada Verificao do resultado
Como garantir a qualidade do Teste Unitrio?
Mtodo ou Classe Classe Driver ANLISE DE MUTANTES
Criada por DeMillo no final da dcada de 70.
Pequenas alteraes sintticas no cdigo fonte original.
Objetivo: Desvendar se o teste unitrio consegue identificar os cdigos mutantes.
ANLISE DE MUTANTES Execuo de diversas instncias da classe no mesmo teste unitrio.
Execuo do teste unitrio nos mutantes. Mutantes mortos.
Cdigo Fonte Original Gerador de Mutantes M1 M2 M3 M4 M5 M6 Classe Driver TCNICAS DE MUTAO Mutao Clssica
Mutao Orientada a Objetos.
if ( a < b ) a++; else b++; if ( a > b ) a++; else b++;
class pai { int x; } class filho extends filho { int x; } class pai { int x; } class filho extends filho { //int x; } OPERADORES DE MUTAO Regras definidas para alterao do cdigo. Por exemplo:
OAR: Arithmetic Operator Replacement;
ROR: Relational Operator Replacement;
IHD: Hiding Variable Deletion;
OAO: Argument Order Change
MUT#
Ferramenta para Gerao de Mutao Clssica para linguagem C#. MUT#
Limitaes: Somente mutao clssica. Programa no faz verificao sinttica. Mesmo operador de mesmo grupo em uma linha.
MUT# Trabalhos Futuros: Integrao com NUnit. Mutao orientada a objeto. Utilizao do gerador de parser. Expanso da quantidade de operadores de mutao.
MUT# Referncias Bibliogrficas:
A. BARTI. Garantia da Qualidade de Software. Editora Campus,Inc, 2002. ISBN 8535211241
R. A. DeMillo, R. J. Lipton, and F. G. Sayward. Hints on test data selection: Help for the practicing programmer. Computer, 11(4):3441, 1978. ISSN 0018-9162.
R. A. DeMillo, R. J. Lipton, and F. G. Sayward. Program mutation: A new approach to program testing. Infotech state of the art report, 2:107128, 1979.
Glenford J. Myers. Art of Software Testing. John Wiley & Sons, Inc., New York, NY, USA, 1979. ISBN 0471043281.