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

1 Comment

Drops de testes - Asserções mais fluentes com FluentAssertions - High5Devs

[…] 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. […]


Leave a Comment