Введение

Метод тестирования программного обеспечения внутренней структуры

Тестирование белого ящика (также известное как тестирование прозрачного ящика, тестирование стеклянного ящика, структурное тестирование) – это метод тестирования программного обеспечения, который проверяет внутренние структуры или работу приложения, в отличие от его функциональности (т.е. тестирование черного ящика). При тестировании белого ящика используется внутренний взгляд на систему для разработки тестовых сценариев. Тестировщик выбирает входные данные для прохождения по путям в коде и определения ожидаемых результатов. Это аналогично тестированию узлов в схеме, например, при входном контроле (ICT). Тестирование белого ящика может применяться на уровне модуля, интеграции и системы в процессе тестирования программного обеспечения. Хотя традиционно тестеры рассматривали тестирование белого ящика как выполняемое на уровне модуля, сегодня оно все чаще используется для интеграционного и системного тестирования. Оно может тестировать пути внутри модуля, пути между модулями во время интеграции и между подсистемами во время системного тестирования. Хотя этот метод разработки тестов может выявить множество ошибок или проблем, существует вероятность пропустить нереализованные части спецификации или отсутствующие требования. Если тестирование белого ящика основано на проектировании, то есть определяется исключительно согласованными спецификациями поведения каждого компонента программного обеспечения (как в процессах DO 178C и ISO 26262), методы тестирования белого ящика могут обеспечить оценку нереализованных или отсутствующих требований. Методы проектирования тестов белого ящика включают следующие критерии покрытия кода:
Тестирование потока управления
Тестирование потока данных
Тестирование ветвей
Покрытие операторов
Покрытие решений
Покрытие модифицированных условий/решений
Тестирование основного пути
Тестирование путей

Обзор

Тестирование белого ящика – это метод тестирования приложения на уровне исходного кода. Тест-кейсы для него разрабатываются на основе методов проектирования, таких как: тестирование потока управления, тестирование потока данных, тестирование ветвей, тестирование путей, покрытие операторов, покрытие решений и модифицированное покрытие условий/решений. Тестирование белого ящика использует эти методы как руководство для создания среды, свободной от ошибок, посредством анализа всего кода. Эти техники тестирования белого ящика являются основой для такого тестирования, заключающейся в тщательной проверке приложения на уровне исходного кода для снижения вероятности возникновения скрытых ошибок в дальнейшем. Различные техники позволяют протестировать каждый видимый путь в исходном коде, минимизируя ошибки и создавая безошибочную среду. Главная цель тестирования белого ящика – возможность отслеживать, какая строка кода выполняется, и определять ожидаемый результат. Легко поддается автоматизации. В качестве основы для тестирования могут использоваться исходный код, требования, описания входных данных или различные модели проектирования. Поэтому разграничение между тестированием "белого ящика" и "черного ящика" становится менее значимым, и эти термины теряют свою актуальность.

Хакерство

В тестировании на проникновение, тестирование "белого ящика" – это метод, при котором этичный хакер обладает полным знанием об атакуемой системе. Цель тестирования на проникновение "белого ящика" заключается в имитации действий злоумышленника изнутри организации, имеющего доступ к информации и, возможно, базовым учетным данным целевой системы.