POC — Prova de Conceito — para Automação de Teste

Leonardo Galani
assert(QA)
Published in
4 min readJun 17, 2023
Crash Test FSTOP / GETTY IMAGES

Esse post foi feito em 2017 e acredito que tenha envelhecido muito bem.

6 anos depois, continua sendo uma boa dica para iniciantes em automação de teste, pois assim como eu, não seguiram o caminho que todo desenvolvedor de software passa para ser minimamente produtivo desde o começo do processo.

Felipe Knorr Kuhn que resgatou essa perola por motivos de huE… obrigado :)

Digam olá ao Leonardo de 2017 :D

— -

Esse não é um post para justificar alguma meta de 2017 de escrever mais… É algo que só agora eu consegui amadurecer em um certo nível para tentar transmitir em palavras.

Pode parecer meio óbvio para muitos de vocês mas pra mim não era. Trabalhei sempre com automação WEB e na minha cabeça tarefa dada era tarefa feita. Só que para chegar nesse ponto de conforto, eu penei bastante, bati bastante a cabeça na parede para debugar algumas coisas, tudo pelo simples fato de não ter feito uma prova de conceito antes.

Sempre montava o framework, fazia testes exploratórios, montava os cenários para automação, validava com time, escrevia os testes e saia desenvolvendo os testes.

A medida que fui progredindo profissionalmente, eu comecei a receber novas tarefas e perceber novos processos que poderiam ser automatizados, mas não sabia como.

Consultoria de memes by Ramses Sacol

Como eu tentava fazer? PAM .. tentava fazer no meio do framework de teste, com um monte de dependências, com um monte de conflitos e com tempo de debug muito alto.

Realmente, mas como meu background sempre foi de teste, eu não sabia fazer diferente (aquela velha história que eu geralmente falo que aprender a programar / desenvolver software não deveria vir depois de “aprender a automatizar”)

Outra coisa é que sempre que me perguntavam algo abstrato que eu não sabia responder, tentava imaginar sub tarefas e mensurava elas sem de fato ter confiança naquilo que estava estimando.

Bom, como cometer o mesmo erro 510 vezes já é burrice, melhor aplicar mais algumas boas praticas antes de sair codando software por ai (sim.. script de teste automatizado é software!)

Sendo assim, vou tentar listar aqui alguns ganhos que eu tive fazendo POC’s para teste e como você pode aplicar isso para o seu dia a dia :)

PoC.. é pra ver ou pra comer? 🤦‍♀️

  • Tente deixar o problema o mais simples possível para realizar sua POC. Se necessário quebre em 2 ou 3 PoC’s.*
  • Se for tentar diferentes ferramentas para o mesmo problema, deixe em tasks separadas.*
  • Não use dependências que você não precisa.*
  • Tente mitigar interferência de bibliotecas globais (com python use virtualenv)*
  • Não se importe muito com OO neste momento, pois existe a possibilidade de jogar esse código fora*
  • Sempre defina um tempo limite para sua POC. Veja com seu time o tempo que eles levam e a pontuação da tarefa. Nos times que passei, geralmente um POC demorava um dia e contava como 5 pontos da equipe.
  • Se for possível, aplique sua POC em mais de uma massa de dados.

Mas espera ai.. poc’s sempre precisam ser tão formais?!

Well, quando você precisa fazer coisas “grandes” que tomem 1..2 dias,vc precisa dar visibilidade do que você está fazendo, mas se tem coisas pequenas que você não tem muita certeza como fazer, você pode fazer uma mini poc respeitando alguns itens citados acima que tem um asterisco no final

Use e abuse do terminal da sua linguagem preferida para testar coisas pequenas sem precisar subir todo ambiente de teste.

Também use e abuse de mockups para testar suas pocs.

E quais são os ganhos?!

⁠⁠⁠Se ainda não ficou evidente, vou listar alguns deles:

  • O tempo para você debugar um problema na sua nova task é reduzido drasticamente.
  • Seu time sabe o que esta acontecendo e pode te ajudar tanto na concepção quanto na avaliação dos resultados.
  • Somos ágeis não é mesmo?! Se é para falhar, então que falhemos o mais rápido possível :)
  • Conhecimento gerado pela PoC pode dar ao time uma visão mais ampla sobre o problema sobre a testabilidade de um sistema, etc.
  • Você ganha karma points com seus amigos testadores :)

E por que raios estou falando isso?!
Well, na minha empresa atual eu tive que realizar um POC para um teste de atraso de som relativo a um video via broadcast… e como fazer isso?! Quebrando em pequenas pocs para poder enteder cada ponto do projeto.

Meu próximo post será sobre ele :)

Até mais!

--

--