Ideia principal: Usar um exemplo de código Java para ilustrar como criar e analisar diferentes cenários de teste, aprimorando a compreensão dos princípios e práticas de teste.

  • Exemplo de código:
    public class Calculator {
       public int add(int a, int b) {
           return a + b;
       }
     
       public int subtract(int a, int b) {
           return a - b;
       }
     
       public int multiply(int a, int b) {
           return a * b;
       }
     
       public int divide(int a, int b) {
           if (b == 0) {
               throw new IllegalArgumentException("Division by zero");
           }
           return a / b;
       }
    }
  • Cenários de teste:
    • Cenário de teste positivo para o método add:
      • Entrada: add(5, 3)
      • Saída esperada: 8
      • Objetivo: Valida se o método adiciona corretamente dois números positivos.
    • Cenário de teste negativo para o método divide:
      • Entrada: divide(10, 0)
      • Saída esperada: IllegalArgumentException
      • Objetivo: Garante que o método lide adequadamente com a divisão por zero, lançando uma exceção conforme esperado.
    • Cenário de teste de limite para o método multiply:
      • Entrada: multiply(Integer.MAX_VALUE, 2)
      • Saída Esperada: Normalmente resultaria em um erro de estouro; o comportamento depende do manuseio do sistema.
      • Objetivo: Testa como o método lida com situações que podem levar ao estouro de número inteiro.

Main Idea: Using a Java code example to illustrate how to create and analyze different test scenarios, enhancing the understanding of testing principles and practices.

Content:

  • Code Example:
    public class Calculator {
        public int add(int a, int b) {
            return a + b;
        }
     
        public int subtract(int a, int b) {
            return a - b;
        }
     
        public int multiply(int a, int b) {
            return a * b;
        }
     
        public int divide(int a, int b) {
            if (b == 0) {
                throw new IllegalArgumentException("Division by zero");
            }
            return a / b;
        }
    }
  • Test Scenarios:
    • Positive Test Scenario for add method:
      • Input: add(5, 3)
      • Expected Output: 8
      • Purpose: Validates that the method correctly adds two positive numbers.
    • Negative Test Scenario for divide method:
      • Input: divide(10, 0)
      • Expected Output: IllegalArgumentException
      • Purpose: Ensures the method properly handles division by zero, throwing an exception as expected.
    • Boundary Test Scenario for multiply method:
      • Input: multiply(Integer.MAX_VALUE, 2)
      • Expected Output: Typically would result in an overflow error; behavior depends on system handling.
      • Purpose: Tests how the method handles situations that could lead to integer overflow.