Тестирование «черного ящика» относится к методу тестирования программного обеспечения, при котором внутренняя работа и структура тестируемой системы не известны тестировщику. Тестер фокусируется на входных и выходных данных системы, анализируя ее поведение на основе заранее определенных спецификаций или требований. Вот несколько распространенных методов тестирования методом «черного ящика» с примерами кода:
-
Разделение по эквивалентности:
- Описание: разделение входного домена на классы эквивалентности и выбор репрезентативных значений из каждого класса для тестирования.
- Пример кода (Python):
def is_even(num): if num % 2 == 0: return True else: return False
-
Анализ граничных значений:
- Описание: Тестирование системы с использованием входных значений на границах классов эквивалентности.
- Пример кода (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; } }
-
Тестирование таблицы решений:
- Описание: Создание таблицы, представляющей различные комбинации входных данных и соответствующих ожидаемых результатов.
- Пример кода (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); } }
-
Тестирование перехода состояний:
- Описание: Тестирование поведения системы на основе различных состояний и переходов между ними.
- Пример кода (JavaScript):
class Door { constructor() { this.isOpen = false; } open() { this.isOpen = true; } close() { this.isOpen = false; } }