Ответ
Тестирование методом белого ящика (White Box Testing) — это метод, при котором тестировщик анализирует и тестирует внутреннюю структуру, логику и код приложения. Доступ к исходному коду обязателен.
Ключевые техники:
- Покрытие кода (Code Coverage):
- Покрытие операторов (Statement): Проверен ли каждый исполняемый оператор?
- Покрытие ветвей (Branch): Проверены ли все возможные пути выполнения (true/false в условиях)?
- Покрытие путей (Path): Проверены ли все возможные комбинации путей выполнения?
- Анализ потока данных: Отслеживание значений переменных.
Пример на Python:
def calculate_discount(price, is_member):
if price > 100: # Ветвь 1
discount = 10
else:
discount = 5
if is_member: # Ветвь 2
discount += 5
return price - discount
Для полного покрытия ветвей нужны тест-кейсы, покрывающие все комбинации условий:
price=150, is_member=True(price>100, is_member=True)price=150, is_member=False(price>100, is_member=False)price=50, is_member=True(price<=100, is_member=True)price=50, is_member=False(price<=100, is_member=False)
Плюсы: Глубокое понимание системы, возможность найти скрытые ошибки в логике. Минусы: Требует навыков программирования, может быть трудоемким, не выявляет пропущенные требования.