Teste de Unidade ou Teste Unitário – Dívida Técnica ou Débito Técnico?

Enquanto a simples tradução do inglês para o português pode deixar a sensação de que todos esses termos estão corretos, quando entendemos o conceito por trás da terminologia, é perceptível que um termo acaba sendo muito mais adequado que o outro.

Unit Test (Teste de Unidade | Teste Unitário)

No caso do Unit Test, a palavra Unit não está relacionada a quantidade de testes, mas sim ao escopo, ou mais precisamente, está relacionada a menor parte testável do software.

Existe, inclusive, uma grande discussão em torno do que seria essa menor parte: alguns autores defendem que o escopo de um unit test é um simples método, outros dizem que pode ser uma classe ou até mesmo um conjunto delas.

E para descrever escopo, parte, divisão, segregação ou departamento, a palavra unidade é muito mais adequada. Exemplo:

“José trabalha na unidade de terapia intensiva do Hospital da cidade.”

Neste exemplo, podemos ver que a palavra unidade, claramente, se refere a uma parte ou departamento dentro do hospital e ao substituirmos esta pela palavra unitário, perde-se todo o sentido. Dessa forma, podemos dizer que teste de unidade é uma tradução mais adequada para a prática de Unit Test.

Technical Debt (Dívida Técnica | Débito Técnico)

Seguindo a mesma linha de raciocínio, o termo Technical Debt foi utilizado pela primeira vez para descrever cenários ou abordagens de engenharia, design ou codificação, de forma consciente ou não, que podem ser fáceis de implementar no curto prazo, mas que trazem um grande impacto no futuro. E para dar a dimensão deste impacto, muitas analogias com o mercado financeiro foram adotadas.

É como se cada vez que tivéssemos uma decisão ruim, como não usar teste unitário de unidade, por exemplo, fizéssemos um empréstimo no banco. Esse empréstimo tem juros e quanto mais tempo se demora para pagar, maior é o valor a ser pago, chegando ao ponto do pagamento ficar impraticável, sendo necessário fazer uma renegociação, o que no nosso caso, muitas vezes, significa reescrever o software.

E dentro do nosso vocabulário, a palavra dívida se encaixa perfeitamente no exemplo acima. Nós costumamos dizer:

“Eu fiz um financiamento para comprar uma casa e contraí uma dívida gigante”
“Não estou conseguindo pagar minhas dívidas”
“Preciso renegociar minhas dívidas”

Até podemos tentar usar a palavra débito, mas não vai ficar tão natural quanto a dívida e, normalmente, débito e crédito acabam sendo mais utilizadas para transações financeiras, como o pagamento com cartões.

Por isso, podemos assumir que dívida técnica é uma tradução mais adequada para Technical Debt.

Poxa, então quer dizer que é errado dizer Teste Unitário ou Débito Técnico? Claro que não! São termos muito utilizados pela grande maioria dos profissionais, principalmente porque foram utilizados nas traduções iniciais, porém, Teste de Unidade e Dívida Técnica expressam melhor o significado das práticas e conceitos.

E para finalizar, a pergunta que realmente importa: você está adotando testes de unidade e reduzindo a sua dívida técnica nos projetos que tem atuado? Como? Com quais ferramentas? Comentem!

Abraços e até a próxima.
André Dias