Aperte "enter" para ver os resultados ou "esc" para cancelar.

Foque em um problema de cada vez com o behavior driven development

É frequente ouvir dúvidas de programadores sobre não saber o que deve ou não ser testado em uma aplicação, que nome dar aos testes, até onde seus testes devem ir ou até dizendo que é uma perda de tempo codificar testes quando poderiam estar implementando funcionalidades da aplicação.

 

Mas quem trabalha a muito tempo com programação sabe que o tempo investido desde o começo do projeto salva de muita refação. Usar os desafios de um projeto para melhorar as habilidades é a melhor forma de avançar a cada novo trabalho. É melhor gastar um dia inteiro aprendendo como lidar com aquele cenário do que nunca aprender e sofrer tudo de novo para cada nova aplicação.

 

Para incorporar essa metodologia em projetos, nasceu o behavior driven development (BDD), desenvolvimento orientado por comportamentos, uma técnica de desenvolvimento ágil em que todos os agentes participam da criação desde o primeiro dia do projeto.

 

O que é ser behavior driven (BDD)?

 

behavior driven development

 

Criar código é gerar interações entre desenvolvedores e usuários, e é isso que o BDD promove. A ideia é criar exemplos constantes que mostrem de forma ativa o comportamento do software, desde os primeiros passos, para que ele seja avaliado pelos seus usuários.

 

Testes são criados constantemente para provar as funcionalidades da aplicação, receber feedbacks rápidos e realizar mudanças até mesmo antes de começar a desenvolver. Mas, diferente do test driven development, o behavior driven procura focar mais no comportamento dos usuários com relação aos testes, priorizando e validando cada problema de uma vez.

 

Os testes passam a ser compostos por duas partes: a definição da funcionalidade implementada e os cenários (casos de teste) que irão ajudar a validar essa funcionalidade. Desta forma, fica claro e perceptível para todos qual a vantagem que uma nova funcionalidade trará ao sistema.

 

Isso permite que os desenvolvedores foquem em por que o código deve ser criado, ao invés de detalhes técnicos, e ainda possibilita uma comunicação eficiente entre as equipes de desenvolvimento e testes.

 

O processo de testes te mantém focado em um problema por vez

 

Para organizar cada tarefa e a equipe trabalhando no projeto, os testes são uma ótima ferramenta. Isso porque, a cada resposta negativa ou confusão, todos trabalham em cima de um mesmo objetivo. O grande lance é que, no behavior driven development, qualquer pessoa envolvida no projeto pode ajudar a criar os testes, pois todos estão acompanhando os processos desde o início.

 

É muito comum uma equipe de desenvolvedores se perder no objetivo para o qual estão trabalhando e sair resolvendo tudo o que encontram pela frente. Para a saúde de um projeto, entretanto, a melhor coisa é focar em uma solução por vez e destrinchá-la até que não seja mais preciso voltar a ela por um bom tempo.

 

Planejar em pequenos círculos e quebrar problemas em partes menores continua sendo a forma mais efetiva de trabalhar com programação. Abandonar os testes é a razão chave para a grande maioria dos impasses encontrados no caminho.

 

É útil pensar na sua aplicação como um modelo, e não uma interface

 

Um aplicativo é o código que faz as coisas rodarem e não apenas a aparência. O código modelo precisa ser aquilo que começa a ser criado e testado, para depois passar para a interface. Quando se trabalha com testes, isso acaba sendo esquecido, deixando sempre a interface como primeiro plano.

 

É importante lembrar de testar o funcionamento da plataforma para além de suas funcionalidades visíveis. Depois de ver todas as funcionalidades principais funcionando do jeito que deveriam e do jeito que o usuário precisa é que será possível criar uma interface que condiz com elas e facilita seus usos.

 

Com um behavior driven development trabalhado do jeito certo, é possível melhorar a comunicação entre equipes, compartilhar conhecimentos, ser dinâmico, flexível e mais eficiente na entrega do produto final.

 

4.3 (85%) - 4 votos