A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Confiabilidade e Segurança MO828 – Eng. Software II Prof

Apresentações semelhantes


Apresentação em tema: "Confiabilidade e Segurança MO828 – Eng. Software II Prof"— Transcrição da apresentação:

1 Confiabilidade e Segurança MO828 – Eng. Software II Prof
Confiabilidade e Segurança MO828 – Eng. Software II Prof.- Eliane Martins Aluna: Flávia Zaroni Camargo RA: 20489

2 Programa Recovery Blocks
Classe Ordenação com os métodos BubbleSort, QuickSort e SelectionSort Classe RecoveryBlocks onde os tipos de Ordenação são chamados Classe AcceptanceTest para verificar se a ordenação foi feita de forma correta Classe SortError para exceção

3 Confiabilidade Testes com enfoque em confiabilidade;
Foi utilizado um modelo independente do tempo, baseado em semeadura de falhas; Para aplicar técnica de mutação devem ser inseridas falhas no código gerando versões mutantes; A mesma entrada é executada na versão original e na versão mutante e os resultados são comparados; O objetivo é “matar” o mutante, reproduzindo o erro esperado; Foco no Recovery Blocks para verificar a recuperação com sucesso de uma versão para outra

4 Mutante 1 – Selection Sort
Foi feita uma mutação no código do Selection Sort (a primeira versão do Recovery Block) para forçar um erro no algoritmo de ordenação e exercitar o AcceptanceTest. DE: if (array[i] < array[index]) PARA: if (array[i] > array[index]) Entrada: int[] a1 = {5,3,2,7,1};

5 Mutante 1 – Selection Sort
Resultado: matou o mutante, mas não foi o resultado esperado totalmente pois foi encontrada uma falha no mecanismo de Acceptance test. A chamada da 2a ordenação estava correta mas foi chamado o 3o sort quando não deveria. Saída gerada pelo programa mutante1: Selection Sort Bubble Sort Quick Sort

6 Mutante 1 – Selection Sort
Foi localizado o erro no Acceptance Test e executado o mutante 1 novamente com a entrada 2 na versão corrigida: {5,3,2,7,1,6,4} Na nova versão o comportamento do mutante foi conforme o esperado, podemos considerar que o mutante foi morto; Saída gerada pelo programa mutante1: Selection Sort Bubble Sort Array Sorted

7 Mutante 2 – Bubble Sort Foi feita uma mutação no código do Bubble Sort para forçar um erro no algoritmo de ordenação e exercitar o AcceptanceTest. DE: if (a[j] > a[j+1]) { PARA: if (a[j] < a[j+1]) { Entrada 1: int[] a1 = {5,3,2,7,1,6,4}; Não matou o mutante2; Não será possível matar o mutante 2 se não colocarmos o mutante1 também pois somente após acusar erro na 1a versão que é ativada a 2a versão.

8 Mutante 2 – Bubble Sort Solução = mutante1 + mutante2
Matou o mutante2, pois o algoritmo de Bubble Sort não ordenou o vetor. Conforme comportamento esperado, foi invocada a 3a versão de ordenação Quick Sort. Saída gerada pelo programa mutante1: Selection Sort Bubble Sort Quick Sort

9 Mutante 2 – Bubble Sort No teste do mutante2 foi observado mais um erro no código; Faltou fazer mais um teste final da 3a versão do Recovery Block para verificar se o vetor foi ordenado ou não utilizando AcceptanceTest, que deveria ter mostrado a mensagem Array Sorted, que não foi exibida. Após a correção o resultado obtido foi o esperado: Selection Sort Bubble Sort Quick Sort Array Sorted

10 Mutante 1, 2 e 3 - Resultados Mutante 3: aplicado ao terceiro algoritmo de ordenação similar aos mutantes 1 e 2 Contagem Total: Falhas inerentes encontradas = 2 Mutantes mortos = 3

11 Segurança Análise de perigos funcionais (FHA – Functional Hazard Assesment) Identificar funções do sistema que contribuem para os perigos identificados, atribuindo-lhes um grau de severidade

12 Análise de perigos funcionais

13 Análise de perigos funcionais

14 Análise de perigos funcionais

15 Referências A Practical System for Mutation Testing: Help for the Common Programmer, A. Jefferson Offutt Subsumption of Condition Coverage Techniques by Mutation Testing, A. Jefferson Offut, Jeffrey M.Voas

16 Obrigada! Boas férias!


Carregar ppt "Confiabilidade e Segurança MO828 – Eng. Software II Prof"

Apresentações semelhantes


Anúncios Google