É incrível como ainda existem pessoas contra testes unitários

116 views
Skip to first unread message

Paulo Henrique Lerbach Rodrigues

unread,
Nov 30, 2018, 11:34:49 AM11/30/18
to tdd-no-m...@googlegroups.com
Meus caros,

Confesso que já faz algum tempo que não acompanho a academia sobre assuntos afetos a testes.

Mas estou passando um pendenga sacana com um colega que só quer escrever testes depois que o MVP for entregue...

Ele alega que testes aumentam o tempo de projeto e os custos...

Então vem a minha pergunta, como a academia e a indústria tem se posicionado recentemente sobre os custos e prazos de projetos em relação a TDD/Testes automatizados? Se tiverem uns links de referência em inglês eu agradeço demais!

Eu acho essa discussão tão 1990 que até dá desanimo :-D

Muitíssimo obrigado,
PH

Rodrigo Morais

unread,
Nov 30, 2018, 11:47:48 AM11/30/18
to tdd-no-m...@googlegroups.com
Fala Paulo,

Meus 2 cents.
Como a academia está fazendo, nāo sei.
Eu acho que tudo depende do projeto e de quanto MVP é seu MVP. Geralmente MVP tem menos testes, o mínimo possível.
Se seu projeto tem pontos onde erros serāo graves como risco de morte, transaçāo financeira, .... Eu sugiro testar estes pontos.
Caso o contrário ter o mínimo de testes possível, IMHO, é OK. Por exemplo, na minha atual empresa estamos mudando a nossa arquitetura para microfrontends e na primeira versāo nossa cobertura de testes era menor de 30%. Agora que validamos a ideia e decidimos seguir com o projeto estamos escrevendo mais testes e aumentando a cobertura.

MVP é sobre desenvolver algo (produto, feature, ...) rapidamente e obter feedback. Nesse processo pequenos bugs sāo aceitáveis.

Abraço,

Rodrigo Morais

--
Você recebeu essa mensagem porque está inscrito no grupo "TDD no mundo real" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para tdd-no-mundo-r...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.


--
Rodrigo Morais

Mário Meyrelles

unread,
Nov 30, 2018, 12:48:59 PM11/30/18
to tdd-no-m...@googlegroups.com
Acho que depende muito do risco envolvido. Se tiver algo complexo como um cálculo dependente de muitos parâmetros, fica mais rápido fazer testes mesmo. Mas não sei se precisa ter cada coisa não. Eu, hoje em dia, como uso mais F#, sinto cada vez menos necessidade de pensar em testes porque eu uso uma filosofia que o pessoal denomina "type-driven design".





Message has been deleted
Message has been deleted

Veranildo Veras

unread,
Dec 2, 2018, 9:52:00 AM12/2/18
to TDD no mundo real

Paulo, boa tarde!


O que eu costumo ver, é a indústria distorcendo e prescrevendo as coisas em benefício próprio.

Algumas faculdades já fizeram a adoção do TDD como disciplina, não sei lhe informar se há abrangência até o nível de custos.

Testar deveria ser cultural, se sua a equipe tem esse apelo, não deveria haver discussões sobre: É caro testar, até por que eles entenderiam muito bem os benefícios.

Quando você cria uma unidade a partir do teste, ela nasce testada e testável. Quando você cria uma unidade sem teste ela é testável ainda que seja pela mão humana “Existe uma diferença entre nascer e ser testável.”.

Sobre MVP, algumas pessoas usam os mesmos artefatos da apresentação para dá continuidade ao projeto. Eu participei de um projeto que adotou essa abordagem, acabou transformando-se em um monstro indestrutível.

Quanto aos custos de testes, este livro fala um pouco no assunto: https://www.amazon.com/xUnit-Test-Patterns-Refactoring-Code/dp/0131495054, a minha referência sobre TDD aqui no Brasil continua sendo o Mauricio Aniche, acho que ele poderia colaborar com mais informações.

Maurício Aniche

unread,
Dec 5, 2018, 5:30:18 AM12/5/18
to tdd-no-mundo-real
Oi Paulo,

Dando uma outra perspectiva aqui: Teste custa caro. Testes mais
avançados (e.g., por meio de machine learning, fuzzing, etc) mais
ainda.

Acho que o contexto é fundamental. Muito software por aí não requer
práticas caras de teste. Provavelmente o desenvolvedor sozinho
consegue pensar nos 3-5 casos mais importantes de serem testados, e
isso já dá o nível de qualidade que aquele software precise (afinal,
nem todo software precisa ser 100% bug free). Se vc me perguntar hoje
se eu acho necessário fazer TDD e testes de unidade e testes de
integração e testes de sistemas para uma simples web app cheia de
CRUDs, eu provavelmente diria que testes de sistema feitos pelo
próprio dev já dará a segurança necessária. Se vc estiver
desenvolvendo uma aplicação que não pode falhar (um robô que opera
pessoas), diria então que vc precisa, além de tudo, investir em mais
técnicas pros seus testes.

Em resumo: testes nos dizem se o software está dentro da qualidade que
esperamos. Então, antes de discutir qual prática de testes vc precisa
aplicar, discuta qual o nível de qualidade que vc precisa pra aquela
app.

Faz sentido?

--
Maurício Aniche
Delft University of Technology
http://www.mauricioaniche.com

Veranildo Veras

unread,
Dec 8, 2018, 1:20:30 PM12/8/18
to TDD no mundo real
+1
Reply all
Reply to author
Forward
0 new messages