Documentação de testes manuais

19 views
Skip to first unread message

Leonardo Alexandre Ferreira Leite

unread,
Sep 4, 2017, 5:48:12 PM9/4/17
to tdd-no-m...@googlegroups.com
Olá pessoal,

há situações nas quais vocês acham que não vale a pena automatizar um teste?
Se sim, que tipo de situações são essas?
Se sim, quando vocês executam testes manuais para esses casos, vocês deixam documentado o passo-a-passo pra executar esses testes manuais?
Se sim (documentam esse passo-a-passo de teste manual), ele costuma ser posteriormente utilizado para a reexecução do teste?

Grato!
Leonardo Leite

Osni Oliveira

unread,
Sep 4, 2017, 6:09:18 PM9/4/17
to tdd-no-m...@googlegroups.com
Quando um teste não dá um resultado consistente, por exemplo, falha de modo intermitente. Principalmente se isso se deve a fatores externos.
Por exemplo: um teste de integração que depende de um serviço estar no ar.
Se o teste passa às vezes e falha às vezes, e a causa é o serviço externo (algo que eu não controlo), o feedback que esse teste me dá não é tão bom. Em outras palavras: uma falha não significa que eu tenha mesmo um problema, pelo menos na "minha parte".
Num caso como esse, tenho caos, e automatizar o caos não me parece algo que traga valor. São aqueles casos clássicos de alguém recebendo emails diários com falhas nos testes, investiga algumas vezes e percebe que é esse o cenário. Daí passa a ignorar os avisos/falhas, até o ponto em que o teste perde totalmente sua utilidade - se o resultado sempre é ignorado, por sabermos que uma falha não significa muita coisa, para que executar o teste?
Nesse caso, podemos ter o teste, executá-lo de forma manual e analisar o resultado logo na sequencia. Se a falha for causada pelo serviço, já investiga na hora.
O ideal seria automatizar, claro. Se não dá, documentar o passo-a-passo e até mesmo como "interpretar/analisar" os resultados pode ajudar.
Particularmente, não sou muito a favor de documentar essas coisas, porque documentação assim fica obsoleta muito facilmente (consequentemente, inútil). É uma situação ruim, em que acabo indo pelo "menos pior".
Se alguém tiver alguma técnica ou ideia para resolver ou mesmo mitigar o problema, seria legal conhecer. :)

Abraço,
    Osni


--
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-real+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Maurício Aniche

unread,
Sep 5, 2017, 10:04:35 AM9/5/17
to tdd-no-m...@googlegroups.com
Oi Leo,

Não consigo pensar em situações não extremas que vc não queira automatizar o teste. 

Se vc vê valor no teste, me faz sentido automatizá-lo. Se a barreira for grande (como no exemplo dado pelo Osni), pode ser um motivo pra vc não conseguir fazer. Ou talvez um motivo pra por energia e tentar contornar o problema.

O Osni comentou sobre flaky testes e me lembrei: um paper recente escrito por uma galera daqui analisou flaky tests nos projetos da Apache e concluíram que simples refatorações conseguem corrigir mais da metade dos flaky tests existentes lá [1]. Interpreto o resultado como: se o teste é flaky, primeiro vou ver se não consigo corrigir do meu lado!


Um abraço,
Maurício

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.

--
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

Leonardo Alexandre Ferreira Leite

unread,
Sep 5, 2017, 1:36:14 PM9/5/17
to tdd-no-m...@googlegroups.com
Ah, depois que escrevi acho que lembrei de um exemplo interessante: tratamento de erros internos. Em geral eu não consigo pelo teste provocar um erro interno, que é algo que nunca deveria acontecer. Mas é preciso testar o tratamento desses erros internos.. pra isso, momentaneamente eu forço uma exceção no código. Uma alternativa pra automatizar esse cenário seria um backdoor pra provocar o erro interno... mas pode ser arriscado... ou vcs fazem isso?

Bom, esse foi só um exemplo, não precisam se apegar a ele, mas gostaria de ouvir a opinião de mais pessoas sobre o tópico da thread.

Grato!

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para tdd-no-mundo-real+unsubscribe@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

--
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-real+unsubscribe@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.
--
Maurício Aniche
Postdoc researcher
Delft University of Technology
@mauricioaniche

--
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-real+unsubscribe@googlegroups.com.

Maurício Aniche

unread,
Sep 6, 2017, 4:29:55 AM9/6/17
to tdd-no-m...@googlegroups.com
Oi Léo,

Talvez eu esteja simplificando muito na minha cabeça, mas não rola isolar o código numa classe, mockar e aí simular a exceção que quiser?

Um abraço,


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.

--
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

--
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.

--
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.

Leonardo Alexandre Ferreira Leite

unread,
Sep 6, 2017, 6:01:58 AM9/6/17
to tdd-no-m...@googlegroups.com
Good point. Talvez.

Embora talvez seja mais complicado... Qd rolar um erro interno, além de ver a conversão da excessão em soap falt, queremos ver se a transação deu roll back. Se eu fizer um teste de unidade, nem vai ter transação rolando, e a classe q trata erro interno talvez dê um erro por causa disso. Outro ponto é q a própria classe q trata o erro interno é invocada por um framework, q não estaria ouvindo as exceções num teste de unidade.

Mas talvez pudesse tentar desacoplar mais as coisas p testar unitariamente (embora nesse caso sinto q é mais fácil falar doq fazer.... Mas com certeza valeria a tentativa).

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para tdd-no-mundo-real+unsubscribe@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

--
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-real+unsubscribe@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.
--
Maurício Aniche
Postdoc researcher
Delft University of Technology
@mauricioaniche

--
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-real+unsubscribe@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

--
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-real+unsubscribe@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.
--
Maurício Aniche
Postdoc researcher
Delft University of Technology
@mauricioaniche

--
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-real+unsubscribe@googlegroups.com.

Leonardo Alexandre Ferreira Leite

unread,
Sep 6, 2017, 6:06:17 AM9/6/17
to tdd-no-m...@googlegroups.com
Pensando mais...
Mockando a exceção e mockando o transactor que meu exceptionHandler chama, acho q dá p criar sim um teste de unidade do exception handler. Eu ainda vou querer ver a coisa toda junta funcionando e talvez p isso eu tenha q fazer um teste manual. Mas ao já ter feito o teste de unidade antes, com certeza esse teste manual ficaria com menos responsabilidades e portanto mais simples de se executar e eventualmente reexecutar.

Leonardo Alexandre Ferreira Leite

unread,
Sep 6, 2017, 6:07:33 AM9/6/17
to tdd-no-m...@googlegroups.com
Mais um complemento sobre a necessidade do teste integrado: embora não devemos necessariamente testar os frameworks em nossos testes, é importante testar se estamos usando corretamente os frameworks.

Maurício Aniche

unread,
Sep 6, 2017, 7:48:08 AM9/6/17
to tdd-no-m...@googlegroups.com
É, acho que eu tentaria isolar o que é importante e precisa ser testado o tempo todo. 

Por exemplo, dar rollback na transação se uma exceção ocorrer me parece algo bem comum em uma app web. Vc provavelmente implementa isso num filtro ou coisa do tipo, certo? Me parece algo simples e que muda muito pouco ao longo do tempo. Ver a conversão do erro para um soap fault tb me parece algo que dá pra isolar bem na sua arquitetura.

E, claro, deixaria um ou outro teste mais de alto nível, pra garantir que as peças funcionam bem juntas.

Um abraço,

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.

--
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

--
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.

--
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

--
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.

--
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.
Reply all
Reply to author
Forward
0 new messages