Curso Gratuito de Automação de Testes Para Iniciantes

Disponível no
Youtube

 

O que Teste de Software tem a ver com Psicologia?

O que Teste de Software tem a ver com Psicologia?

 

O desenvolvimento de software, incluindo teste de software, envolve seres humanos. Sendo assim, a psicologia humana tem efeitos importantes no teste de software.

BSTQB. Syllabus CTFL. 1.5 (2018)

Trabalhar com testes não é uma tarefa fácil. Você pode ser identificado como aquela pessoa que só traz notícia ruim, o “Dedo-Podre”, o “Quebra-Tudo”, o “Zé-Buguinho”, o “Pessimista” e por aí vai.

Ainda que o desenvolvimento de software seja uma área de Exatas, lidar com pessoas sempre tem a ver com Humanas.

Identificar um defeito no software pode ser visto como uma crítica ao produto que está sendo testado e ao desenvolvedor responsável por ele. Quando algo pode ser interpretado como uma crítica, tudo fica mais delicado.

Não foi fornecido texto alternativo para esta imagem

Viés da Confirmação

Todos nós, como indivíduos, temos um viés de confirmação (isto é: quando tendemos a ver as coisas da forma que nós queremos ver ou então interpretamos algo de um jeito que sustente as nossas posições). Não é preciso ir muito longe para vermos alguns exemplos, é só abrir qualquer rede social e gastar alguns segundos lendo os comentários de alguma publicação relevante.

Por que o Relacionamento entre Desenvolvedores e Testadores pode Gerar Conflitos?

Justamente porque cada um tem um objetivo diferente! Enquanto o objetivo do desenvolvedor é projetar e construir um produto, o objetivo do testador é validar esse produto e encontrar defeitos antes da sua liberação. Um prova que aquilo funciona e o outro prova que aquilo não funciona. Mesmo sendo tarefas que se completam, as coisas podem não ser vistas dessa maneira.

Agora imagine uma pessoa querendo construir algo enquanto outra pessoa aponta as falhas do que está sendo construído. Essa situação fica mais delicada quando os times de desenvolvimento de software são times jovens (o que ocorre na maioria dos casos). É muito fácil gerar um mal estar nesse cenário.

O viés de confirmação faz com que, muitas vezes, o desenvolvedor não enxergue o erro que está ali. Você já não fez um TCC (ou qualquer outro tipo de trabalho) e quando alguém foi revisar, apareceram erros que você não tinha percebido? Humanos sempre estarão sujeitos ao erro, por isso o ideal é que os testes sejam feitos por uma pessoa diferente de quem construiu o sistema.

A Importância de Encontrar Bugs Antes de ir para Produção

Existem exemplos famosos onde um erro em produção causou consequências graves!

Em 1996, o foguete Ariane 5 explodiu após 37 segundos do seu lançamento, com uma carga avaliada em 500 milhões de dólares. O que causou a falha no lançamento foi um erro no software ao converter um número real para um número inteiro. O sistema recebeu um valor não esperado e não conseguiu controlar a situação. Um teste de valor limite teria evitado esse prejuízo milionário. Você pode ler mais sobre esse incidente aqui e conferir o vídeo logo abaixo.

Por isso, é preciso refletir: O desenvolvedor que gerou esse bug deveria ficar bravo caso o testador encontrasse esse defeito na fase de desenvolvimento?

Como resolver esse tipo de situação?

A Importância de uma Boa Comunicação

Já ouviu aquela frase “Quem grita, perde a razão”?

Pois é, no contexto de teste de software isso faz total sentido, pois o perfil de quem testa deve ser colaborativo, e não com o intuito de competir, de provar que “um está certo e o outro está errado”. Se isso não funciona em relacionamento amoroso, relacionamento familiar, por que funcionaria no relacionamento profissional? O jeito de passar as informações faz toda a diferença e pode até influenciar no tempo em que o bug será corrigido.

O testador deve ter respeito e sensibilidade ao dar feedback ou discutir sobre falhas. Não há necessidade de chegar de forma agressiva e nem comemorar quando encontrar algum erro. Ao invés disso, utilize uma comunicação não-violenta e procure evitar conflitos.

O objetivo do teste é colaborar para que o produto atinja um nível de qualidade satisfatório e não gerar um confronto entre desenvolvedores e testadores.

Cultura de Qualidade

Disseminar uma Cultura de Qualidade no time todo é algo muito importante, pois quando isso acontece, o time acaba priorizando qualidade ao desenvolver os produtos e essa mentalidade traz muitos benefícios no resultado final.

Alguns princípios que ajudam a estabelecer a Cultura de Qualidade (baseados no Manifesto de Teste Ágil):

  • Os testes são considerados durante todo o projeto, e não apenas na última etapa (onde pode gerar gargalos).
  • A prioridade está em prevenir bugs, e não encontrá-los.
  • A responsabilidade pela qualidade deve ser de todo o time, e não somente do testador.

Quando todos possuem a mentalidade de que é necessário construir algo com qualidade, todos estarão alinhados com o mesmo objetivo e serão menos resistentes em relação à melhora do produto. Quem desenvolver o software, fará isso com essa mentalidade e quem testar também.

Essa é a importância de adquirir uma mentalidade construtiva e colaborativa. É necessário saber separar o pessoal do profissional e estar num ambiente com uma boa comunicação. Assim, a cultura de qualidade estará cada vez mais inserida no time e com o tempo se tornará algo natural para todos (Devs, QA’s, PO’s, Gestores), onde o objetivo em comum será construir um produto com a melhor qualidade possível.

Uma boa comunicação e uma mentalidade voltada para qualidade são habilidades comportamentais (soft skills) que acabam sendo tão importantes quanto as habilidades técnicas. Pior do que uma não entrega, é uma entrega desastrosa. Poderá ser o produto mais perfeito em termos técnicos, mas sem a usabilidade que o cliente precisa e com erros totalmente inesperados.

No final, desenvolvimento de software tem mais questões de Humanas do que parece.