Тестирование серого ящика - Gray box testing
Тестирование серого ящика (Международное правописание английского языка: тестирование серого ящика) представляет собой комбинацию тестирование методом белого ящика и черный ящик. Целью этого тестирования является поиск дефектов, связанных с неправильной структурой или неправильным использованием приложений.[1][2]
Обзор
Тестировщик черного ящика не знает внутренней структуры приложения, которое нужно тестировать, в то время как тестер белого ящика имеет доступ к внутренней структуре приложения. Тестировщик серого ящика частично знает внутреннюю структуру, которая включает доступ к документации внутренних структур данных, а также к используемым алгоритмам.[3]
Тестировщикам «серого ящика» требуются как высокоуровневые, так и подробные документы с описанием приложения, которые они собирают для определения тестовых примеров.[4]
Необходимость тестирования серого ящика
Тестирование методом «серого ящика» полезно, поскольку оно использует простую технику тестирования черного ящика и объединяет его с системами, ориентированными на код, в тестировании «белого ящика».
Тестирование методом серого ящика основано на создании тестового примера требований, поскольку оно представляет все условия перед тестированием программы с использованием метода утверждения. Требование язык спецификации используется для облегчения понимания требований и проверки их правильности.[5]
Предположения тестирования серого ящика для объектно-ориентированного программного обеспечения
Объектно-ориентированное программное обеспечение состоит в основном из объектов; где объекты - это единые неделимые единицы, имеющие исполняемый код и / или данные. Ниже приведены некоторые предположения, необходимые для применения тестирования серого ящика.
- Активация методов[6]
- Государственная отчетность в тестируемом классе (CUT).
- Тестирование отчетов является неотъемлемой частью тестируемого класса.[5]
Примеры
- Архитектурная модель
- Единый язык моделирования - Модель проектирования UML
- Конечный автомат - Государственная модель.[7][8]
Методы
Джем Канер определяет «тестирование серого ящика как включающее входы и выходы, но дизайн теста основан на информации о коде или работе программы, которая обычно не видна тестеру».[9] Методы тестирования серого ящика:
- Матричное тестирование: содержит отчет о состоянии проекта.
- Регрессионное тестирование: подразумевает повторный запуск тестовых случаев при внесении новых изменений.
- Тестирование шаблонов: проверьте хорошее приложение на предмет его дизайна, архитектуры и шаблонов.
- Проверка ортогональных массивов: используется как подмножество всех возможных комбинаций. [10]
Последствия
Положительные эффекты
- Предлагает комбинированные преимущества: поскольку тестирование серого ящика представляет собой комбинацию тестирования белого и черного ящиков, оно дает преимущества обоих тестов.
- Не навязчивый: он основан на функциональной спецификации, архитектурном представлении, но не на исходном коде или двоичных файлах, что также делает его агрессивным.
- Интеллектуальная разработка тестов: тестер серого ящика обрабатывает сценарий интеллектуального тестирования, например, обработку типов данных, протокол связи, Обработка исключений.
- Беспристрастное тестирование: несмотря на все вышеупомянутые преимущества и функциональные возможности, тестирование методом серого ящика поддерживает границы между тестировщиком и разработчиком.[11]
Отрицательные эффекты
- Частичное покрытие кода: при тестировании в режиме серого ящика исходный код или двоичные файлы отсутствуют из-за ограниченного доступа к внутренним или структурным функциям приложений, что приводит к ограниченному доступу для обхода пути кода.
- Идентификация дефекта: в распределенных приложениях сложно связать идентификацию дефекта. Тем не менее, тестирование методом серого ящика - это благо, позволяющее определить, насколько уместно эти системы генерировать исключения и насколько хорошо эти исключения обрабатываются в распределенных системах, имеющих среду веб-сервисов.[11][12]
Приложения
- Тестирование методом серого ящика хорошо подходит для веб-приложений. Веб-приложения имеют распределенную сеть или системы; из-за отсутствия исходного кода или двоичных файлов невозможно использовать тестирование методом белого ящика. Тестирование черного ящика также не используется из-за простого контракта между заказчиком и разработчиком, поэтому более эффективно использовать тестирование серого ящика, поскольку значительная информация доступна в Язык описания веб-служб (WSDL).[13]
- Тестирование методом серого ящика подходит для функционального или бизнес-тестирования. Функциональное тестирование проводится в основном для проверки взаимодействия пользователя с внешними системами. Тестирование методом серого ящика хорошо подходит для функционального тестирования благодаря своим характеристикам; это также помогает подтвердить, что программное обеспечение соответствует требованиям, определенным для программного обеспечения.[14][15][16][17]
Будущее
Распределенный характер Веб-сервисы позволяет тестирование серого ящика для обнаружения дефектов в Сервис-Ориентированная Архитектура (SOA). Как мы знаем, тестирование методом белого ящика не подходит для веб-сервисов, поскольку оно имеет дело непосредственно с внутренними структурами. Тестирование методом белого ящика может использоваться для современных методов; например, мутация сообщений, которая генерирует автоматические тесты для больших массивов, чтобы помочь состояниям обработки исключений, потоку без исходного кода или двоичных файлов. Такая стратегия полезна, чтобы приблизить тестирование серого ящика к результатам тестирования белого ящика.
Смотрите также
Рекомендации
- ^ «Microsoft Research - Новые технологии, компьютерные и программные исследования» (PDF).
- ^ «Архивная копия» (PDF). Архивировано из оригинал (PDF) 29 марта 2012 г.. Получено 17 октября 2011.CS1 maint: заархивированная копия как заголовок (связь)
- ^ «Тестирование серого ящика». Основы тестирования программного обеспечения. 4 ноября 2011 г.. Получено 19 января 2012.
- ^ «Пример тестирования серого ящика с определением». Geekinterview.com. Получено 19 января 2012.
- ^ а б Джейк Роджерс (8 августа 2016 г.). «Общие вопросы относительно тестирования серого ящика». cgsec.co.uk. Получено 8 августа 2016.
- ^ «Объектно-ориентированные расширения Паскаля». Pascal-central.com. Получено 19 января 2012.
- ^ Паттон, Рон (26 июля 2005 г.). Тестирование программного обеспечения. Sams. п.2. ISBN 978-0-672-32798-8.
- ^ «Архивная копия» (PDF). Архивировано из оригинал (PDF) 3 апреля 2012 г.. Получено 17 октября 2011.CS1 maint: заархивированная копия как заголовок (связь)
- ^ Нгуен, Хунг Кью (2001). Тестирование приложений в Интернете: планирование тестирования для интернет-систем. Джон Вили и сыновья. ISBN 9780471437642.
- ^ «Откройте для себя мир тестирования серого ящика». Extremesoftwaretesting.com. Получено 19 января 2012.
- ^ а б "Инструменты тестирования SOA для методов тестирования SOA черного, белого и серого ящиков". Crosschecknet.com. Архивировано из оригинал 1 октября 2018 г.. Получено 19 января 2012.
- ^ "E33 Gray Box Testing.PDF" (PDF).
- ^ Рамдео, Ананд (5 мая 2011 г.). «Тестирование серого ящика - программное обеспечение». Компьютерщик-тестировщик. Получено 19 января 2012.
- ^ Бах, Джеймс. Уроки, полученные при тестировании программного обеспечения. Wiley Computer Publishing.
- ^ Фальк, Джек. Программное обеспечение для тестирования, 2-е издание. Wiley Computer Publishing.
- ^ http://legacy.cleanscape.net/docs_lib/paper_graybox.pdf
- ^ Li, Z. J .; Tan, H.F .; Liu, H.H .; Zhu, J .; Мицумори, Н. М. (6 апреля 2010 г.). «Серое тестирование SOA на основе бизнес-процессов». Журнал IBM Systems. 47 (3): 457–472. Дои:10.1147 / sj.473.0457.