Любой начинающий тестировщик хоть раз, но слышал о таких понятиях, как тестирование черного, белого, а также серого ящика. На просторах Интернета можно найти массу полезного материала об особенностях проверки первых двух видов. А вот касательно тестирования серого ящика (англ. grey box testing) информации очень мало.
Чтобы хоть немного прояснить ситуацию, далее в статье будут рассмотрены базовые принципы «серого ящика» (его преимущества и явные недостатки), а также даны объяснения ситуаций, в которых он должен использоваться.
Тестирование серого ящика технически сочетает в себе некоторые элементы тестирования методами черного и белого ящика. А это значит, что знакомство с понятием тестирования серого ящика нужно начинать с анализа характеристик других 2 типов тестов.
Тестирование методом черного ящика
Тестирование черного ящика (англ. black box testing) – специальный метод проверки работоспособности программного обеспечения, при котором вся функциональность продукта исследуется без анализа исходного кода. Тестировщики создают логически понятные тест-кейсы, опираясь исключительно на требования из спецификации на проекте.
Преимущества:
- Позволяет быстро находить баги в разработанной функциональности ПО;
- Тестировщик не обязательно должен обладать узкопрофильной специальностью;
- Проверка проходит с позиции конечного потребителя;
- Разрабатывать тест-кейсы можно сразу же после завершения работы со спецификацией.
С помощью данного метода тестирования можно выполнять следующие проверки:
- Функциональная проверка ПО;
- Регрессионные проверки;
- Юзабилити-тестирование;
- Дымовое тестирование;
- Проверку графического интерфейса пользователя.
Но не всегда данный тип тестирования является достаточным, ведь всегда есть риск пропустить серьезные ошибки.
Тестирование методом белого ящика
Тестирование белого ящика (англ. white box testing) – особый метод проверки ПО, который подразумевает, что внутренняя структура и технические особенности ПО досконально известны проверяющему.
Проверка белого ящика состоит из нескольких взаимодополняющих типов тестирования, используемых для оценки удобства применения веб-продукта, части кода или особого программного функционала.
На основе такого тестирования можно совершать следующие проверки:
- Юнит-тесты;
- Интеграционные проверки;
- Системное тестирование компонентов;
- Проверка архитектуры безопасности функционирования ПО.
Традиционно, подобным типом тестирования занимаются программисты, так как для таких проверок специалист должен обладать высокой технической квалификацией.
Базовые достоинства такого метода тестирования:
- Оптимизация программного кода путем поиска скрытых багов;
- Создание автоматизированных тест-кейсов;
- Использование наиболее подходящего вида входных данных, применяемых для качественного процесса тестирования.
Тестирование методом серого ящика
Проверка серого ящика (англ. grey box testing) – специальный метод тестирования программного обеспечения с неполным знанием его внутреннего устройства. Чтобы выполнить подобный вид тестов, не нужно иметь доступ к исходному коду ПО.
Все тесты создаются на базе простого знания алгоритмов, архитектуры и иных высокоуровневых характеристик поведения продукта.
Типы тестов серого ящика:
- Регрессионные проверки;
- Матричные проверки;
- Шаблонное тестирование;
- Проверка ПО с помощью ортогонального массива.
Основные преимущества метода:
- Имеет некоторые особенности черного и белого ящика. Иными словами, тестировщик смотрит на объект проверки с позиции черного ящика, но проводит анализ системы с точным расчетом данных, которые ему предварительно известны (белый ящик).
- QA-специалист может создавать и применять более сложные тестовые сценарии.
- Данная проверка позволяет программисту заручиться достаточным количеством времени для исправления багов.
- Программист взаимодействует с тестировщиком на начальном уровне, что позволяет сразу же убрать ненужные и избыточные тест-кейсы.
Недостатки:
- Анализ программного кода ограничен, так как доступа к исходному коду у тестировщика нет.
- Нет времени тестировать все потоки ввода и вывода информации, так как это займет очень много времени.
- Возможна ситуация, когда тестировщики могут стать лишними (когда не только QA-специалист, но и программист проверяет свой код с помощью юнит-тестов).
Краткие итоги
Итак, тестирование методом серого ящика наиболее востребовано в ситуации, когда QA-инженеры могут получить полноценный доступ к проектной документации и у них есть достаточно времени на подготовку тест-кейсов со сценариями тестирования.
Максимальная польза от применения подобного вида тестирования наблюдается во время проверки веб-приложений, веб-сервисов, графического интерфейса пользователя, и при выполнении разнообразных функциональных тестов ПО, ориентированных на системную и клиентскую безопасность.
Оставить комментарий