🧠 A mentalidade de um QA
O trabalho de um QA consiste em procurar os pontos fracos de um software, seja lá qual for, e reportá-los para serem corrigidos garantindo assim a melhor qualidade possível.
Para realizar esse trabalho com eficiência, deve-se ter uma mentalidade de teste. Em outras palavras, ser o mais destrutivo possível da maneira mais criativa possível.
E por qual motivo um QA e não um Dev?
A psicologia tem um papel muito importante nesse ponto: é provado que os desenvolvedores são muito ruins para testar seu próprio código e existem boas razões para isso:
- É difícil encontrar erros em algo feito por você mesmo;
- É desafiador pensar em algo que não deveria acontecer quando você está 100% focado no que o sistema deveria fazer;
- Em geral, um desenvolvedor tendem a ter uma mente orientada à soluções (como fazer?) em vez de uma mente orientada à problemas (como quebrar?);
- Como os desenvolvedores sabem o “caminho feliz” do sistema e como ele funciona em detalhes, é possível que não vejam cenários alternativos que poderiam causar comportamentos inesperados.
Mentalidade?
Um analista de qualidade não é um ser humano que nasceu dotado de um dom para testar software. Mas ser um bom QA também não consiste de aprender meia dúzia de passos memorizáveis e sair usando em todas as ocasiões.
O teste é um campo profundo e desafiador que requer prática e experiência para se sair bem. É também uma atividade na qual algumas pessoas parecem ser melhores do que outras - algumas pessoas parecem ter uma “mentalidade de testador”… elas “pensam como um testador”.
Dito isto, existem alguns pontos que podem ser treinados para exercitar essa mentalidade de testador:
Comunicação construtiva
Após a descoberta do bug, ele deve ser comunicado à equipe para sua correção. A forma em que se comunica um bug é muito importante, pois os desenvolvedores são emocionalmente ligados com o código. Antes de chegar ao QA, o dev também testou e se preocupou com a qualidade final do produto.
Então para uma comunicação saudável, é bom se atentar a esses pontos:
- Discutir e atacar o problema, não a pessoa;
- Ser específico, não generalista;
- Trabalhar com fatos, não com julgamentos;
- Comunicar a partir de um objetivo em comum.
Pensamento invertido
Ao invés de achar que o software funciona e ir procurar bugs, ir acreditando que ele não funciona e que o mesmo deve se provar funcional. Com isso, a mente passa a enxergar com muito mais facilidade bugs que passariam despercebidos.
Igual quando você decide comprar um carro e, de repente, é o carro que mais se vê nas ruas.
Empatia
É o ato de se por no lugar dos usuários, não apenas no sentido de “o que eles fizerem, eu farei”, mas sim de imaginar o que eles sentem, pensam, prever o que eles fariam, onde ficariam confusos e por que podem se sentir frustrados.
Suposições desafiadoras
"Desafiar suposições" é uma habilidade fundamental para testadores eficazes, mas isso não significa desafiar todas as suposições e começar do zero. Identificar e alavancar suposições é útil para reduzir o escopo de testes possíveis e encontrar problemas.
A habilidade crítica é avaliar com precisão as suposições para determinar se elas estão guiando corretamente o comportamento ou desviando-o. A mentalidade do testador avalia constantemente as suposições para determinar sua validade e valor, mas é importante reconhecer que a gente não acerta todas.
Conclusão
Além dos tópicos mencionados acima, podemos destacar que um bom tester é por natureza um explorador, criativo e com um pensamento crítico afiado; capaz de até mesmo reconhecer a natureza humana pro trás do processo de construção de software e antecipar bugs decorrentes de erros e vieses comportamentais
Referências
Sobre mim
Você pode me encontrar em meu github, linkedin ou instagram.