Pular para o conteúdo principal

2 Testes ao longo do SDLC

2.1 Testes no contexto de um SDLC

SiglaSDLC
enSystems Development Life Cycle
brCiclo 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étodoOrientação
TDDTest Driven DevelopmentCasos de Teste
ATDDAcceptance Test-Driven DevelopmentCritérios de Aceite
BDDBehavior Driven DevelopmentComplemento (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

TipoRequisitosExemplo
Teste FuncionalFuncionaisPermissões de Acesso
Teste Não FuncionalNão FuncionaisPerformance
TipoBaseado em
Teste de Caixa BrancaCódigo, Arquitetura, Estrutura de Dados, ...
Teste de Caixa PretaDocumentação externa ao objeto de teste

2.2.3 Testes de Confirmação e Teste de Regressão

TipoValida
Teste de ConfirmaçãoSe o defeito foi corrigido
Teste de RegressãoSe 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).