O documento apresenta o Behavior-Driven Development (BDD), uma metodologia de desenvolvimento baseada em descrever o comportamento de funcionalidades através de histórias de usuário. O BDD utiliza um framework como o SpecFlow para executar as histórias como testes, melhorando a comunicação entre a equipe. É apresentado um exemplo prático utilizando o SpecFlow para converter alturas em pés para metros.
2. Renato Groffe
◦ Microsoft Most Valuable Professional (MVP)
◦ Multi-Plataform Technical Audience Contributor
◦ Mais de 15 anos de experiência na área de Tecnologia
◦ Articulista e Palestrante
5. Test-Driven Development (TDD)
◦ Desenvolvimento cíclico baseado na
codificação e execução de testes de
unidade
◦ Testes são escritos antes mesmo da
codificação de classes ou métodos
◦ Abordagem comumente associada às
metodologias ágeis
8. Dificuldades na adoção de TDD
◦ Verificar pontos isolados (métodos, classes) nem sempre é uma solução
eficiente ou garantia de sucesso
◦ Problemas costumam surgir durante a integração de partes relacionadas
◦ Testes de unidade são compreendidos apenas por pessoas com um perfil
mais técnico
9. E como superar tais dificuldades?
A abordagem conhecida como Behavior-Driven Development pode
ser uma resposta a esta pergunta
10. Behavior-Driven Development (BDD)
◦ Metodologia de desenvolvimento proposta por Dan North em 2006
◦ User stories (histórias) descrevem o comportamento de features
(funcionalidades)
14. Behavior-Driven Development (BDD)
◦ Frameworks permitem que as user stories sejam executadas como testes de
aceitação ou regressão a partir de uma IDE
◦ Cucumber → primeira ferramenta a suportar BDD e base utilizada pelos principais
frameworks
◦ Gherkin → mecanismo utilizado pelo Cucumber para interpretar uma história;
suporte à internacionalização
15. BDD - Benefícios
◦ Melhor comunicação entre os profissionais envolvidos em um projeto
◦ Documentação simples e gerada de forma dinâmica
◦ Facilita o compartilhamento de conhecimentos a respeito de um projeto
◦ User stories apresentam objetivos mais claros e bem definidos
◦ Instrumento de grande valia em equipes que seguem metodologias ágeis
16. BDD e a plataforma .NET
◦ A opção mais utilizada na atualidade é o framework gratuito SpecFlow
http://www.specflow.org/
◦ O SpecFlow trabalha com especificações de funcionalidades, baseando-se para isto
em user stories
◦ Cenários correspondem a diferentes casos de teste no SpecFlow
◦ A utilização do SpecFlow costuma acontecer em conjunto com outros frameworks
17. SpecFlow e outros frameworks
◦ MS Test, Nunit, xUnit.net, Selenium, Moq e Nsubstitute são algumas das
opções possíveis...
MS Test
20. Exemplo de uso do SpecFlow
◦ Funcionalidade para conversão de alturas em pés para o equivalente em
metros
◦ Classe a ser implementada:
◦ GitHub: https://github.com/renatogroffe/BDD_VS2017
21. Exemplo de uso do SpecFlow
◦ Casos de teste:
◦ Considerar 2 casas decimais para arredondamento da distância em metros
22. Exemplo de uso do SpecFlow
◦ Regras para a implementação da classe ConversorTemperatura:
C = (F – 32) / 1,8
K = C + 273,15