Методы тестирования черного ящика с примерами кода для тестирования программного обеспечения

Тестирование «черного ящика» относится к методу тестирования программного обеспечения, при котором внутренняя работа и структура тестируемой системы не известны тестировщику. Тестер фокусируется на входных и выходных данных системы, анализируя ее поведение на основе заранее определенных спецификаций или требований. Вот несколько распространенных методов тестирования методом «черного ящика» с примерами кода:

  1. Разделение по эквивалентности:

    • Описание: разделение входного домена на классы эквивалентности и выбор репрезентативных значений из каждого класса для тестирования.
    • Пример кода (Python):
      def is_even(num):
       if num % 2 == 0:
           return True
       else:
           return False
  2. Анализ граничных значений:

    • Описание: Тестирование системы с использованием входных значений на границах классов эквивалентности.
    • Пример кода (Java):
      public class Calculator {
       public int add(int a, int b) {
           if (a > Integer.MAX_VALUE - b) {
               throw new ArithmeticException("Integer overflow");
           }
           return a + b;
       }
      }
  3. Тестирование таблицы решений:

    • Описание: Создание таблицы, представляющей различные комбинации входных данных и соответствующих ожидаемых результатов.
    • Пример кода (C#):
      public enum MembershipType { Basic, Premium }
      public class DiscountCalculator {
       public decimal CalculateDiscount(decimal totalAmount, MembershipType membershipType) {
           decimal discountPercentage = 0;
           switch (membershipType) {
               case MembershipType.Basic:
                   if (totalAmount >= 100 && totalAmount < 500) {
                       discountPercentage = 0.1m;
                   } else if (totalAmount >= 500) {
                       discountPercentage = 0.2m;
                   }
                   break;
               case MembershipType.Premium:
                   if (totalAmount >= 100) {
                       discountPercentage = 0.25m;
                   }
                   break;
           }
           return totalAmount * (1 - discountPercentage);
       }
      }
  4. Тестирование перехода состояний:

    • Описание: Тестирование поведения системы на основе различных состояний и переходов между ними.
    • Пример кода (JavaScript):
      class Door {
       constructor() {
           this.isOpen = false;
       }
       open() {
           this.isOpen = true;
       }
       close() {
           this.isOpen = false;
       }
      }