logotipo

21 de outubro de 2023

Regra F.I.R.S.T de boas práticas de testes

Teste de software

Testes são importantes para permitir a flexibilidade do código. Ele traz segurança para que sistemas possam crescer e continuar funcionando.

Introdução

Testes devem ser simples e principalmente legíveis. Localmente, eles têm a função de auxiliar como uma documentação do seu código para outros desenvolvedores — ou para você mesmo no futuro —, por isso é tão importante a legibilidade.

Escolha nomes intuitivos, que deixem claro o seu propósito. Divida os testes individuais em pequenas partes, e com descrições curtas e bem estruturadas.

F.I.R.S.T.

F.I.R.S.T é um acrônimo para regras para manter seus testes úteis: Fast, Independent, Repeatable, Self-validating, Timely.

Fast — Rápidos

Devem ser rápidos para executar, para serem executados mais vezes. Quando os testes demoram para finalizar, a tarefa de testar se torna maçante e os desenvolvedores têm menos incentivo para fazê-lo, ou gastam mais tempo do que deveriam nessa etapa.

Independent — Independentes

Blocos de testes jamais devem depender entre si. Caso um teste dependa do resultado de outro, pode acontecer um efeito dominó caso o primeiro falhe e, portanto, o motivo real da falha fica ofuscado. Além disso, os testes são geralmente executados de forma assíncrona, e por isso a dependência pode atrapalhar o desempenho (atente-se a regra anterior).

Repeatable — Reproduzível

Testes devem conseguir ser acionados quantas vezes quiser, em diferentes ambientes e sempre com o mesmo resultado. Um teste deve ser possível de executar no seu computador, no computador da sua empresa, no seu notebook, na sua geladeira smart, e assim por diante.

Self-validating — Autoexplicativos

Em suma, devem retornar true ou false. Ou seja, passou ou não passou, em combinação com uma boa descrição do que esta sendo testado fica mais fácil localizar quais estão falhando e, o porquê estão.

Timely — Pontualmente prévios

Devemos criá-los imediatamente antes do código em produção. Inicialmente, esperamos que falhem nos diversos casos que testemos, e só depois construiremos o código de produção, sempre consultando como estão os resultados dos testes.

Voltar para todos os artigos