Na área de teste de software, é importante ter consciência da diferença entre erro, defeito e falha, para evitar confusões que possam resultar em situações desagradáveis nas relações interpessoais da equipe do projeto.
No universo de qualquer engenharia, seja civil, elétrica, computação, aeroespacial, entre outras, é de extrema importância comunicar-se de forma técnica (utilizando linguagem formal e específica). Isso inclui a documentação detalhada de sugestões, conclusões de relatórios e outros aspectos relevantes, seja por meio de um arquivo do Word, softwares de gestão de projetos específicos ou mesmo utilizando a ferramenta disponível no GitLab para Code Review. Essa comunicação técnica reflete diretamente no Escopo do Produto, garantindo sua Qualidade e, principalmente, a reputação da equipe em futuros projetos. É fundamental considerar o todo, não apenas o escopo do projeto, para alcançar o sucesso e a excelência.
A habilidade de um desenvolvedor não se restringe apenas à lógica de programação, mas principalmente à arte da comunicação. Esta é extremamente importante não apenas no contexto de desenvolvimento de software, mas em todas as áreas onde há recursos humanos envolvidos.
Então, levando em consideração a base fundamental que mencionei em relação à importância da comunicação em equipe, torna-se necessário compreender a diferença entre essas três palavras-chave para garantir eficiência na comunicação, tanto como emissor quanto como receptor dentro da equipe.
1. Erro: É uma ação humana que resulta em um engano ou equivoco; Pode ser cometido por
qualquer pessoa envolvida no processo de desenvolvimento de software e pode ocorrer por
diversos, tais:
I) pressão de tempo;
II) falta de experiência;
III) habilidades insuficientes.
2. Defeito: Um defeito (também chamado de falha ou bug) é o resultado de:
I) um erro humano que introduz um problema no código-fonte do software ou;
II) em algum outro artefato relacionado ao trabalho.
3. Falha: Uma falha ocorre quando:
I) um defeito presente no código é executado e resulta em um comportamento incorreto do
software em relação aos requisitos estabelecidos.
Enfim, nem todos os defeitos sempre causam falhas. Alguns defeitos só são acionados por:
a) circunstâncias específicas;
b) precondições, ou;
c) entradas particulares e podem ocorrer raramente ou nunca.
Resumidamente: Um erro humano pode levar à introdução de um defeito no software. Quando esse defeito é acionado durante a execução, ele pode ou não resultar em uma falha. Essa relação é importante para identificar as causas das falhas e corrigir os defeitos apropriados.
Falhas são causadas por defeitos; defeitos são causados por erros. Identificar a causa raiz do defeito significa identificar os erros que originaram os defeitos, jamais apontar o dedo para o humano que fez o input da feature.
A importância de saber usar os termos técnicos vai ajudar na comunicação entre equipes diferentes, independentemente da cultura dos integrantes, assim como a habilidade de descrever situações do dia a dia quando se trata de bugfix. Apenas identificar bugs e depois reportá-los de qualquer maneira através dos canais disponíveis de comunicação pode resultar em um ambiente tóxico, especialmente quando as pessoas estão mais preocupadas em manter suas reputações ao invés de focar no Escopo do Produto.

Desenvolvedor full-stack, formado em Ciência da Computação e Redes de Computadores, com certificações internacionais da AWS e IBM. Atuou em projetos de inovação tecnológica no governo de Portugal. Atualmente, trabalha com processamento de dados IoT na telemetria de grandes frotas de veículos em todo o continente europeu, visando otimizar processos, reduzir custos e minimizar impactos ambientais.