Newsletter
Nome:
E-mail:

Artigos

| TI24x7 Cursos Online

Desenvolvimento Orientado a Testes

09/02/2011

Introdução

Ola pessoal! Hoje abordarei um assunto bastante interessante, que tem me chamado bastante atenção, não é um tema novo, existe desde 1999 (criado concomitantemente com a Extreme Programming), tornando-se conhecido de fato em 2002 pelo livro de Kent Beck (Test-Driven Development by Example). Ultimamente também se tem usado em outras metodologias de projeto além da XP.

Test-Driven Development ou Desenvolvimento Orientado a Testes é uma técnica peculiar de desenvolvimento, que quebra o paradigma normal de programação, isto é, baseia-se em um ciclo curto de repetições orientando-se por testes antes, durante e depois da codificação.

Como assim?

O desenvolvimento é dirigido por testes de unidade automatizados que definem os requisitos do código antes do mesmo ser criado. Esses testes contem asserções* que podem ser verdadeiras ou falsas. Esta maneira peculiar de desenvolver pode parecer confusa em primeiro plano, ao final do artigo espera-se que essas informações fiquem mais claras.

As Cores

As Cores do TDD são importantes iniciamente, em breve caro leitor, você estará apto a intendê-las.

  • Vermelho
  • Verde
  • Azul

As Etapas

  1. Escreva um caso de teste;
  2. Faça o teste falhar;
  3. Construa o código encima do teste falhado;
  4. Faça o teste funcionar;
  5. Refatore o código.

Escrever testes antes do código?

Sim, testes asseguram funcionalidade do programa, dando confiança ao programador, escrever o teste antes do código faz com que tenha-se olhos do usuário, alem de que, o TDD preocupa-se com softwares que sempre funcionam.

TDD nos leva a buscar e implementar boas práticas de programação. Para se realizar um bom teste de unidade, e antes do código estar escrito, é necessário que nossas classes sejam realmente coesas, que elas tenham um baixo acoplamento, que seus métodos sejam também coesos.

Lembrais deste dizer: “Desenvolvedor que não testa, é como praticar tiro ao alvo de olhos vendados.“

Requisitos Recomendados

- Visual Studio 2010 + Framework 4.0

Vamos a parte prática,

Abra o Visual Studio 2010, crie um novo projeto e selecione Test Project.

Nossa missão é criar um programa que calcula a média de um aluno, bem simples, o que realmente nos interessa é o fundamento do desenvolvimento orientado a testes e não a complexidade do código.

Feito isso, a seguinte telá estará disponível

TDD

Vamos criar um pequeno caso de teste. É necessário pensar em testes antes da implementação. Faremos então, o teste, que logicamente falhará (não compilará), pois nem a classe nem o método foram criados.

TDD

Criaremos então a classe Media, com o método calcular. Basta clicar na solução e adicionar no menu Code, o item “Class“ e implementá-la.

TDD

Executando a aplicação, o teste nos mandará um VERMELHO , nada de pânico, estamos indo pelo caminho certo.

TDD

Vamos ajustar o código agora, o que falta? Dividirmos os valores por 2, para o resultado da soma ser 10 e passar no teste.

TDD

Executando novamente o teste...

TDD

Oba! Ganhamos um VERDE , isto é, o nosso programinha foi testado em iterações antes de ser implementado, pode parecer um exemplo simplista, porém, esse é o feeling do TDD, testes antes de implementar, e fazer a implementação de acordo com o resultado dos testes, gradativamente.

A ultima etapa, é a refatoração, o que podemos melhorar, remover duplicações de código e otimizar o desempenho? Bom, nesse caso, pouca coisa pode ser feita, em função da simplicidade do mesmo, porém podemos remover a variável media do método de calcular.

TDD

Ganhamos um AZUL , completando o espectro de cores TDD \o/

Regrinha básica:sempre execute o caso de teste, por mais diminuta que seja a modificação.

Finalizando

O desenvolvimento orientado a testes quando bem utilizado gera um código com uma excelente qualidade. O primeiro contato pode ser um pouco confuso, porém, com a prática vem a perfeição! Use-o com sabedoria :)

*Asserção significa, afirmação, argumento, alegação, declaração e etc.




Colunista

Marcelo Schneider

Estudante de sistemas de informação, curioso nato por códigos e tecnologias, com conhecimento em desenvolvimento web e desktop. Interesse e conhecimento em aplicações ricas para internet e gerência de projetos.
© Copyright 2011 - Todos os direitos reservados. Proibida a reprodução parcial ou total do conteúdo deste site.
Como Funciona Formas de Pagamento Logo Ebit Compra Segura

TI 24x7 - O Maior portal de cursos online especializado em TI do Brasil