ANÁLISE DO VALOR LIMITE
Técnica complementar ao Particionamento Por Classe de Equivalência. A sua principal diferença é que ele seleciona casos de teste baseados nos limites das classes do contexto.
O Particionamento por Equivalência foca no conteúdo de uma caixa.
Análise de Valor Limite foca nas extremidades dessa caixa.
Aplicação da Técnica:
- Quando a entrada especifica um intervalo de valores, devemos levar em consideração os limites inferior e superior e valores adjacentes foras do intervalo.
- Quando a entrada especifica um intervalo de valores, devemos levar em consideração os limites inferior e superior e valores adjacentes foras do intervalo.
Passo 1:
Passo 2:
EXEMPLO
Um sistema de irrigação é programado para ativar sprinklers, a cada hora que se passa, durante os minutos 20 a 40. Elabore casos de teste para serem utilizados na fase de testes deste sistema utilizando a técnica de Análise de Valor Limite.
Note que dessa vez nossos valores de entrada são um intervalo de valores, entre 20 e 40 minutos. Supondo que rotinas de teste serão executadas a cada hora, podemos elaborar casos de teste utilizando os seguintes valores no intervalo de tempo proposto.
Perceba que assim realizamos testes exatamente 1 segundo antes ao momento em que o sprinkler deve ser ligado e também 1 segundo após o momento que ele deve ser desligado.
Com isso, também garantimos casos de teste para saber se o equipamento está ligado nos horários em que ele não deve estar.
Entrada | Saída | |
---|---|---|
Minutos | Segundos | |
19 | 59 | desligado |
20 | 00 | ligado |
40 | 00 | ligado |
40 | 01 | desligado |
EXERCICIO 1 - CONTA BANCÁRIA
O Newbank está desenvolvendo seu aplicativo em Python. Nele, seus clientes serão representados por instâncias da classe Conta.py que você pode baixar logo abaixo. Essa classe possui os métodos de Saque e Depósito. Seu trabalho será elaborar casos de testes baseados na técnica de Particionamento de Equivalência e implementá-los e executá-los usando a biblioteca unittest disponível nas versões mais recentes do Python. A documentação do sistema está a seguir:
Baixar Documentação do sistema- Para utilizar a unittest, basta dar um “import unittest” no começo do arquivo;
- Uma nova classe de teste deve ser criada, extendendo unittest.TestCase;
- Cada método dessa classe será um caso de teste. Certifique-se de identificá-los;
- mporte também a classe Conta.py e a instancie em cada caso de teste, com os respectivos valores;
- Ao final de cada caso de teste, utilize o metodo .assertEqual() para comparar o valor esperado com o recebido pela classe após o teste;
- Caso tenha mais dúvidas sobre a biblioteca unittest, verifique documentação;
Orientação:
RESOLUÇÃO
Primeiramente, separamos as classes de equivalência, tanto para saque, quanto para saque, quanto para depósito:
Método Saque | ||
---|---|---|
Variáveis de Entrada | Classes de Equivalência Válidas | Classes de Equivalência Inválidas |
Saldo | Saldo >= Quantia | Saldo < Quantia |
Quantia | Quantia > 0 | Quantia <= 0 |
Método Depósito | ||
---|---|---|
Variáveis de Entrada | Classes de Equivalência Válidas | Classes de Equivalência Inválidas |
Quantia | Quantia > 0 | Quantia <= 0 |
Em seguida, elaboramos os casos de teste para exercitar as classes válidas e inválidas, uma por vez:
Método Saque | |||
---|---|---|---|
Casos de Teste | Condições iniciais | Entrada | Resultado Esperado |
CT-01 | Saldo: R$1,00 | 0,99 | "Saque Realizado com Sucesso!” |
CT-02 | Saldo: R$1,00 | 1,01 | “Saldo Insuficiente” |
CT-03 | Saldo: R$1,00 | -1 | “Erro! Quantia Inválida” |
Método Depósito | |||
---|---|---|---|
Casos de Teste | Condições iniciais | Entrada | Resultado Esperado |
CT-04 | Saldo: R$0,00 | 0,01 | “Depósito Realizado com Sucesso |
CT-05 | Saldo: R$0,00 | -1 | “Erro! Quantia Inválida" |
IMPLEMENTAÇÃO
Nesta Seção mostramos o resultado dos testes realizados em cima do programa que foi fornecido. Você pode comparar a sua implementação de testes com a que será fornecida abaixo:
Com a execução dos testes em PyUnit, chega-se nos seguintes resultados:
Casos de Teste | Condições iniciais | Entrada | Resultado Esperado | Resultado Obtido | Resultado dos Testes |
---|---|---|---|---|---|
CT-01 | Saldo: R$1,00 | 0,99 | “Saque Realizado com sucesso” | “Saque Realizado com sucesso” | Passou |
CT-02 | Saldo: R$1,00 | 1,01 | “Erro! Saldo Insuficiente” | “Erro! Saldo Insuficiente” | Passou |
CT-03 | Saldo: R$1,00 | -1 | "Erro! Quantia Inválida” | “Saque Realizado com sucesso” | Falhou |
CT-04 | Saldo: R$0,00 | 0,01 | “Depósito Realizado com sucesso” | “Depósito Realizado com sucesso” | Passou |
CT-05 | Saldo: R$0,00 | -1 | “Erro! Quantia Inválida” | “Erro! Quantia Inválida” | Passou |