Upload
internet
View
110
Download
0
Embed Size (px)
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;