Welcome to GASP Sign in | Join | Help

Paulo Morgado

Tudo sobre Arquitectura de Software

Localização dos Visitantes

  • Localização dos Visitantes

Livros

  • LINQ com C#

Eventos

Renûncia

As opiniões e pontos de vista expressos neste sítio são minhas e podem não reflectir as da Microsoft, do meu empregador, ou de qualquer comunidade a que pertença. Qualquer código ou opinião é oferecido sem qualquer garantia. Os produtos ou serviços mencionados são comprados por mim, disponibilizados pelo meu empregador ou pelo fabricante/vendedor o que não influencia em nada a minha opinião.

Desenvolvimento Guiado por Testes - É bom ou mau?

 

De uma forma rápida: MAU.

Tenho vindo a pensar nisto já há algum tempo, e ler o blog do Michael Puleio [^] [^] fez-me pensar ainda mais.

O que é habitualmente referido por Desenvolvimento Guiado por Testes (TDD - Test Driven Development) é, na verdade, Desenvolvimento com Testes Primeiro (TFD - Test First Development), o que é algo estúpido tendo em consideração ferramentas como o Visual Studio 2005 Team Edition for Software Developers (e Professional quando Orcas saír).

Agora que o TFD está afastado, o que eu implico mesmo é com a parte Guiado por Testes (ou Desenvolvimento Guiado por Exemplos (EDD - Example Driven Development) para quem gosta de outros sabores). Vamos lá, alguém está a desenvolver software guiado pela necessidade de fazer testes? Eu não estou.

O desenvolvimento guiado pelos testes também leva a que o software seja desenhado para ser testado e não para ser funcional, escalável e outras coisas mais interessantes. E se se usarem ferramentas como o TypeMock.Net, pode-se sempre testar o software sem que tenha de ser desenhado para ser testado.

O meu desenvolvimento de software é guiado pela necessidad de cumprir com os requisitos. Como é que o faço? Assistido por testes. Portanto, Eu estou a praticar Desenvolvimento Assistido por Testes (TAD - Test Assisted Development). (Será que devo registar a patente?)

Posted: Friday, March 30, 2007 12:09 AM by Paulo Morgado

Comments

djulio said:

"O que é habitualmente referido por Desenvolvimento Guiado por Testes (TDD - Test Driven Development) é, na verdade, Desenvolvimento com Testes Primeiro (TFD - Test First Development), o que é algo estúpido tendo em consideração ferramentas como o Visual Studio 2005 Team Edition for Software Developers (e Professional quando Orcas saír)."

O TFD é estúpido tendo em consideração o VS ou o VS é estúpido ou (ainda) não se aplica ao TFD? E porque é que uma técnica é estúpida só porque uma ferramenta não se adequa a ela?

"O desenvolvimento guiado pelos testes também leva a que o software seja desenhado para ser testado e não para ser funcional, escalável e outras coisas mais interessanes."

Podias dar um exemplo de um código que, por ter sido desenhado para ser testado, deixa de ser funcional, escalável, etc?

# March 30, 2007 9:32 AM

Paulo Morgado said:

Na minha opinião (e é apenas disso que se trata) é estúpido estar a fazer um teste que não compila. É tempo perdido.

É completamente diferente de a classe que estou a implementar se constituída apenas por stubs. Com stubs, já tenho uma API e isso já é testável.

O VS só é estúpido naquilo que não faz ou faz mal, não no que nos ajuda e aumenta a produtividade. Embora haja quem diga que nos torna estúpidos (http://charlespetzold.com/etc/DoesVisualStudioRotTheMind.html).

A Web Client Software Factory, por exemplo, foi desenhada para ser testável com a agravante de funcionar em cima do ASP.NET que não foi desenhado para ser testável (e com graves deficiências na extensibilidade e injecção de comportamentos). Quando se entra por aí, as repercussões são imprevisíveis.

Qual é a utilidade do TFD? Como é que se valida? Se eu te disser que faço TFD, como é que validas se estou a fazer TFD ou TAD? Com uma entrada no build server?

# March 30, 2007 10:29 AM
Anonymous comments are disabled