Marcos Sousa’s Blog

Blog sobre desenvolvimento de software
  • rss
  • Home
  • Sobre

Testes, porque não fazer?

Marcos Sousa | October 10, 2008

Observando o comportamento em vários projetos, pude perceber que grande parte das pessoas não dão muito valor aos testes, e quando valorizam atribui a responsabilidade de testar a outras pessoas. As coisas ainda ficam piores quando chega a pequenas empresas. Pergunte ao dono da padaria que você toma café todos os dias, se eles testaram alguma funcionalidade do software que eles tem antes de colocar em produção? Se a versão tiver algum problema e corromper os dados, a culpa sem sombra de dúvidas será do time de desenvolvimento.

O problema começa no modo como as pessoas projetam o software, dentro de um processo Waterfall, onde cliente não é parte do processo. Neste contexto, o cliente diz o que deseja e depois de 9 meses ele tem um resultado: um software produzido nas “coxas”.

Mesmo em projetos onde existem práticas de testes, muitos deles ainda são ineficientes. O usuário apenas valida as “telinhas” do sistema, e muito pouco em termos funcionalidades. Infelizmente, poucos destes usuários testam o comportamento de entradas de dados inválidos, por exemplo, um campo de CPF aceitar “-1″ como valor, ou um espaço em branco ser um conteúdo válido para um campo obrigatório. Como resultado, o sistema chega a produção, dados inconsistentes são inseridos e a culpa é do desenvolvedor.

Testes unitários é algo que muitos desenvolvedores ainda acham inútil, quando fala em integração contínua, aí acham exagero. Quer um exemplo, pergunte à um programador PHP se ele faz teste unitários. “Faço apenas sites, não sistemas, não preciso disso”, nem fazem idéia de que existe o PHPUnit para este propósito. Mesmo dentro de um obsoleto modelo cascata, cheio de casos de usos, porque não criar testes unitários pelo menos para validar os fluxos principais e alternativos? Pelo menos o fundamental pode ser controlado por um sistema de integração contínua.

Meu objetivo não é falar que práticas, como TDD, são perfeitas. O que eu quero chamar a atenção é importância que o teste tem dentro de um processo de desenvolvimento de software. Aparentemente, gastar algum tempo a mais fazendo testes, pode ser mais eficaz do que ter que corrigir uma falha que foi para produção por pura falta de atenção. Testar não é fácil e rápido, porém corrigir bugs pode ser mais demorado ainda. ;)

Categories
TDD, Testes
Tags
Desenvolvimento, TDD, Testes, Waterfall
Comments rss
Comments rss
Trackback
Trackback

« Vídeo Aulas: Seam Extras partes 6 e 7 Seam 2.1 released! »

6 Responses to “Testes, porque não fazer?”

  1. Christiano Milfont says:
    October 10, 2008 at 6:01 pm

    TDD não é perfeito mas é o melhor que temos hoje. É inadmissível mas grande parte gritante das empresas sequer chegaram ao RUP, quanto mais um modelo mais ágil, cascata ruleia como mainstream.

    Reply
  2. Rafael Ponte says:
    October 10, 2008 at 6:06 pm

    Está demorando mais do que eu imaginava as empresas e desenvolvedores entenderem que testes não são uma perda de tempo, mas sim um *investimento* de tempo.

    Reply
  3. Augusto says:
    October 11, 2008 at 12:14 am

    Concordo sobre o valor dos testes no software (apesar de ser um dos que não gostam de testar tudo), mas não acho que somente o desenvolvedor deva fazer isso. Creio que o desenvolvedor deve fazer um teste superficial e um equipe de testes poderia realizar testes mais detalhados.

    Reply
  4. Marcos Sousa says:
    October 11, 2008 at 3:12 pm

    É Rafael uma pena mesmo que os testes ainda são valorizados como deveriam. Mas acredito que vários cases que estão surgindo irão estimular times de desenvolvimento.

    Eu concordo contigo também, tanto que falei que a tarefa de testes não deve ser somente atribuída à equipe de desenvolvimento e sim todos devem estar envolvidos. Acredito também que, o que puder ser feito de forma automatizada deve ser feito, assim reduz tempo e aumenta a confiabilidade.

    Reply
  5. Rafael Igor says:
    October 11, 2008 at 10:22 pm

    Ótimo post. Parabéns, Markin!

    Reply
  6. Tales Porto says:
    June 13, 2009 at 8:56 pm

    Realmente é muito chato testar tudo, mas como já foi dito é um investimento de tempo que evita horas gastas posteriormente corrigindo bug’s.

    Ótimo post Marco!!!

    Reply

Leave a Reply

Click here to cancel reply.

Núvens de tags

Agile Agile Conference Facelets GET Hibernate incompatiblidades Itext Java Java EE Java Magazine Java Server Faces JavaServer Faces Java Vídeo Magazine Jboss jboss-seam-itext Jboss Developer Studio Jboss Seam JDBC type: 7 JPA JSF linux mare marébh maré de agilidade Microsoft No Dialect mapping for JDBC type: 7 Page Actions PostGreSQL RHDS rich:fileUpload RichFaces Rich Faces RichFaces 3.2 Scrum Seam-gen Seam Framework Seam PDF Spring Spring Framework TDD URL Rewrite URL User Friendly Variable Resolver Vídeo Aula XP

Meus últimos tweets

  • Nos encontraremos lá :) RT @rodrigodealer No avião. Embarcando para o #qconsp. 7 hours ago
  • RT @steppat: great #ANTLR introduction: http://vimeo.com/groups/29150/videos (via @fmeyer) 1 day ago
  • @rafaeligor ok, now look this: http://meme.yahoo.com/marcossousa/p/mC4SHdY/ 1 day ago
  • I got it! RT @emerleite Gmail Priority Inbox is useless if you use to do Inbox Zero aproach. #gmail #inboxzero #priorityinbox 2 days ago
  • Inception is great, engineers must love it! A movie full of concepts, math and engineering. It's worth it! 4 days ago
  • Interessante o post do @pcalcado sobre liderança http://j.mp/bzSytt 4 days ago
  • Playing Cilada puzzle with my nephew and laughing a lot. #funny #childparty 4 days ago
  • Eu não :) RT @cmilfont: Maré de Agilidade do ano passado foi excelente, vai perder desse ano? http://j.mp/cyKeOg 4 days ago
  • Interesting post about generic relationships using Django http://bit.ly/dtMYfK #django 6 days ago
  • Pelo menos seriam mais objetivos :) RT @rodrigoy: @plentz Se desse eu leria emails como twitter... 6 days ago

Anúcios

Categorias

  • .net
  • Agile
  • Agile Conference 2009
  • Artigos
  • Atualidades
  • c++
  • cinema
  • Django
  • DRY
  • Eventos
  • Flex
  • Formula 1
  • Hibernate
  • IDE
  • Inutilidades
  • Java
  • Java EE
  • Java Server Faces
  • Jboss Seam
  • linux
  • Mac OS
  • Microsoft
  • Open-source
  • Palestras
  • Python
  • RAD
  • RIA
  • RichFaces
  • Scrum
  • Software Livre
  • Spring
  • Spring Annotations
  • TDD
  • Testes
  • Uncategorized
  • Vídeo Aulas

Links recomendados

  • AJ Soluções
  • Ary Júnior
  • Erko Bridee
  • Fragmental
  • Fragmental TW
  • Guilherme Chapiewski
  • Handerson Frota
  • Jeveaux
  • Juliano Carniel
  • Onipresente
  • Passes de Letra
  • PortalJava.com
  • Rafael Carneiro
  • Rafael Pontes

DevMedia Post’s

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox