Tag Archives: Test Driven Development

Recomendação sobre TDD

O Bruno Pereira comentou em post passado sobre a dificuldade que ele teve em adotar TDD:

“Já tentei algumas vezes escrever os testes unitários no começo, mas simplesmente prefiro a abordagem de escrever os testes posteriormente, preferencialmente acompanhando o desenvolvimento das funcionalidades de negócio.”

Notei em diversas consultorias que isso é muito comum por diversos motivos, o principal a meu ver é justamente entender como começa o código do teste, em dois extremos: se depois que definiu o fluxo de processo de negócio de alguma forma [como UML, CRC ou mesmo apenas com UC] ou se já começa algum esboço em código sem ter discutido bem como funciona totalmente o negócio.

A primeira abordagem, definir todo o processo primeiro, deixa a grande maioria dos desenvolvedores confortáveis já que é algo tradicional que vinhamos fazendo, mas o problema é que invariavelmente descamba para BDUF.

A segunda abordagem, que está ligada ao desenvolvimento iterativo e incremental, já deixa um sentimento de que “algo está faltando” em grande parte dos times que tenho trabalhado. A resistência maior é deixar um sentimento de que não preparamos a arquitetura adequadamente e essa pode sofrer um revés num futuro próximo, claro que isso é uma bobagem para quem conhece como TDD funciona, mas é algo comum que tenho notado e precisa ser desmistificado.

Note que não estou falando aqui do sistema inteiro, apenas uma funcionalidade, mesmo assim a mudança cultural de quebrar uma funcionalidade em tarefas e ir desenvolvendo com “passos de bebê” é algo que dificulta a adoção.

Como sanar essas deficiências?

Precisamos de uma forma que conversassemos sobre a funcionalidade inteira mas que me permita ir avançando e atualizando conforme eu vá entendendo melhor como funciona.

Tenho trabalhado essas deficiências nos últimos times que peguei com BDD [Behaviour Driven Development] , iniciando a escrita das histórias [descrição daquela funcionalidade na visão de uma pessoa] seguindo o modelo de template que o Dan North sugeriu. O resultado é que os times avançaram porque eles notaram como iniciar satisfatoriamente com testes sem comprometer a velocidade do desenvolvimento.

O BDD nos trouxe os testes para o inicio de qualquer código, praticamente sem distinguir que se está testando antes e associado com outras práticas como “Programação em Par” facilitou a linguagem ubíqua do time.

Independente se é ágil ou tradicional eu tenho notado uma deficiência na coleta de informações, seja como User Stories ou Use Cases, onde os analistas de negócio, ou seja lá como são chamados nos times, não sabem pensar em negócio. Uma das coisas mais ridículas que vejo é o sujeito explicar para seu time uma funcionalidade com base em um DER ou outra estrutura técnica, dizendo coisas como: “a tabela tal, associada a entidade x”.

Tenho tentado corrigir isso nos times que enfrento como princípio básico, antes de qualquer coisa eu tento disciplinar a pensarem em negócio. Faço exercícios simples como questioná-los com “esqueçam de qualquer termo técnico” e “como essa funcionalidade é no papel?” ou “se não tivesse computador, como fariam isso?”, perguntas simples para instigar o raciocínio sobre a funcionalidade. Após esse exercício, escrevemos essa história em um arquivo e partimos para sua implementação.

Em março desse ano eu palestrei no primeiro encontro da XPCE sobre BDD, vejam os slides. Em termos de ferramentas você pode conferir como temos trabalhado em um projeto recente seguindo os posts do Jefferson Girão:

Parte 1 http://jefferson.eti.br/?p=96
Parte 2 http://jefferson.eti.br/?p=105
Parte 3 http://jefferson.eti.br/?p=139

Enfim, acredito que BDD seja um caminho natural para adoção de TDD por seu time já que eles terão código de teste, antes de qualquer coisa, na forma de negócio e o TDD já florescerá quando forem testar o modelo criado ou sugerido pelo código BDD. Ainda tem uma vantagem adicional, terão a documentação do sistema executável e comprovável.

Typically chemist’s shop can sale to you with discreet treatments for various heartiness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a highly complicated question. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take formula medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a formula is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Primeiro Encontro XPCE – Mudanças na grade

Devido a problemas de saúde do palestrante Igo Coelho, sua palestra foi cancelada e vai ser realizar no próximo evento provavelmente. A programação continua apenas com uma palestra:

09:00 – 10:20

Palestra: Começando a usar BDD e TDD
Resumo: Se você nunca entendeu como é que se escreve testes antes do código ou ainda não conseguiu uma forma satisfatória de seguir essa prática, aproveite essa oportunidade onde dissecaremos Test Driven Development até convencê-lo de que essa é a abordagem profissional adequada, além disso facilitaremos a compreensão em um nível mais abstrato com Behaviour Driven Development agilizando o mergulho de cabeça nessa forma de modelar código saudável e eficiente.
Palestrante: Christiano Milfont, coordenador do grupo XPCE e um cara que gosta de programar.

Local: Fortes Informática.

Endereço: Rua Antônio Fortes, 330, Bairro Edson Queiroz, próximo ao antigo Hiper Mercantil da Washington Soares. Localização com o Google Maps.

Data: Dia 28/03/2009 [sábado] das 09:00h as 12:00h na sala de treinamentos 1.

XPCE – Grupo de Extreme Programming do Ceará.

[http://groups.google.com.br/group/xpce]

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very complicated question. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take recipe medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may switch on erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Primeiro Encontro XPCE

Primeiro encontro XPCE

XPCE – Grupo de Extreme Programming do Ceará.

[http://groups.google.com.br/group/xpce]

Local: Fortes Informática.

Endereço: Rua Antônio Fortes, 330, Bairro Edson Queiroz, próximo ao antigo Hiper Mercantil da Washington Soares. Localização com o Google Maps.

Data: Dia 28/03/2009 [sábado] das 09:00h as 12:00h na sala de treinamentos 1.

Palestras

09:00 – 10:20

Palestra: Começando a usar BDD e TDD
Resumo: Se você nunca entendeu como é que se escreve testes antes do código ou ainda não conseguiu uma forma satisfatória de seguir essa prática, aproveite essa oportunidade onde dissecaremos Test Driven Development até convencê-lo de que essa é a abordagem profissional adequada, além disso facilitaremos a compreensão em um nível mais abstrato com Behaviour Driven Development agilizando o mergulho de cabeça nessa forma de modelar código saudável e eficiente.
Palestrante: Christiano Milfont, coordenador do grupo XPCE e um cara que gosta de programar.

10:40 – 12:00

Palestra: Integração Contínua
Resumo: Descubra o que projetos ágeis fazem para possibilitar que diversos desenvolvedores trabalhem juntos em um mesmo projeto, integrando suas contribuições de forma harmônica e segura.
Palestrante: Igo Coelho, fanático por desenvolvimento de software, novas tecnologias, internet, eletrônicos e tudo mais que um geek pode gostar. Com mais de 9 anos de experiência em desenvolvimento de Software trabalha atualmente na Fortes Informática como arquiteto de software com XP e Java. Casado, pai de dois filhos e mantem um blog em www.igocoelho.com.br.

Sorteio de livros e revistas.

Typically chemist’s shop can sale to you with discreet treatments for various heartiness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very complicated question. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take formula medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may switch on erectile dysfunction remedies or a suction device that helps get an hard-on. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.