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

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Metodologia de testes Nome: Gustavo G. Quintão
Fundamentos de Engenharia de SW
Algoritmos de Ordenação
Algoritmos de Ordenação
Testando o sistema Teste funcional: o sistema integrado realiza as funções especificadas nos requisitos? Teste de desempenho: os requisitos não-funcionais.
Algoritmos de Ordenação
Classificação de Dados
Mutação de Interface Interface Mutation: An Approach for Integration Testing Marcio E. Delamaro José C. Maldonado Aditya P. Mathur.
Tópicos em Engenharia de Software II
Análise de Perigos MO828 – Eng. Software II Prof
Análise de Segurança Recovery Blocks
Captura de Texto em um Quadro Branco
Segmentação de Escrita
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
A FAST APRIORI implementation
Carolina Fonseca Neumar Ribeiro
Porto Alegre, 5 de Outubro de 2009
Recovery Blocks Paulo Junior Penna Pivetta. Introdução Os Projetos de Tolerância a falhas quase que exclusivamente eram dedicado a hardware Tolerância.
Reliability verification of Digital Systems Design based on mutation Analysis Samuel S. Marczak.
Fabio Notare Martins Pontifícia Universidade Católica do Rio Grande do Sul Programa de Pós-Graduação em Ciências da Computação.
Técnicas de Teste de Software
Abordagem Estratégica ao Teste de Software
(baseado em slides de ex-alunos)
Testes de Mutação baseado no artigo de Mário Correia,
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Uma ferramenta para Geração de Mutantes para linguagem C#.
TSDD Teste de segurança durante o desenvolvimento.
Testes – visão geral Vanilson Burégio.
Algoritmos de Ordenação
Algoritmos de Ordenação
Insertion Sort.
Introdução aos conceitos de Teste de Software
REDUNDÂNCIA POR SOFTWARE
ICC2 Aula 7 Fábio Nakano.
Ordenação em memória primária
Desempenho, Método de Shell, Quicksort
How to Break Software Capítulo 3 Taíse Dias Testing from the user Interface.
How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface.
The art of Unit Testing. Unit testing O Um teste unitário é uma parte de código (geralmente um método/função), que invoca outra parte de codigo e verifica.
Procedimentos e Funções
Algoritmos de Ordenação
Campus de Caraguatatuba Licenciatura em Matemática Semestre de 2013
TESTES DE SOFTWARE Qualidade de software Professores: Juliano Bedin Juliano Bedin Sara Priscila Dutkwicz Leandro Bovi.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Gestão de defeitos.
Introdução a Teste de Software
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
Testes de Software AULA 03 Eduardo Silvestri
Estrutura de dados kelvin Santiago
Aula 10 Algoritmos de Busca
Complexidade em Tempo de um Algoritmo
Como analisar um algoritmo
DCC 001 Programação de Computadores 2º Semestre de 2011
Teste de Software 02: Oracles Marcelo d’Amorim
Critérios de adequação e os diversos tipos de teste
Berilhes Borges Garcia Algoritmos Uma ferramenta para resolver um problema de computação bem- especificado (O espírito da computação) Exemplo: ordenação.
ORDENAÇÃO EM TEMPO LINEAR
TÉCNICAS DE ESTIMATIVAS
CIn-UFPE Seleção de Testes de Regressão para Redução de Defeitos Escapados Juliana Mafra – Novembro
PROJETO 2: ALUNOS UFRPE Parte 1. Dividindo para conquistar 1. Interação com o usuário 2. Leitura e escrita em arquivos 3. Regra de negócio para executar.
Classificação (Ordenação) de dados
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
USP – ICMC – SSC SSC0300 2º Semestre 2015
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
Campus Pau dos Ferros Disciplina de Algoritmos Prof. Demétrios Coutinho INFORMÁTICA BÁSICA Algoritmos de Ordenação.
Algoritmos com matrizes e vetores
Transcrição da apresentação:

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

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

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

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

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 7 5 3 2 1 Bubble Sort 1 2 3 5 7 Quick Sort 1 2 3 5 7

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 7 6 5 4 3 2 1 Bubble Sort 1 2 3 4 5 6 7 Array Sorted

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.

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

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 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 ordenação similar aos mutantes 1 e 2 Contagem Total: Falhas inerentes encontradas = 2 Mutantes mortos = 3

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

Análise de perigos funcionais

Análise de perigos funcionais

Análise de perigos funcionais

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

Obrigada! Boas férias!