Ответ
Тестирование белого ящика (White-box или Glass Box Testing) — это метод тестирования ПО, при котором тесты проектируются на основе знания внутренней структуры, исходного кода и алгоритмов приложения. Тестировщик анализирует пути выполнения, условия и данные, чтобы проверить корректность работы внутренних компонентов.
Ключевые характеристики:
- Доступ к коду: Требует доступа к исходному коду.
- Фокус на логике: Проверяет правильность условных переходов, циклов, обработки данных и исключений.
- Метрики: Часто используется для измерения покрытия кода (code coverage), например, покрытия строк, ветвей или условий.
Пример на Python: Допустим, есть функция для валидации пароля:
def validate_password(password):
if len(password) < 8:
return False, "Password too short"
if not any(char.isdigit() for char in password):
return False, "Password must contain a digit"
return True, "OK"
Тестировщик, зная код, напишет целенаправленные тесты для каждого условия:
def test_validate_password():
# Проверка короткого пароля (первое условие)
assert validate_password("123") == (False, "Password too short")
# Проверка пароля без цифр (второе условие)
assert validate_password("abcdefgh") == (False, "Password must contain a digit")
# Проверка валидного пароля
assert validate_password("pass1234") == (True, "OK")
Преимущества:
- Позволяет находить скрытые ошибки в сложной логике.
- Помогает достичь высокого покрытия кода.
- Эффективно для модульного и интеграционного тестирования.
Недостатки:
- Требует глубоких знаний кода и технологий.
- Может пропускать ошибки, связанные с требованиями или пользовательским интерфейсом.
- Затратно по времени, так как требует анализа реализации.