Please enable JavaScript.
Coggle requires JavaScript to display documents.
Fases de Teste de Software - Coggle Diagram
Fases de Teste de Software
É complexo
"Dividir para Conquistar"
Unidade
Foco nas menores unidades de software desenvolvidas
Verifica o funcionamento de forma isolada dos elementos de software
que podem ser testados separadamente
Driver
Fornece os dados necessários para que essa unidade seja executada e, posteriormente, apresenta os resultados ao testador
Drublês
Simulam o comportamento de uma unidade ainda não integrada
Tipos
Dummy
Passados como parâmetro, mas nunca utilizados.
É usado apenas para preencher lista de parâmetros.
Fake
Possuem alguma implementação, mas de maneira muito mais simples.
São inadequados para produção
Stubs
Fornecem respostas “hard-coded” para chamadas realizadas durante o teste.
Não sabem o que fazer se o teste chamar um método que não foi programado/configurado
Spies
Observa o comportamento de uma dependência e registra informações sobre suas interações.
Na verdade, não simulam um comportamento
Mocks
Agem como stubs mas os tipos de interações que devem ocorrer também são pré-programados.
É possível verificar se essas interações ocorreram como esperadas
Vantagens
○ É rápido
○ Fácil de controlar
○ Fácil de implementar
Desvantagens
○ Não é “real”
○ Alguns tipos de erros não são reproduzidos nessa fase
Integração
Objetivo é verificar se as unidades testadas individualmente se
comunicam como desejado
Usado para descobrir de possíveis erros associados à interface do sistema, pois:
■ Dados podem se perder na interface
■ Unidade pode ter efeito inesperado sobre outra
■ etc
Tipos
“Big Bang”
As unidades são integradas simultaneamente
Vantagens
○ Todas as unidades são testadas de uma vez
○ Ideal para pequenos sistemas
○ Economiza tempo de teste
Desvantagens
○ Atraso para começar os testes
○ Dificuldade em encontrar a causa do erro
Incremental
As unidades são construídas e testadas em pequenos incrementos
Integração top-down (descendente)
As unidades são integradas deslocando-se
para baixo na hierarquia de controle
Vantagens
○ Testa as principais funções de controle antes
○ Localização de erros é mais fácil
Desvantagens
○ Stubs são necessários
○ Funcionalidades básicas são testadas mais tarde
Integração bottom-up (ascendente)
As unidades são integradas começando nos
níveis mais baixos na hierarquia de controle
Vantagens
○ Casos de teste mais fácil de projetar
■ Ausência de stubs
Desvantagens
○ O programa não existe como entidade até que a
última unidade seja integrada
○ Necessidade de criar drivers
■ Em teoria, mais fácil que stubs
Vantagens
○ Descobre erros relacionados a comunicação entre as unidades
○ Criar testes para uma integração específica é mais fácil do que para todo o sistema
Desvantagens
○ Quanto maior a granularidade da integração, mais difícil de implementar
Sistema
Testa o sistema como um todo para verificar se ele atende aos requisitos de especificados
Testes executados em condições similares àquelas que um usuário utilizará no seu dia-a-dia
Um sistema divide-se em características
Funcionais
Foco na funcionalidade
Não-Funcionais
Características de qualidade
Usabilidade
Segurança
Confiabilidade
Desempenho
etc.
Vantagens
○ Mais realísticos
○ Captura a perspectiva do usuário
Desvantagens
○ Lentos
○ Difícil de escrever
○ Ocorrência de testes quebradiços (flaky)
Reteste
Testar parte do sistema que já foi testado quando o sistema sofre alterações
Teste de Regressão
Estratégia importante para redução de “efeitos colaterais”
Teste de fumaça
(ou smoke testing ou de sanidade)
Testes superficiais feitos pelos desenvolvedores para garantir que as funcionalidades principais funcionem corretamente
Aceitação
Foco nos requisitos
Geralmente realizado por um grupo restrito de usuários finais do sistema
Dois tipos
Teste Alfa
Executado na instalação do desenvolvedor por um grupo restrito de usuários finais
Teste Beta
Executado na instalação de um ou mais clientes pelo usuário final do software