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

Preview:

Citation preview

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;

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;

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)

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);

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

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;

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);

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;

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;

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;

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;

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.

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;

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;

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

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

executa por um determinado tempo;

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*).

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;

Recommended