Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fases de Teste de Software Atividade complexa Pirâmide de teste Unidade Integração Sistema Reteste Aceitação Recuperação Segurança Desempenho Disponibilização Cada unidade é testada isoladamente Método Classe O que é uma unidade? Foco nas menores unidades de software desenvolvidas Swebok Verifica isoladamente os elementos de software que podem ser testados separadamente Drivers Preencher listas de parâmetros Passados como parâmetro mas nunca utilizados Dummy Inadequados para produção Implementação muito simples Fake Ineficientes para métodos que não foram programados ou configurados Respostas “hard-coded” para chamadas Stubs Não simulam comportamento Observa comportamento e registrainformações sobre suas interações Spies Agem como stubs; Possível verificar se interações ocorreram como esperado Interações que ocorrem são pré-programados Mocks Dublês de Teste Rápido Fácil de controlar Fácil de implementar Vantagens Não é real Alguns tipos de erro não são reproduzidos Desvantagens Obriga software a falhar e verifica se a recuperação é executada corretamente Falhas no processamento não devem causar a paralisação do sistema Sistema precisa ser tolerantes a falhas Confidencialidade Autenticidade Integridade Verifica se mecanismos de proteção vão protegê-lo contra acesso indevido Verificar se as unidades testadas individualmente se comunicam como desejado Objetivo Descobre erros relacionados a comunicação entre as unidades Criação de testes para integração específica são mais fáceis que para todo o sistema Vantagens Quanto maior a granularidade da integração, mais difícil de implementar Desvantagens Descobrir possíveis erros associados à interface do sistema Unidade pode ter efeito inesperado sobre outraDados podem se perder na interface Por que testar a integração? Unidades integradas simultaneamente Todas as unidades são testadas de uma vez Ideal para pequenos sistemas Economiza tempo de teste Vantagens Atraso para começar os testes Dificuldade em encontrar a causa do erro Desvantagens “Big Bang” Unidades construídas e testadas em pequenos incrementos Para baixo na hierarquia de controle Testa principais funções de controle antes Localização de erros é mais fácil Vantagens Stubs são necessários Funcionalidades básicas são testadas mais tarde Desvantagens Integração top-down (descendente) Níveis mais baixos na hierarquia de controle Casos de teste mais fácil de projetar Ausência de stubs Vantagens Programa não existe como entidade até que a última unidade seja integrada Necessidade de criar drivers Mais fácil que stubs Desvantagens Integração bottom-up (ascendente) Incremental Abordagens Mais complexo Mais próximo da realidade Reduzir complexidade Importante para redução de “efeitos colaterais” Regressão Testes superficiais Aplicado após a geração de um build Evita desperdício de recursos de testes com um build não estável Garantir que as funcionalidades principais funcionem corretamente Fumaça Testar parte do sistema que já foi testado quando o sistema sofre alterações Testar o desempenho em tempo de execução do software Examina cargas reais em vários níveis e combinações Carga Força o aumento de carga até o ponto de ruptura Servem para colocar os programas em situações anormais Stress Exercita o software em cada ambiente em que deve operar Variedade de plataformas Mais de um ambiente de sistema operacional Sistema satisfaz critérios de aceitação definidos pelo cliente? Não é encontrar erros Foco nos requisitos Realizado por grupo restrito de usuários finais do sistema Executado na instalação do desenvolvedor por um grupo restrito de usuários finais Alfa Executado na instalação de um ou mais clientes pelo usuário final do software Beta Dois tipos Testa sistema como um todo Verificar se atende requisitos especificados Testes com condições similares ao do dia a dia Foco na funcionalidade Funcionais Usabilidade Segurança Confiabilidade Desempenho Segurança Características de qualidade Não-funcionais Características Mais realísticos Captura a perspectiva do usuário Vantagens Lentos Difícil de escrever Ocorrência de testes quebradiços (flaky) Desvantagens
Compartilhar