BDD não é Automação de Testes

O BDD (Behavior Driven Development) trouxe, com toda força na mudança de metodologia dos times para a agilidade, uma nova forma de levantar, entender, explicar, exemplificar requisitos.

Ele traz uma linguagem clara e objetiva como documento final, baseando a sua escrita no Gherkin com o famoso Given-When-Then (Dado-Quando-Entao).

Como a linguagem inserida é um comportamento, fica muito fácil reproduzi-lo se este é introduzido através de uma implementação [1]. Porém esta forma não é a melhor pois faz uma conexão muito forte com algo que não deveria: a automação!

Quando eu descrevo um comportamento através de uma implementação estou forçando a pessoa a seguir exatamente estes passos:

Dado que eu sou um cliente no Brasil
Quando eu clico no menu Eletrônicos
E eu clico no item TVs 49
E eu clico em TV LG 49 Smart
E eu insiro o CEP 91000-000
E clico no botão Calcular frete
Então eu vejo a mensagem "Frete Grátis!

Note que isso é, praticamente, um Caso de Teste. Todo mundo vai conseguir reproduzir! E como eu já escrevi no formato do Ghenkin fica mais fácil ainda eu automatizar! Só tem benefícios!

Não, não tem só benefícios! Por quê:

  • A manutenção da documentação, para com o código irá aumentar
  • O comportamento deve estar na forma de intenção para cobrir extensões de front-end (web, mobile, desktop, etc…)
  • O gerenciamento de massa de dados será através de arquivos sem trazer uma dinâmica de alteração de dados sem que arquivo seja alterado
  • O comportamento deve ser usado em qualquer nível de teste, não somente no teste de UI (User Interface)

E eu teria uma lista maior ainda! O que eu te peço é assistir o vídeo que está disponível na página da InfoQ Brasil sobre a minha palestra BDD não é Automação de Teste.

https://www.infoq.com/br/presentations/bdd-nao-e-automacao-de-teste

Os slides também estão disponíveis!

[1] https://pt.slideshare.net/elias.nogueira/o-que-evitar-na-escrita-de-criterios-de-aceite

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *