Buscar

Fases de Teste de Software

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

Continue navegando