3.1. Relembrar os conceitos de desenvolvimento orientado a testes, desenvolvimento orientado para teste de aceitação, e desenvolvimento orientado a comportamento

Introdução

Existem certas práticas de teste que podem ser seguidas em todos os projetos de desenvolvimento (Ágil ou não) para produzir produtos de qualidade.

  • Modelagem antecipada dos testes;
  • Prevenção, detecção e remoção antecipada de defeitos;
  • Garantir que os tipos de teste corretos sejam realizados no momento certo e no nível correto de teste.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

TDD, ATDD e BDD

  • São três técnicas complementares em uso entre as equipes do Ágil para realizar testes entre os vários níveis de teste;
  • Cada técnica é um exemplo de um princípio fundamental do teste – o benefício de testar cedo, pois o teste é definido antes do código ser escrito.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

TDD – Desenvolvimento orientado a teste

Usado para desenvolver código guiado por casos de testes automatizados

Adicionar o teste primeiroAdicionar um teste que captura o conceito do programador do funcionamento desejado de uma pequena parte do código
Realizar testeRealizar o teste, o qual falhará uma vez que o código não existe
CodificarEscrever o código e realizar o teste em um ciclo contínuo até o teste ser aprovado
RefatorarRefatorar o código após a aprovação do teste, reexecutar o teste para garantir que o teste continua passando após a refatoração do código
RepetirRepetir esse processo para a próxima pequena parte do código,
realizando os testes anteriores, bem como os testes adicionados

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

ATDD – Desenvolvimento orientado a teste de aceite

Define critérios e testes de aceitação durante a criação de estórias de usuários

Abordagem ColaborativaPermite que todas as partes interessadas compreendam como o componente de software tem que se comportar e o que os desenvolvedores, testadores e as partes interessadas precisam para garantir esse comportamento
Testes
Reutilizáveis
Cria testes reutilizáveis para teste de regressão. Ferramentas específicas apoiam a criação e execução de tais testes, muitas vezes dentro do processo de integração contínua
EficiênciaPermite a resolução rápida de defeitos e validação de comportamento da funcionalidade. Ele ajuda a determinar se os critérios de aceitação são cumpridos para a funcionalidade

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

BDD – Desenvolvimento orientado a comportamento

Permite que um desenvolvedor se concentre em testar o código com base no comportamento esperado do software

Facilidade de EntendimentoOs testes serem baseados no comportamento do software facilitam o entendimento para os outros membros da equipe e demais envolvidos
FerramentasFrameworks específicos de desenvolvimento orientado a comportamento podem ser utilizados para definir os critérios de aceitação com base no formato: Dado algum contexto inicial, quando ocorre um evento, em seguida assegurar alguns resultados
ReusoGera um código que pode ser usado por desenvolvedores para criar casos de teste. Ajuda o desenvolvedor a colaborar com outras partes interessadas, para definir testes de unidade acurados focados nas necessidades de negócio