Slides de apresentação realizada para o GDG São Paulo no dia 25/07/2016.
Tópicos abordados:
- Testes de software e sua importância
- Behavior-Driven Development
- Exemplo prático utilizando o Visual Studio 2015 e o framework SpecFlow
9. Cenários comuns – área de software
◦ Pressões por rápida entrega
◦ Prazos muito curtos
◦ Equipes reduzidas
◦ Mudanças frequentes em requisitos
◦ Áreas de Negócio e Técnica não falam mesma língua
◦ Testes não são levados tão a sério como se deveria
11. Metodologias ágeis
◦ Conciliar tempo reduzido com mudanças frequentes ao longo do
projeto
◦ Busca de equilíbrio entre qualidade e produtividade
◦ Melhoria na comunicação entre os envolvidos em um projeto
◦ XP (Extreme Programming) e Scrum são os exemplos mais famosos
12. Metodologias ágeis e testes de unidade
◦ Testes de unidade são uma forma rápida e flexível de se validar
classes e métodos
◦ XP foi pioneiro na adoção desta prática
◦ Foram a base para o surgimento de TDD (Test-Driven
Development)
13. Testes de unidade bem definidos
◦ Rapidez na execução
◦ Implementados com facilidade, a partir de um framework pré-
existente
◦ Automatizados e repetíveis
◦ Possibilitam reuso em ações futuras
14. 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
17. 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
18. E como superar tais dificuldades?
A abordagem conhecida como Behavior-Driven Development pode
ser uma resposta a esta pergunta
19. Behavior-Driven Development (BDD)
◦ Metodologia de desenvolvimento proposta por Dan North em 2006
◦ User stories (histórias) descrevem o comportamento de features
(funcionalidades)
23. 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
24. 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
25. 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
26. SpecFlow e outros frameworks
◦ MS Test, Nunit, xUnit.net, Selenium, Moq e Nsubstitute são algumas das
opções possíveis...
MS Test
29. Exemplo de uso do SpecFlow
◦ Funcionalidade para conversão de alturas em pés para o equivalente em
metros
◦ Classe a ser implementada:
30. Exemplo de uso do SpecFlow
◦ Fórmula a ser considerada:
◦ Casos de teste:
◦ Considerar 4 casas decimais para arredondamento da distância em metros
Distância em m = Pés * 0,3048