230 likes | 306 Views
Reliability verification of Digital Systems Design based on mutation Analysis. Samuel S. Marczak. Agenda. Resumo Introdução Descrição da Metodologia Proposta Estudo de Caso. Resumo. Nova abordagem para:
E N D
Reliability verification of Digital Systems Design based on mutation Analysis Samuel S. Marczak
Agenda • Resumo • Introdução • Descrição da Metodologia Proposta • Estudo de Caso
Resumo • 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;
Agenda • Resumo • Introdução • Descrição da Metodologia Proposta • Estudo de Caso
Análise de Mutantes (AM) • É 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;
Análise de Mutantes (AM) • 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)
Análise de Mutantes (AM) • 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);
Análise de Mutantes (AM) • 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 de Mutantes (AM) • 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;
Análise de Mutantes (AM) • 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);
Agenda • Resumo • Introdução • Descrição da Metodologia Proposta • Estudo de Caso
Descrição da Metodologia Proposta • 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;
Descrição da Metodologia Proposta • 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;
Descrição da Metodologia Proposta • 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;
Descrição da Metodologia Proposta • 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;
Descrição da Metodologia Proposta • 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.
Descrição da Metodologia Proposta • 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;
Descrição da Metodologia Proposta • 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;
Descrição da Metodologia Proposta • Conjunto de operadores de mutantes para descrição Handel-C e C
Descrição da Metodologia Proposta • Exemplo de 8 mutantes para rotina crypt; • Cada uma das 8 declarações de mutantes é executa por um determinado tempo;
Descrição da Metodologia Proposta • 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*).
Agenda • Resumo • Introdução • Descrição da Metodologia Proposta • Estudo de Caso
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;