logo

Pensando Fora da Caixa como Tester

Esse post também é outro pré post para falar sobre meu projeto de teste automatizado para validar sincronização entre áudio e vídeo processado.

Quando aceitei fazer o processo da empresa que eu trabalho atualmente, comecei a quebrar paradigmas pessoais logo no processo de recrutamento deles.

Uma das perguntas que eu tinha que responder era : "Quais maneiras eu poderia ter certeza que a imagem após processada (sempre da mesma forma) sempre teria o mesmo resultado"

Se tivessem feito essa mesma pergunta alguns anos atrás, eu realmente não saberia responder.

Foi só melhorando meus conhecimentos de linux e desenvolvimento é que eu realmente consegui compreender e entender as possibilidades e... well... dai foi fácil... assinatura MD5 do arquivo... fácil de automatizar.

Pode parecer simples e idiota, mas eu fiquei pensando quais experiências e aprendizados me levaram a conseguir responder isso de imediato.

Faz parte do dia a dia de um desenvolvedor / sysadmin saber se o arquivo recebido / enviado é o mesmo e se não foi alterado no meio do caminho.
Wtf até tem "tutorial" no baboo sobre integridade de arquivo (https://goo.gl/nPpHxH) ... mas no dia a dia de teste de aplicação web e etc, isso nunca tinha passado pela minha cabeça.

De fato eu meio que consegui essa vaga nessa resposta junto com um teste de algoritmo que eles mandaram..

Por que estou falando isso?

Porque esse foi o pontapé inicial para uma mudança de paradigmas sobre meu papel como Tester e QA Engineer.

Não sei se você costuma ficar zapeando no linkedin vagas internacionais e afins, mas o que eu vejo sempre é que as vagas mais legais de engenheiros de teste não pedem muita experiência de teste.

Para essas vagas é legal ter experiência com teste mas é mais legal saber escrever software que TESTE ou escrever procedimentos que vão ajudar a testar o software em questão. Vivendo no mundo de automação web / mobile não vai me fazer chegar onde eu quero.

Pare de limitar sua vida às ferramentas de teste impostas

É muito comum ver em listas de discussão pessoas perguntando como testar X coisa via interface e você vê que esse teste pode ser feito mais rápido se fosse via teste de serviço, mas esse é só um dos exemplos de como parte do mercado de teste e formadores de opinião moldam o pensamento da maioria dos profissionais da área.

Eu lembro de quando selenium 1.x estava começando a ganhar reconhecimento, formadores de opinião martelavam que a melhor forma de automação era o BAD BOY (hoje ele ta lá esquecidinho coitado). Hoje apesar de existirem diversas opções de automação mobile, pessoas rotuladas como 'referência' na área martelam para se usar appium para tudo, geralmente com uma referência aos cursos que vendem.

Mas não se engane.. a teoria do martelo (https://goo.gl/DS5YZw) cai como uma luva para explicar as dicas de consultores 'especialistas' de uma ferramenta só.

E quando não tem ferramenta de teste?

Me vi nessa situação no meu emprego atual.
Como se testa audio? Como se testa vídeo? Existe ferramenta de teste?

Acontece que não existem ferramentas de teste para áudio e vídeo e sim ferramentas de áudio e vídeo. A forma que você vai usar elas é o que vai definir como escrever seu teste automatizado.

ex:
Como testar se o broadcast contém "video" e "som"?

A forma mais simples é usando ffprobe (https://goo.gl/bRq256), que é uma ferramenta de diagnóstico de áudio e vídeo.
Posso usar ela para garantir que pelo menos o broadcast testado existe um stream de vídeo e um stream de som, respeitando certas condições como codec de áudio, codec de vídeo, bitrate, altura e largura do vídeo, se o som é mono ou stereo e quantos canais tem, etc..

ex2:
Como testar que existe som de verdade no broadcast?!

FFprobe pode trazer falso positivo em relação ao stream de áudio. Ele pode existir mas pode estar mudo.

Mas existe uma ferramenta chamada sox (https://goo.gl/HP7sjt) que é utilitário para conversão de sons, mixagem e aplicação de efeitos sonoros... e também retorna algumas informações sobre o arquivo de som que se deseja utilizar.

Uma das informações que o sox -n stat traz é a amplitude máxima de sinal(rms) positiva e negativa, e se você tem uma amostragem pequena é possível ter certeza que pelo menos silêncio você não tem (Existe a possibilidade da amplitude ser referente a estática mas ai é outra história hahahah)

Últimas Considerações

Não entendo porque alguns profissionais ainda cismam em ser contra ferramentas e automação de testes, mesmo sabendo que, sem acesso a elas, o processo de teste fica praticamente inviável. Acredito que elas sejam influenciadas (negativamente) pelo hype da comunidade e consultores em falar de 1 ou 2 ferramentas como solução pra tudo.

Mesmo que seu contexto de teste ainda seja web ou mobile, não entre em modo piloto automático para escrever suas soluções de teste. Procure formas e ferramentas mais eficientes, mesmo que elas não sejam especificamente para teste (acredite, existe muita coisa legal nesse mundo open source que você não faz ideia!)

(gentilmente corrigido e revisado por @stefanteixeira, @kamilaqueiroz e @fredmoreira)

comments powered by Disqus