Кто пишет white-box тесты?

«Кто пишет white-box тесты?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

White-box (или структурное) тестирование, требующее знания внутреннего устройства системы, пишут разработчики и инженеры по автоматизации тестирования (SDET/QA Automation).

Распределение ответственности:

Роль Типичные white-box тесты Почему именно они?
Разработчик Модульные (Unit), интеграционные (Integration) тесты. Имеют глубочайшее понимание кода, логики и архитектуры. Пишут тесты параллельно с разработкой (TDD).
QA Automation Компонентные, API-тесты, тесты на покрытие сложных бизнес-логик. Обладают экспертизой в тест-дизайне и создании устойчивых тестовых фреймворков.

Пример модульного теста (Python/pytest):

def calculate_discount(price, is_member):
    if is_member:
        return price * 0.9  # 10% скидка
    return price

def test_calculate_discount_member():
    # White-box тест: мы знаем внутреннюю ветку `if is_member:`
    result = calculate_discount(100, True)
    assert result == 90, f"Для участника ожидалась скидка. Получено: {result}"

def test_calculate_discount_non_member():
    result = calculate_discount(100, False)
    assert result == 100, f"Для не-участника скидки нет. Получено: {result}"

Ключевое требование: Написание white-box тестов невозможно без доступа к исходному коду и понимания используемых алгоритмов и структур данных.