Escolar Documentos
Profissional Documentos
Cultura Documentos
- Eliane Martins
Confiabilidade
Testes com enfoque em confiabilidade; Foi utilizado um modelo independente do tempo, baseado em semeadura de falhas; Para aplicar tcnica de mutao devem ser inseridas falhas no cdigo gerando verses mutantes; A mesma entrada executada na verso original e na verso mutante e os resultados so comparados; O objetivo matar o mutante, reproduzindo o erro esperado; Foco no Recovery Blocks para verificar a recuperao com sucesso de uma verso para outra
Foi feita uma mutao no cdigo do Selection Sort (a primeira verso do Recovery Block) para forar um erro no algoritmo de ordenao e exercitar o AcceptanceTest.
Resultado: matou o mutante, mas no foi o resultado esperado totalmente pois foi encontrada uma falha no mecanismo de Acceptance test. A chamada da 2a ordenao estava correta mas foi chamado o 3o sort quando no deveria. Sada gerada pelo programa mutante1: Selection Sort 7 5 3 2 1 Bubble Sort 1 2 3 5 7 Quick Sort 1 2 3 5 7
Foi localizado o erro no Acceptance Test e executado o mutante 1 novamente com a entrada 2 na verso corrigida: {5,3,2,7,1,6,4} Na nova verso o comportamento do mutante foi conforme o esperado, podemos considerar que o mutante foi morto;
Sada gerada pelo programa mutante1: Selection Sort 7 6 5 4 3 2 1 Bubble Sort 1 2 3 4 5 6 7 Array Sorted
Foi feita uma mutao no cdigo do Bubble Sort para forar um erro no algoritmo de ordenao 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}; No matou o mutante2;
No ser possvel matar o mutante 2 se no colocarmos o mutante1 tambm pois somente aps acusar erro na 1a verso que ativada a 2a verso.
Soluo = mutante1 + mutante2 Matou o mutante2, pois o algoritmo de Bubble Sort no ordenou o vetor. Conforme comportamento esperado, foi invocada a 3a verso de ordenao Quick Sort.
Sada gerada pelo programa mutante1: Selection Sort 7 6 5 4 3 2 1 Bubble Sort 7 6 5 4 3 2 1 Quick Sort 1 2 3 4 5 6 7
No teste do mutante2 foi observado mais um erro no cdigo; Faltou fazer mais um teste final da 3a verso do Recovery Block para verificar se o vetor foi ordenado ou no utilizando AcceptanceTest, que deveria ter mostrado a mensagem Array Sorted, que no foi exibida. Aps a correo o resultado obtido foi o esperado: Selection Sort 7 6 5 4 3 2 1 Bubble Sort 7 6 5 4 3 2 1 Quick Sort 1 2 3 4 5 6 7 Array Sorted
Mutante 1, 2 e 3 - Resultados
Mutante 3: aplicado ao terceiro algoritmo de ordenao similar aos mutantes 1 e 2
Contagem Total: Falhas inerentes encontradas = 2 Mutantes mortos =3
Segurana
Anlise de perigos funcionais (FHA Functional Hazard Assesment) Identificar funes do sistema que contribuem para os perigos identificados, atribuindo-lhes um grau de severidade
2.Altera os valores do vetor de maneira incorreta(ex, perda de algum valor, ou dos valores do vetor)
2.Teste de aceitao retornar sucesso na ordenao, quando na verdade ela perdeu algum dos valores a ordenar
Crtica
2. Mecanismo no faz chamada para verificao do resultado recebido pelas verses adequadamente 3. Mecanismo no consegue recuperar o valor inicial do vetor para executar segunda verso de ordenao
Referncias
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