2 Testes ao longo do SDLC
2.1 Testes no contexto de um SDLC
Sigla | SDLC |
---|---|
en | Systems Development Life Cycle |
br | Ciclo de Vida de Desenvolvimento de Software |
- Incluem modelos de desenvolvimento de software:
- sequencial;
- iterativo;
- incremental.
2.1.1 Impacto do SDLC nos Testes
O teste deve ser adaptado ao SDLC.
Isso afeta quando serão realizados os testes estáticos e dinâmicos.
2.1.2 SDLC e boas práticas de Teste
As BOAS PRÁTICAS gerais são:
- Para cada atividade existe um teste correspondente;
- Níveis de teste evitam a redundância;
- A modelagem de teste começa junto com a atividade, para testar o quanto antes;
- Testers se envolvem na revisão do produto.
2.1.3 Teste como um motivador para o desenvolvimento de software
Os testes podem ser criados antes do desenvolvimento nos métodos seguintes:
Método | Orientação | |
---|---|---|
TDD | Test Driven Development | Casos de Teste |
ATDD | Acceptance Test-Driven Development | Critérios de Aceite |
BDD | Behavior Driven Development | Complemento (Given/When/Then) |
Os testes gerados podem ser mantidos como garantia de qualidade durante uma refatoração de código.
2.1.4 DevOps e Testes
DevOps é a cultura de entregar dinamismo entre o desenvolvimento e a infraestrutura.
Com o DevOps, os testes (automatizados) podem ser incorporados à rotina de desenvolvimento.
Mesmo com testes automatizados, os testes manuais ainda são necessários.
2.1.5 Abordagem Shift-Left
Abordagem em que os testes são criados antes do desenvolvimento.
- Boas práticas:
- Revisar as especificações;
- Escrever os casos de teste antes do código;
- Usar CI/CD para melhorar o feedback do código;
- Concluir a análise estática antes de executar a análise dinâmica;
- Realizar testes não funcionais mais cedo.
2.1.6 Retrospectivas e melhoria de processos
As retrospectivas dependem do SDLC.
- São discutidos:
- O que deu certo?
- O que NÃO deu certo?
- E as melhorias.
Os resultados são incluídos em um relatório de conclusão do teste.
2.2 Níveis de Teste e Tipos de Teste
Em um modelo SDLC sequencial, um output de um nível de teste é o input do próximo nível.
2.2.1 Níveis de Teste
Os Níveis de Teste:
- Teste de Componente:
- Testes Unitários;
- Teste de Integração de Componentes:
- Teste Integrado;
- Teste de Sistema:
- Comportamento geral;
- Teste de Integração de Sistemas:
- Interfaces do sistema (telas ou API);
- Teste de Aceite:
- Sistema atende aos requisitos.
2.2.2 Tipos de Teste
Tipo | Requisitos | Exemplo |
---|---|---|
Teste Funcional | Funcionais | Permissões de Acesso |
Teste Não Funcional | Não Funcionais | Performance |
Tipo | Baseado em |
---|---|
Teste de Caixa Branca | Código, Arquitetura, Estrutura de Dados, ... |
Teste de Caixa Preta | Documentação externa ao objeto de teste |
2.2.3 Testes de Confirmação e Teste de Regressão
Tipo | Valida |
---|---|
Teste de Confirmação | Se o defeito foi corrigido |
Teste de Regressão | Se um defeito anterior não voltou |
2.3 Teste de Manutenção
- Testes de manutenção são executados como:
- análise se uma alteração é viável;
- verificação de possível regressão.
O escopo dos testes de manutenção varia com:
- Grau de risco da mudança;
- Tamanho do sistema;
- Tamanho da mudança.
Os fatores para um teste de manutenção:
- Modificação (Fix);
- Atualização (Feat);
- Aposentadoria (Fim de Vida Útil).