2.4. Классификация по доступу к коду и архитектуре приложения
·
Метод белого
ящика — у тестировщика есть доступ к внутренней структуре и коду приложения, а
также есть достаточно знаний для понимания увиденного. Выделяют даже
сопутствующую тестированию по методу белого ящика глобальную технику —
тестирование на основе дизайна. Для более глубокого изучения сути метода белого
ящика рекомендуется ознакомиться с техниками исследования потока управления или
потока данных, использования диаграмм состояний. Некоторые авторы склонны жёстко
связывать этот метод со статическим тестированием, но ничто не мешает
тестировщику запустить код на выполнение и при этом периодически обращаться к
самому коду (а модульное тестирование и вовсе предполагает запуск кода на
исполнение и при этом работу именно с кодом, а не с «приложением целиком»).
·
Метод чёрного
ящика — у тестировщика либо нет доступа к внутренней структуре и коду
приложения, либо недостаточно знаний для их понимания, либо он сознательно не
обращается к ним в процессе тестирования. При этом абсолютное большинство
перечисленных видов тестирования
работают по методу чёрного ящика, идею которого в альтернативном определении
можно сформулировать так: тестировщик оказывает на приложение воздействия (и
проверяет реакцию) тем же способом, каким при реальной эксплуатации приложения
на него воздействовали бы пользователи или другие приложения. В рамках
тестирования по методу чёрного ящика основной информацией для создания
тесткейсов выступает документация (особенно — требования и общий здравый смысл
(для случаев, когда поведение приложения в некоторой ситуации не
регламентировано явно; иногда это называют «тестированием на основе неявных
требований», но канонического определения у этого подхода нет).
·
Метод серого
ящика — комбинация методов белого ящика и чёрного ящика, состоящая в том, что к
части кода и архитектуры у тестировщика доступ есть, а к части — нет. На
рисунках 2.3.b и 2.3.c этот метод обозначен особым пунктиром и серым цветом
потому, что его явное упоминание — крайне редкий случай: обычно говорят о
методах белого или чёрного ящика в применении к тем или иным частям приложения,
при этом понимая, что «приложение целиком» тестируется по методу серого ящика.
·
Если
сравнить основные преимущества и недостатки перечисленных методов, получается
следующая картина.
· Методы белого и чёрного ящика не являются конкурирующими или взаимоисключающими — напротив, они гармонично дополняют друг друга, компенсируя таким образом имеющиеся недостатки
|
Преимущества |
Недостатки |
Метод
белого ящика |
·
Показывает
скрытые проблемы и упрощает их диагностику. ·
Допускает
достаточно простую автоматизацию тест-кейсов и их выполнение на самых
ранних стадиях развития проекта. ·
Обладает
развитой системой метрик, сбор и анализ которых легко автоматизируется.
·
Стимулирует
разработчиков к написанию качественного кода. ·
Многие
техники этого метода являются проверенными, хорошо себя зарекомендовавшими
решениями, базирующимися на строгом техническом подходе.
|
·
Не
может выполняться тестировщиками, не обладающими достаточными знаниями в
области программирования. ·
Тестирование
сфокусировано на реализованной функциональности, что повышает вероятность
пропуска нереализованных требований. ·
Поведение
приложения исследуется в отрыве от реальной среды выполнения и не
учитывает её влияние. ·
Поведение
приложения исследуется в отрыве от реальных пользовательских сценариев.
|
Метод
чёрного ящика |
·
Тестировщик не обязан
обладать (глубокими) знаниями в области программирования.
·
Поведение приложения
исследуется в контексте реальной среды выполнения и учитывает её влияние.
·
Поведение приложения
исследуется в контексте реальных пользовательских сценариев.
·
Тест-кейсы можно создавать
уже на стадии появления стабильных требований. ·
Процесс создания
тест-кейсов позволяет выявить дефекты в требованиях.
·
Допускает создание
тест-кейсов, которые можно многократно использовать на разных
проектах.
|
·
Возможно
повторение части тест-кейсов, уже выполненных разработчиками.
·
Высока
вероятность того, что часть возможных вариантов поведения приложения
останется непротестированной. ·
Для
разработки высокоэффективных тест-кейсов необходима качественная
документация. ·
Диагностика
обнаруженных дефектов более сложна в сравнении с техниками метода белого
ящика. ·
В
связи с широким выбором техник и подходов затрудняется планирование и
оценка трудозатрат. ·
В
случае автоматизации могут потребоваться сложные дорогостоящие
инструментальные средства. |
Метод
серого ящика |
Сочетает
преимущества и недостатки методов белого и чёрного ящика |
Таблица
№1 Преимущества и недостатки методов белого, чёрного и серого
ящиков.