Press enter to see results or esc to cancel.

Drops de testes – Testes de limites/fronteiras

Estamos fazendo uma série de artigos sobre testes do básico ao avançado com posts todas as terças, você pode ver todos os posts clicando aqui ou ver o post anterior clicando aqui.

Depois de vermos casos de testes no post anterior, hoje vamos tomar proveito desta técnica para a realização dos nossos testes de fronteira, ou testes de borda/limite.

Fazer teste de limite/fronteira é testar se o seu sistema está lidando bem com os limites da sua regra de negócio. Por exemplo, temos uma calculadora de impostos , que se o valor informado for de R$ 1.000,00 ou mais, o desconto é de 10% e se for menor é de 5%. Seu código fonte está preparado lidar com R$ 1.000,01? E com R$ 999,99?

Análise de domínio e limites

A análise de limites do domínio, é de fato, analisar onde a sua regra de negócio cria uma bifurcação, onde de fato ela irá mudar dependendo do valor recebido.

No exemplo da calculadora de impostos, o Valor é uma propriedade que influência na fronteira, que por sua vez é valor do imposto a ser aplicado. Em um outro exemplo, para cada produto no carrinho de compras, será aplicado um desconto de R$10,00, o que acontece se o carrinho estiver vazio? O código cria alguma instancia desnecessária? Gera alguma exceção?

É importante que você analise seu domínio quando estiver escrevendo testes para que seus testes testem de fato onde o seu sistema possa vir a ter um bug.

É comum que bugs aconteçam nestas fronteiras, por isso, vale muito a pena analisa-las e testá-las.

Testando os limites/fronteiras

Vamos fazer uso dos casos de testes para exercitar os limites da nossa calculadora de impostos. Relembrando, nossa regra é que se o valor informado for igual ou maior do que R$1000,00 o desconto a ser aplicado é de 10% e se for menor, de 5%.

Vamos testas nossos limites informando os valores de R$1000,o1, R$999,99 e R$1000,00

Veja abaixo:

[TestCase(1000, 900)]
[TestCase(1000.01, 900.009)]
[TestCase(999.99, 949.9905)]
public void DeveRetornarDescontoDeDezPorCentoQuandoValorMilReaisOuMaior(decimal valorInformado, decimal valorEsperado)
{
    //Arrange
    var minhaClasse = new MinhaClasse();

    //Act
    var resposta = minhaClasse.AplicarImposto(valorInformado);

    //Assert
    Assert.AreEqual(valorEsperado, resposta);
}

Combinar os casos de testes com os teste de limite irá te ajudar a encontrar bugs, garantir sua regra de negócio e ter mais segurança para refatorações e novos desenvolvimentos.

Curtiu? Ficou alguma dúvida? Já fez teste de fronteira? Comenta aí!

Até terça que vem!

Tweet about this on TwitterShare on FacebookShare on LinkedInEmail this to someone
Comments

Leave a Comment