Открыть главное меню

Тестирование белого ящика

Тестирование белого ящика (англ. white-box testing), также тестирование стеклянного ящика (англ. glass-box testing), структурное тестирование (англ. structural testing) — тестирование, которое учитывает внутренние механизмы системы или компонента (ISO/IEC/IEEE 24765)[1].

Разработка программного обеспечения
Процесс разработки ПО
Ключевые процессы
Анализ • Проектирование • Программирование • Конструирование • Тестирование • Отладка • Развёртывание • Сопровождение • Документирование
Парадигмы и модели
Agile • Cleanroom • Итеративная • Спиральная • Каскадная • V-Model • Dual Vee Model
Методологии
ASD • DevOps • DAD • DSDM • FDD • Канбан • Lean SD • LeSS • MDD • MSF • PSP • OpenUP • RAD • RUP • SAFe • Scrum • TSP • UP • XP
Инструменты
Компилятор • Отладчик • Профилирование • GUI-конструктор • ИСР • Автоматизация сборки • Автоматизация релиза • Инструменты тестирования

Обычно включает тестирование ветвей, маршрутов, операторов (см. покрытие кода)[1]. При тестировании выбирают входы для выполнения разных частей кода и определяют ожидаемые результаты. Это напоминает внутрисхемное тестирование (англ.).

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

Критерии покрытия кода[2]:

  • покрытие операторов — каждая ли строка исходного кода была выполнена и протестирована;
  • покрытие условий — каждая ли точка решения (вычисления истинно ли или ложно выражение) была выполнена и протестирована;
  • покрытие путей — все ли возможные пути через заданную часть кода были выполнены и протестированы;
  • покрытие функций — каждая ли функция программы была выполнена;
  • покрытие вход/выход — все ли вызовы функций и возвраты из них были выполнены;
  • покрытие значений параметров — все ли типовые и граничные значения параметров были проверены.

Уровни тестированияПравить

Модульное тестирование. Необходимо, чтобы убедится, что код работает должным образом, до момента интеграции с остальным кодом[2]. Позволяет находить ошибки на ранней стадии, а также контролировать устранение и любое дальнейшее изменение, препятствуя повторению ошибок в будущем[2]. Главным образом, нужно убедиться, что в изолированной среде код выполняется согласно спецификации[2].

Интеграционное тестирование. Проверяется взаимодействие интерфейсов друг с другом[2]. Главным образом, нужно убедиться, что при взаимодействии части системы отрабатывают как задумано[2].

Регрессионное тестирование. Тестирование, направленное на обнаружение ошибок в уже протестированных участках исходного кода, с целью удостовериться в отсутствии побочных эффектов при внесении модификаций.

Тестирование на взломПравить

Тестирование на взлом методом белого ящика предполагает, что у взломщика будет знание о внутреннем устройстве системы или базовые учётные данные атакуемой системы.

ПримечанияПравить

СсылкиПравить