1 / 18

Mut#

Mut#. Autores: Alexandre Freitag Fábio Valter Siscate Orientador: Prof. Dr. Flávio Moreira de Oliveira. Uma ferramenta para Geração de Mutantes Clássicos para linguagem C#. Motivação.

Télécharger la présentation

Mut#

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mut# Autores: Alexandre Freitag Fábio Valter Siscate Orientador: Prof. Dr. Flávio Moreira de Oliveira Uma ferramenta para Geração de Mutantes Clássicos para linguagem C#.

  2. Motivação • "O custo de correção de defeitos tende a aumentar quanto mais tarde o defeito for encontrado, numa proporção de 10x." • Glenford Myers em 1979 • Qualidade no software é importante. • Processo de teste é importante. • E quem garante a qualidade do teste? • Uma técnica é a Análise de Mutantes.

  3. Fundamentação Teórica • Classificar os desvios: • Falha - Inconsistências no código-fonte • Erro – Estados interno inconsistente • Defeito - Desvio da especificação quanto a regra de negócio • Técnicas: • Funcional (Black-box) • Estrutural (White-box) • Níveis de teste: • Teste Unitário: testa a classe, método ou trechos menores do código • Teste de Integração: testa integração em componentes • Teste de Sistema: funcional, com visão do usuário • Teste de Aceitação: executado pelo usuário

  4. Fundamentação Teórica • Teste unitário • Arquivos de entrada • Verificação do resultado • Como garantir a qualidade do Teste Unitário? Classe Driver Método ou Classe

  5. Análise de Mutantes • Criada por DeMillo no final da década de 70. • Pequenas alterações sintáticas no código fonte original. • Objetivo: Desvendar se o teste unitário consegue identificar os códigos mutantes.

  6. Análise de Mutantes • Execução de diversas instâncias da classe no mesmo teste unitário. • Execução do teste unitário nos mutantes. • Mutantes mortos. M1 M4 ClasseDriver Código Fonte Original Gerador de Mutantes M2 M5 M3 M6

  7. Técnicas de Mutação • Mutação Clássica • Mutação Orientada a Objetos.

  8. Operadores de Mutação • Regras definidas para alteração do código. • Por exemplo: • OAR: Arithmetic Operator Replacement; • ROR: Relational Operator Replacement; • IHD: Hiding Variable Deletion; • OAO: Argument Order Change

  9. Mut# Ferramenta para Geração de Mutação Clássica para linguagem C#.

  10. Mut# • Mutação Clássica. • Desenvolvida no Visual Studio 2005. • Mutação Seletiva.

  11. Mut#

  12. Mut# • Arquivos de Entrada • Código Original C#. • Arquivo XML. • Escolha do método: • Análise Sintática (Gerador de Parser). • Estrutura de Dados (Algoritmo Analisador).

  13. Mut# • Algoritmo Analisador Criar Projeto Ler Arquivo XML Ler Código-Fonte .cs Geração de Mutantes Mutação Seletiva Parser Carregar os arquivos Construir diretórios Análise Individual Salva as Linhas

  14. Mut# • Análise dos Resultados:

  15. Mut# • Conclusão: • Objetivo atingido. • Característica única. • Limitações: • Somente mutação clássica. • Programa não faz verificação sintática. • Mesmo operador de mesmo grupo em uma linha.

  16. Mut# • Trabalhos Futuros: • Integração com NUnit. • Mutação orientada a objeto. • Utilização do gerador de parser. • Expansão da quantidade de operadores de mutação.

  17. Mut# • Referências Bibliográficas: 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):34–41, 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:107–128, 1979. Glenford J. Myers. Art of Software Testing. John Wiley & Sons, Inc., New York, NY, USA, 1979. ISBN 0471043281.

  18. Mut# Apresentação do Sistema

More Related