23
Samuel S. Marczak

Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Embed Size (px)

Citation preview

Page 1: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Samuel S. Marczak

Page 2: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Page 3: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Nova abordagem para:

◦ Verificação da confiabilidade de um sistema, baseada na técnica de análise de mutantes;

◦ Técnica originalmente proposta para teste de software por intermédio da verificação da adequação de um conjunto de vetores de teste para um determinado programa;

◦ Estudo de caso para ilustrar a abordagem proposta;

Page 4: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Page 5: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

É um critério que avalia a adequação de um conjunto de casos de teste em revelar erros específicos;

Principais passos da análise de mutantes:◦ Dado um produto P;◦ Um conjunto de casos de teste T, cuja qualidade

se deseja avaliar; Geração do conjunto de mutantes M; Execução de P com T; Execução dos mutantes M com T; Analise dos mutantes;

Page 6: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Geração do conjunto de mutantes M◦ Constrói-se um conjunto de produtos, obtidos pela

inclusão de alterações, ou desvios sintáticos, em P

Uma hipótese utilizada para guiar a geração dos mutantes é:◦ A hipótese do programador competente

Assume que os produtos a serem testados estão corretos ou próximos do correto (DeMillo et al., 1978)

Page 7: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Execução de P◦ Consiste em executar o produto P usando os casos de

teste de T e verificar se seu comportamento é o esperado◦ Não sendo, o produto apresenta resultados incorretos

para algum caso de teste, então um defeito foi detectado;

◦ Caso contrário a aplicação AM continua; Execução dos mutantes

◦ Cada um dos mutantes é executado usando os casos de teste de T;

◦ Se um mutante apresenta resultado diferente de P, conclui-se que os casos de teste utilzaidos são sensíveis e conseguiram expor a diferença entre P e mutante, neste caso mutante está morto, é descartado;

◦ Se mutante apresenta comportamento igual a P, isto indica uma baixa qualidade de T (não conseguiu distinguir P de mutante);

Page 8: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Após execução dos mutantes◦ Medida de adequação dos casos de teste

utilizados escore de mutação: É um valor no intervalo (0..1) Fornece uma medida de quanto o conjunto de casos

de teste analisado aproxima-se da adequação

Page 9: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Análise dos mutantes◦ Requer mais intervenção humana;◦ 1º decidir se o teste deve continuar ou não;◦ Se escore de mutação (ms) próximo de 1, pode-se

encerrar o teste e considerar T como um conjunto SUFICIENTEMENTE BOM de casos de teste para P;

◦ Se continuar analisam-se os mutantes que sobrevivem e decidir se esses são ou não equivalentes ao produto original.

◦ Novos casos de teste matam mutantes vivos não equivalentes;

◦ Determinar a equivalência de um mutante ao programa original não é possível automatizar essa tarefa por completo;

Page 10: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Na pesquisa preocuparam-se com o seu uso como um critério estimar cobertura de falha verificação da confiabilidade do sistema;

AM é um critério eficaz em revelar defeitos em programas, mas a aplicação da AM apresenta um custo alto (devido principalmente a gradne quantidade de mutantes gerados e a dificuldade em identificar os mutantes equivalentes ao programa original);

Page 11: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Page 12: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Uma falha de hardware que afeta uma aplicação pode ter uma representação equivalente no nível de implementação de software;

Em Al Hayek et al. é proposta uma abordagem baseada em análise de mutantes para testar descrição de hardware VHDL;

Como resultado, essa abordagem gera um conjunto de vetores de teste e obtêm uma cobertura de falha a nível de descrição funcional;

Page 13: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Al Hayek, aplica o conjunto de vetores de teste em uma estrutura gate-level de uma compilação VHDL e verifica a capacidade de tal conjunto de teste detectar falhas stuck-at;

Após definir algumas heuristicas para aumentar a capacidade de detecção de falha do conjunto de teste original, Al Hayek demonstra que a cobertura de falha no gate-level era elevada na maioria dos circuitos simulados;

Page 14: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

A idéia do trabalho é verificar (no mais alto nível de descrição) a confiabildiade do sistema contra falhas transientes ou permanentes em um HW;

Exceto a parte de HW e os canais de comunicação, a parte de SW do sistema não é confiável Qualquer falha que afeta a parte de SW pode fazer o sistema falhar;

Page 15: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Propuseram uma adaptação da abordagem de analise de mutantes, originalmente proposta para teste em software em 1978 por DeMillo;

Técnica para definir uma análise de mutante fraca;

Antes da geração da análise de mutates fraca ser aplicada para o programa original, é necessário construir uma estrutura de dados para os mutantes (MDS), que captura todas as informações importantes sobre a execução do programa;

Weiss et al. Propõe uma estrutura;

Page 16: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Uma modificação da versão do MDS de Weiss é proposta, a fim de adaptá-lo ás exigências da análise de mutantes fraca;◦ O MDS é constituído por duas partes: uma matriz

I, que representa o programa de entrada dos vetores de teste (cada elemento aponta para) a matriz C contendo o nome e o estado de todos os comparadores de saídade um programa durantea execução do programa.

Page 17: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Destacam que:◦ |Cn| representa o número de saídas verificadas

juntamente com o programa;◦ |Ik| é o número de entradas de vetores de teste;

Page 18: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

A análise de mutante é aplicada não só para o código Handel-C (linguagem de programação usada para implementar a parte de HW de um projeto), mas também para código C que implementa a parte de SW;

Em função é preciso co-simular o sistema, parcialmente descrito em C e Handel-C, no que diz respeito a um conjunto predefinido de mutantes;

Para tal finalidade, um conjunto de operadores de mutação dedicado para Handel-C e C é desenvolvido;

Page 19: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Conjunto de operadores de mutantes para descrição Handel-C e C

Page 20: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Exemplo de 8 mutantes para rotina crypt;◦ Cada uma das 8 declarações de mutantes é

executa por um determinado tempo;

Page 21: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

1º mutante: é uma substituição de operador lógico (LOR);

2º mutante: é uma substituição de constante por variável (CVR);

3º mutante: é uma substituição de constante (CR); 4º mutante: é uma substituição de operação por um

delay de 1 ciclode clock de duração (ODR); 5º mutante: é uma substituição de operador aritmético

(AOR); 6º mutante: é uma substituição de operador bit (BOR*); 7º mutante: é uma substituição de variável por

constante (VCR) 8º mutante: é uma substituição de uma operação por

um pulo de 0 ciclos de clock de duração (OSR*).

Page 22: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Page 23: Samuel S. Marczak. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso

Programa mencionado anteriormente com criptografia;

Programa consiste principalmente em três rotinas: is_valid, crypt e set_bit;

Segundo o trabalho publicado por by Al Hayek et al. [14], cinco vetores de teste para cada mutante declarado em um programa são suficientes para testar uma descrição hardware VHDL com uma cobertura de falha stuck-at corresponde a 97%;

A fim de simplificar o estudo de caso, foi gerado cinco vetores de teste por mutante declarado no programa;