Содержание:
- Что такое метод “серого ящика”?
- Пример применения
- Стратегия тестирования
- Виды тестирования «серого ящика»
- Плюсы метода
- Минусы метода
- Заключение
Что такое метод “серого ящика”?
Тестирование методом “серого ящика” (Gray box testing) — это метод тестирования, при котором тестировщики имеют частичное понимание внутренней структуры системы или имеют доступ к коду.
Этот подход сочетает в себе элементы тестирования “черного ящика” (без доступа к внутренней структуре ПО или знаний о нем) и “белого ящика” (в котором анализируется код).
Тестирование “серого ящика” часто применяется в интеграционном тестировании и тестировании на проникновение (pentest), где интеграционное тестирование проверяет взаимодействие между модулями системы, а тестирование на проникновение выявляет уязвимости, имитируя атаки.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Пример применения
Предположим, у нас есть приложение и доступ к его базе данных (БД). Имея этот доступ, тестировщик может сравнить информацию, которая отображается в приложении с тем, что находится в БД. То есть проверить наличие данных, их актуальность и корректность, а также типы данных, которые могут хранить определенные поля различных таблиц. Эти знания позволяют разрабатывать более точные тест-кейсы, что повышает качество тестирования.
Стратегия тестирования
При использовании метода “белого ящика” тестировщики изучают различные проектные документы и внутреннее строение приложения. В случае с методом “серого ящика” полное знание исходного кода не требуется, достаточно ограниченной информации о структуре данных, используемых алгоритмах и внутренней архитектуре системы.
Тестировщики разрабатывают тест-кейсы на основе этих знаний, а затем проводят тестирование по созданным кейсам методом “черного ящика”.
Виды тестирования «серого ящика»
- Матричное тестирование: разработчиками определяются и предоставляются все переменные в программе, а также связанные с ними бизнес- и технические риски. Это помогает идентифицировать и удалять переменные, которые не используются в системе, что, в свою очередь, увеличивает скорость работы программного обеспечения.
- Регрессионное тестирование: проверяет, что новые изменения не нарушили уже существующую функциональность системы и что исправления ошибок не повлияли на другие части приложения. Поскольку регрессионное тестирование проводится после каждого изменения и каждого крупного исправления ошибки, оно предполагает использование средств автоматизации для увеличения скорости прохождения проверок.
- Тестирование с помощью ортогональных массивов: используется для оптимизации количества разрабатываемых тест-кейсов при большом наборе входных данных. Техника позволяет находить ошибки логики в программном компоненте.
- Шаблонное тестирование: разработка тест-кейсов на основе общих шаблонов (паттернов), которые могут быть применены к различным функциональным областям приложения. Эти шаблоны могут включать в себя типичные сценарии использования, ошибки или уязвимости, найденных при анализе предыдущих дефектов. Техника помогает создавать более эффективные проверки в проблемных зонах.
Плюсы метода
- Поскольку тестирование методом “серого ящика” представляет собой комбинацию тестирования “черного ящика” и “белого ящика”, оно сочетает преимущества обеих методик.
- Знание внутренней структуры системы помогает тестировщику разрабатывать более детализированные тест-кейсы.
- Не требуется полный доступ к исходному коду, что защищает его от нежелательных изменений.
- Не смотря на то, что тестировщики имеют частичное представление о коде, тестирование проводится с точки зрения конечного пользователя. Это помогает выявить проблемы, которые разработчики могли упустить во время модульного тестирования.
- Обеспечивается возможность быстрого устранения проблем благодаря частичному доступу к коду.
- Не требуется высоких навыков программирования для выполнения тестирования.
Минусы метода
- Отсутствие полного доступа к исходному коду затрудняет полное покрытие путей, то есть проверку, были ли выполнены и протестированы все возможные пути через заданную часть кода. Это может привести к пропуску некоторых критических дефектов.
- Невозможно тестирование алгоритмов (проверка и валидация алгоритмов, используемых в приложении, с целью убедиться, что они работают корректно и эффективно) из-за ограниченного доступа к их логике.
- Часто оказывается неприменимым для тестирования распределенных систем. Распределенные системы состоят из множества компонентов, которые могут находиться на разных серверах или устройствах. Это создает сложные взаимодействия между компонентами, которые могут быть трудными для понимания и анализа. Тестировщик может не иметь полного представления о том, как все части системы взаимодействуют друг с другом.
Заключение
Метод тестирования “серого ящика” сочетает элементы “белого” и “черного” ящика, позволяя использовать частичные знания о структуре данных и алгоритмах системы. Это повышает качество программного обеспечения и особенно полезно при тестировании веб-приложений.
Перевод статьи «Grey Box Testing».