Testando código legado e difícil de testar com a técnica Golden Master Testing

37 views
Skip to first unread message

Rafael Ponte

unread,
Jul 31, 2017, 11:06:56 PM7/31/17
to tdd-no-mundo-real
Opa pessoal,

Alguém já pegou um código complexo, ilegível e difícil de testar e acabou aplicando essa técnica?


Eu já exercitei código para poder montar cenários com base nos resultados, mas não havia aplicado a prática by the book!

Um abraço,
--
Rafael Ponte
TriadWorks | Formação Java
http://cursos.triadworks.com.br

Maurício Aniche

unread,
Aug 2, 2017, 3:55:16 AM8/2/17
to tdd-no-m...@googlegroups.com
Oi Rafael,

Obrigado pelo post!

Geração automática de testes é um hot topic na academia. E bem legal de ver sua implementação; simples e funcional! Existem ferramentas como o Randoop [1], que também geram testes baseados em entradas aleatórias. 

O problema é que você pode ser azarado e ainda assim não cobrir todo seu código. Por isso, há estratégias mais modernas, como por exemplo, algoritmos baseados em busca aliados a cobertura de código: dado um branch que você quer cobrir, o algoritmo busca a solução por meio de um algoritmo genético. A implementação mais famosa pra isso em Java é o EvoSuite [2]. Ele vai tentar gerar testes com 100% de cobertura pra vc.

Em algum momento do post, entendi que você também queria testar ifs complicados. Em ifs, minha estratégia geralmente é MC/DC (Modified Condition/Decision Coverage). Ela me ajuda a pensar nos cenários que realmente devo exercitar no meu if complicado, sem precisar exercitar todos, pq senão é demais. Se você procurar no Youtube, tem vídeos legais explicando como MC/DC funciona. Depois, boundary analysis. Ou seja, análise das fronteiras; if(n>10), 10 é uma fronteira interessante nesse if. Googla por in and out, on and off points. Eu geralmente escrevo um teste para o in point.

Espero ter contribuído!


Um abraço,
Maurício

--
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.
--
Maurício Aniche
Postdoc researcher
Delft University of Technology
@mauricioaniche

Rafael Ponte

unread,
Aug 2, 2017, 11:01:02 AM8/2/17
to tdd-no-m...@googlegroups.com
oi mauricio,

incrivel como você sempre tem a acrescentar em todos os tópicos sobre testes. Eu vou pesquisar sobre os temas que você sugeriu, em especial sobre MC/DC.

Um abraço e valeu pelo feedback,
Reply all
Reply to author
Forward
0 new messages