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!
Comments
Comments are disabled for this post