Skip to main content

Técnicas / Estratégias de Testes

Pirâmide de Testes

A Pirâmide de Testes é uma estratégia visual que nos ajuda a entender como distribuir diferentes tipos de testes no desenvolvimento de software. Imagine uma pirâmide com três níveis:

Base (Testes Unitários): Aqui, temos a maior quantidade de testes. Testamos pequenas partes do código, como funções ou métodos, para garantir que funcionem corretamente. Esses testes são rápidos e baratos de executar.

Meio (Testes de Integração): Nesta camada, testamos a interação entre diferentes módulos ou componentes do sistema para garantir que eles funcionem bem juntos.

Topo (Testes de Interface do Usuário ou E2E): No topo da pirâmide, temos a menor quantidade de testes. Esses testes verificam o sistema como um todo, simulando o comportamento do usuário final para garantir que tudo funcione corretamente do início ao fim. Esses testes são mais lentos e caros de executar.

Quadrante de Testes

O Quadrante de Testes é uma forma de categorizar os diferentes tipos de testes em quatro quadrantes, ajudando a entender seu propósito e foco:

  • Quadrante 1 (Testes Unitários e Componentes): Foco em verificar a lógica interna e a qualidade do código.
  • Quadrante 2 (Testes Funcionais e Exploratórios): Foco na validação de funcionalidades e na detecção de problemas de maneira mais intuitiva.
  • Quadrante 3 (Testes de Usabilidade e Exploratórios): Foco na experiência do usuário e na identificação de problemas a partir da perspectiva do usuário.
  • Quadrante 4 (Testes de Performance e Segurança): Foco em garantir que o sistema atenda aos requisitos de desempenho e segurança.

Shift Left Testing

Shift Left Testing é uma abordagem onde os testes são realizados o mais cedo possível no ciclo de desenvolvimento. A ideia é "mover os testes para a esquerda" no cronograma, detectando e corrigindo problemas antes que eles se tornem grandes e caros de resolver. Isso ajuda a melhorar a qualidade do software e a reduzir custos.

TDD / BDD / ATDD

TDD (Test-Driven Development)

TDD é uma prática onde os desenvolvedores escrevem testes antes mesmo de escrever o código. O ciclo TDD envolve três etapas: escrever um teste que falhe, escrever código para fazer o teste passar e refatorar o código. Isso garante que o código seja continuamente testado e melhorado.

BDD (Behavior-Driven Development)

BDD é uma extensão do TDD que envolve a colaboração entre desenvolvedores, QA e stakeholders para definir o comportamento do sistema usando uma linguagem comum. Os cenários são escritos em uma estrutura Given-When-Then (Dado-Quando-Então) e são usados como base para os testes.

ATDD (Acceptance Test-Driven Development)

ATDD é semelhante ao BDD, mas foca mais nos testes de aceitação. Esses testes são escritos a partir da perspectiva do usuário final e garantem que o sistema atenda aos requisitos do cliente.

Caixa Preta

Nos testes de Caixa Preta, focamos nas entradas e saídas do sistema sem considerar a lógica interna. Testamos a funcionalidade do sistema como um todo, verificando se ele se comporta conforme esperado.

Caixa Branca

Nos testes de Caixa Branca, analisamos e testamos a lógica interna do código. Conhecemos a estrutura interna do sistema e verificamos se cada parte do código funciona corretamente.

Teste baseado em Risco

O Teste baseado em Risco envolve identificar e priorizar áreas do sistema que têm maior probabilidade de falhar ou que têm o maior impacto em caso de falha. Os testes são planejados e executados com foco nessas áreas críticas para garantir que os principais riscos sejam mitigados.