A importância dos testes no desenvolvimento de software

  • A Importancia Dos Testes

Desenvolver software não pode ser comparado a construir uma casa, um carro, etc. O processo se assemelha muito mais à construção de uma nave espacial!
Se uma só peça que constitui a estrutura da nave não estiver em conformidade, corre-se o risco de perder todo o trabalho.
Por isso as agências espaciais aplicam os mais rigorosos padrões de qualidade em todos os componentes da nave, desde os parafusos
até a qualidade do combustível a ser usada.
O desenvolvimento de software deve ser visto da mesma forma. Uma única linha mal escrita, num código com ótimo design pode afetar todo o funcionamento do aplicativo.
Portanto, a abordagem baseada na qualidade total de produção de software é algo que toda equipe de desenvolvimento deve adotar (em primeiro lugar!)

Muito se fala hoje em dia sobre as chamadas técnicas “agéis”: RUP, XP, Scrum e a nova onda, Lean. O mais estranho é que se você
perguntar a um perito em (XP,RUP,,etc) se a mesma funciona ele vai dizer:

  • XP funciona com toda certeza, desde é claro … que você tenha uma equipe “ágil”!
  • Scrum é maravilhoso e funciona muito bem, desde que… é claro… você tenha uma equipe “ágil”!

Todas as abordagens modernas exigem um denominador comum… “agilidade”.
Mas o que é ser ágil? É seguir uma metodologia “ágil”? Não!!! Ser ágil é seguir com devoção o princípio básico da qualidade
total no desenvolvimento de software.
Metodologias e processos vem e vão: Cascata - RUP - XP - Scrum - Lean, não se apeguem demais a essa sopa de letrinhas.
Podem criar novas técnicas ágeis, ninjas, jedi´s, usar CheckStyle, ferramentas de monitoração de testes, PMD, os frameworks de mercado Hibernate, EJB, JSF, Spring, etc… mas nenhuma delas vai funcionar com a máxima eficiência se a equipe não tiver uma mentalidade focada na qualidade.
É inadmissível as pessoas estudarem RUP, XP, Scrum, etc se não sabem nem o que é TDD, DDD, Refactoring, Design Patterns e
conhecer bem POO. Se forem por esse caminho, estão fadadas ao fracasso, pois todas essas metodologias foram criadas
"por/e para" equipes de alta performance/desempenho/qualidade. Se vc é um mal motorista, não importa se guia um Fusca ou uma Ferrari, vai continuar fazendo besteira no transito…

E onde entram os testes nisso?

A indústria de software e o tal movimento ágil provaram por A + B que os testes são requisitos essencias para se garantir
a qualidade. É o primeiro passo para o sucesso real de uma equipe de desenvolvimento de software.
Antes de aprendermos XP, Scrum, RUP, Lean, PMI e outros businness words, devemos ter a humildade de nos perguntarmos:

  • “Estou desenvolvendo software da forma correta?”
  • “Minha equipe desenvolve software da forma correta?”
  • "Existe um jeito melhor de se desenvolver software?"
    Não invertam a lógica natural das coisas. Antes de aplicar as metodologias/processos/tecnologias, devemos mudar a cultura de desenvolvimento da equipe, para que ela obtenha um crescimento gradual em qualidade. Lembrem-se de um dos lemas do manifesto ágil: foco nas pessoas, e não nos processos…

Por fim, se há pessoas que acham que testes são enfadonhos, um lembrete: quando compram qualquer produto, exigem que o mesmo tenha a máxima qualidade, e se não tiver, vão ficar revoltadas e “usar os seus direitos de consumidor”…
Se para comprar produtos você exige tal nível de qualidade, tenha o bom senso de desenvolver software com o mesmo rigor, pois outros estarão usando/dependendo dele…

Grande texto.

Obrigado por compartilha-lo conosco.

Gostei bastante também, meus parabéns

Isso ai, incorporar o processo a metodologia.

Não adianta dizer que sua equipe utiliza uma metodologia ágil se ela não mantém o processo ágil no nível operacional da coisa.

Esse post me remeteu imediatamente aos pontos do Manifesto Ágil:

  • Atenção contínua a excelência técnica e bom design para aumentar a agilidade.
  • Nossa maior prioridade é satisfazer o cliente através de constantes entregas de software funcionando.

Abs.