Teste no Ciclo de Vida de Software (Cap. 2 CTFL)
Modelos de desenvolvimento e o teste
O modelo de desenvolvimento de software adotado pela equipe determina diretamente como o teste é integrado ao processo. O CTFL v4.0 cobre três grandes abordagens:
- Modelos sequenciais (Cascata/V): o teste é realizado em fases após o desenvolvimento. O Modelo V é a evolução do cascata: cada fase de desenvolvimento tem uma fase de teste correspondente (requisitos ↔ teste de aceite, design ↔ teste de sistema, codificação ↔ teste unitário).
- Modelos iterativos e incrementais (Agile, Scrum): o software é desenvolvido em ciclos curtos (sprints). Testes acontecem dentro de cada iteração, e o princípio de "teste contínuo" é fundamental.
- DevOps e entrega contínua: testes automatizados são integrados ao pipeline CI/CD. O feedback é imediato e a qualidade é responsabilidade de todo o time.
O CTFL v4.0 enfatiza que, independentemente do modelo, o princípio de teste inicial deve ser respeitado: quanto mais cedo os testes são realizados, mais baratos são os defeitos encontrados.
🎬 Modelos de desenvolvimento e o teste
Níveis de teste
Os níveis de teste definem em qual parte do sistema o teste se concentra:
- Teste de Componente (Unitário): testa unidades individuais de código (funções, classes) de forma isolada. Geralmente feito pelo desenvolvedor. Rápido e barato.
- Teste de Integração de Componentes: verifica a comunicação entre componentes já testados individualmente. Encontra problemas nas interfaces entre módulos.
- Teste de Sistema: testa o sistema completo integrado, do ponto de vista do usuário final. Verifica comportamento funcional e não-funcional.
- Teste de Integração de Sistemas: verifica a integração com sistemas externos (APIs, bancos de dados, serviços de terceiros).
- Teste de Aceite: valida se o sistema atende às necessidades do negócio. Inclui UAT (User Acceptance Testing) e testes regulatórios.
🎬 Níveis de teste
Tipos de teste
Os tipos de teste definem o que está sendo avaliado, independentemente do nível:
- Teste Funcional: verifica o que o sistema faz — suas funcionalidades. Baseado em requisitos funcionais.
- Teste Não-Funcional: verifica como o sistema se comporta — performance, segurança, usabilidade, compatibilidade.
- Teste Caixa-Preta: testa sem conhecer o código interno, apenas com entradas e saídas esperadas.
- Teste Caixa-Branca: testa conhecendo a estrutura interna do código, verificando caminhos de execução.
- Teste de Regressão: verifica que mudanças recentes não quebraram funcionalidades que funcionavam antes.
- Teste de Confirmação (Re-teste): verifica que um defeito específico foi corrigido.
🎬 Tipos de teste
Teste de manutenção
Sistemas em produção precisam de manutenção contínua — correções de bugs, novas funcionalidades, migração de infraestrutura. O teste de manutenção aborda o teste de sistemas já em produção.
Os gatilhos para teste de manutenção incluem: modificações planejadas (novas features), correções de emergência e migrações (novo servidor, novo banco de dados, nova versão de SO).
Um conceito chave é a análise de impacto: antes de testar, identifica-se quais partes do sistema foram afetadas pela mudança. Isso permite focar o esforço de regressão nas áreas de maior risco, em vez de retestar tudo do zero.
🎬 Teste de manutenção
🧠 Teste seus conhecimentos
No Modelo V de desenvolvimento, o teste de aceite corresponde a qual fase de desenvolvimento?