Тестирование белого ящика (также известный как очистить тестирование коробки, тестирование стеклянной коробки, тестирование прозрачной коробки и структурное тестирование ) - это метод тестирования программного обеспечения, который тестирует внутренние структуры или механизмы работы приложения, в отличие от его функциональности (например, тестирование черного ящика ). При тестировании методом белого ящика для разработки тестовых примеров используется внутренняя перспектива системы, а также навыки программирования. Тестировщик выбирает входные данные для отработки путей прохождения кода и определяет ожидаемые результаты. Это аналогично проверке узлов в цепи, например. внутрисхемное тестирование (ICT). Тестирование методом белого ящика может применяться на уровнях unit, интеграции и system процесса тестирования программного обеспечения. Хотя традиционные тестировщики имели тенденцию думать о тестировании методом белого ящика как о выполняемом на уровне модулей, сегодня оно чаще используется для интеграции и тестирования системы. Он может тестировать пути внутри модуля, пути между модулями во время интеграции и между подсистемами во время тестирования на уровне системы. Хотя этот метод разработки тестов может выявить множество ошибок или проблем, он может упустить невыполненные части спецификации или отсутствующие требования. Если тестирование методом белого ящика основано на дизайне, то есть основывается исключительно на согласованных спецификациях поведения каждого компонента программного обеспечения (как в процессах DO-178C и ISO 26262 ), тогда методы тестирования белого ящика могут выполнить оценку нереализованных или отсутствующих требований.
Методики разработки тестов белого ящика включают следующие критерии покрытия кода :
Тестирование белого ящика - это метод тестирования приложения на уровне исходного кода. Эти тестовые примеры получены с использованием упомянутых выше методов проектирования: поток управления тестирование, тестирование потока данных, тестирование ветвлений, тестирование пути, покрытие операторов и покрытие решений, а также модифицированное покрытие условий / решений. Тестирование методом белого ящика - это использование этих методов в качестве руководства для создания безошибочной среды путем изучения всего кода. Эти методы тестирования белого ящика являются строительными блоками тестирования белого ящика, суть которого заключается в тщательном тестировании приложения на уровне исходного кода для уменьшения скрытых ошибок в дальнейшем. Эти различные методы используют каждый видимый путь исходного кода, чтобы минимизировать ошибки и создать безошибочную среду. Весь смысл тестирования методом белого ящика - это способность знать, какая строка кода выполняется, и возможность определить, каким должен быть правильный результат.
Основные процедуры тестирования белого ящика требуют, чтобы тестировщик имел вход глубокое знание тестируемого исходного кода. Программист должен хорошо разбираться в приложении, чтобы знать, какие типы тестовых случаев нужно создавать, чтобы каждый видимый путь использовался для тестирования. Как только исходный код понят, его можно проанализировать для создания тестовых примеров. Ниже приведены три основных шага, которые выполняет тестирование методом белого ящика для создания тестовых примеров:
Тестирование методом белого ящика - один из двух самых распространенных методов тестирования, используемых сегодня. У этого есть несколько основных преимуществ:
Несмотря на то, что тестирование методом белого ящика имеет большие преимущества, оно не идеально и содержит некоторые недостатки:
Более современный взгляд заключается в том, что дихотомия между белыми и Ящик-тестирование и тестирование черного ящика размыты и становятся менее актуальными. В то время как «белый ящик» первоначально означал использование исходного кода, а «черный ящик» означал использование требований, теперь тесты производятся из многих документов на различных уровнях абстракции. Дело в том, что тесты обычно разрабатываются на основе абстрактной структуры, такой как пространство ввода, граф или логические предикаты, и вопрос в том, из какого уровня абстракции мы выводим эту абстрактную структуру. Это может быть исходный код, требования, описания входных пространств или один из десятков типов моделей дизайна. Следовательно, различие «белый ящик / черный ящик» менее важно, а термины менее актуальны.
В тестировании на проникновение тестирование методом белого ящика относится к методу, при котором хакер в белой шляпе полностью осведомлен о атакуемой системе. Цель теста на проникновение методом белого ящика - смоделировать злоумышленника изнутри, который знает и, возможно, базовые учетные данные для целевой системы.