Из Википедии, бесплатной энциклопедии
  (Перенаправлено из тестирования серого ящика )
Перейти к навигации Перейти к поиску

Тестирование Серого ящика (Международные английские орфографии: тестирование серого ящика ) представляет собой сочетание тестирования белого ящика и тестирование черного ящика . Целью этого тестирования является поиск дефектов, связанных с неправильной структурой или неправильным использованием приложений. [1] [2]

Обзор [ править ]

Тестировщик «черного ящика» не знает внутренней структуры приложения, которое нужно протестировать, в то время как тестировщик «белого ящика» имеет доступ к внутренней структуре приложения. Тестировщик серого ящика частично знает внутреннюю структуру, которая включает доступ к документации внутренних структур данных, а также к используемым алгоритмам. [3]

Тестировщикам серого ящика требуются как высокоуровневые, так и подробные документы с описанием приложения, которые они собирают для определения тестовых примеров. [4]

Необходимость тестирования серого ящика [ править ]

Тестирование «серого ящика» выгодно, поскольку оно использует простую технику тестирования «черного ящика» и объединяет его с системами, ориентированными на код, в тестировании «белого ящика».

Тестирование методом серого ящика основано на генерации тестового примера требований, поскольку оно представляет все условия перед тестированием программы с использованием метода утверждения. Язык спецификации требований используется для облегчения понимания требований и проверки их правильности. [5]

Допущения при тестировании «серого ящика» для объектно-ориентированного программного обеспечения [ править ]

Объектно-ориентированное программное обеспечение состоит в основном из объектов; где объекты - это отдельные неделимые единицы, имеющие исполняемый код и / или данные. Ниже приведены некоторые предположения, необходимые для применения тестирования серого ящика.

  • Активация методов [6]
  • Отчетность о состоянии в тестируемом классе (CUT).
  • Тестирование отчетов является неотъемлемой частью тестируемого класса. [5]

Примеры [ править ]

Методы [ править ]

Джем Канер определяет «тестирование серого ящика как включающее входы и выходы, но дизайн теста основан на информации о коде или работе программы, которая обычно не видна тестеру». [9] К методам тестирования серого ящика относятся:

  • Матричное тестирование: содержит отчет о статусе проекта.
  • Регрессионное тестирование : подразумевает повторный запуск тестовых случаев при внесении новых изменений.
  • Тестирование по образцу: проверьте хорошее приложение на предмет его дизайна, архитектуры и шаблонов.
  • Проверка ортогонального массива : используется как подмножество всех возможных комбинаций. [10]

Эффекты [ править ]

Положительные эффекты [ править ]

  • Предлагает комбинированные преимущества: поскольку тестирование «серого ящика» представляет собой сочетание тестирования «белого ящика» и «черного ящика», оно дает преимущества обоим тестам.
  • Не навязчивый: он основан на функциональной спецификации, архитектурном представлении, но не на исходном коде или двоичных файлах, что также делает его инвазивным.
  • Интеллектуальная разработка тестов: тестер «серого ящика» обрабатывает сценарий интеллектуального тестирования, например, обработку типов данных, протокол связи, обработку исключений .
  • Беспристрастное тестирование: несмотря на все вышеупомянутые преимущества и функциональные возможности, тестирование методом серого ящика поддерживает границы между тестировщиком и разработчиком. [11]

Отрицательные эффекты [ править ]

  • Частичное покрытие кода: при тестировании методом серого ящика исходный код или двоичные файлы отсутствуют из-за ограниченного доступа к внутренним или структурным функциям приложений, что приводит к ограниченному доступу для обхода пути кода.
  • Идентификация дефекта: в распределенных приложениях сложно связать идентификацию дефекта. Тем не менее, тестирование методом серого ящика - это благо, позволяющее определить, насколько уместно эти системы генерировать исключения и насколько хорошо эти исключения обрабатываются в распределенных системах, имеющих среду веб-служб. [11] [12]

Приложения [ править ]

  • Тестирование методом серого ящика хорошо подходит для веб-приложений. Веб-приложения имеют распределенную сеть или системы; из-за отсутствия исходного кода или двоичных файлов невозможно использовать тестирование методом белого ящика. Тестирование черного ящика также не используется из-за простого контракта между заказчиком и разработчиком, поэтому более эффективно использовать тестирование серого ящика, поскольку значительная информация доступна на языке описания веб-служб (WSDL). [13]
  • Тестирование методом серого ящика подходит для функционального или бизнес-тестирования. Функциональное тестирование проводится в основном для проверки взаимодействия пользователя с внешними системами. Тестирование методом серого ящика хорошо подходит для функционального тестирования благодаря своим характеристикам; это также помогает подтвердить, что программное обеспечение соответствует требованиям, определенным для программного обеспечения. [14] [15] [16] [17]

Будущее [ править ]

Распределенная природа Web-сервисов позволяет проводить тестирование методом серого ящика для обнаружения дефектов в сервис-ориентированной архитектуре (SOA). Как мы знаем, тестирование методом белого ящика не подходит для веб-сервисов, поскольку оно имеет дело непосредственно с внутренними структурами. Тестирование методом белого ящика может использоваться для современных методов; например, мутация сообщения, которая генерирует автоматические тесты для больших массивов, чтобы помочь состояниям обработки исключений, потоку без исходного кода или двоичных файлов. Такая стратегия полезна для приближения тестирования серого ящика к результатам тестирования белого ящика.

См. Также [ править ]

  • Модель серая коробка

Ссылки [ править ]

  1. ^ «Microsoft Research - Новые технологии, компьютерные исследования и исследования программного обеспечения» (PDF) .
  2. ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 29 марта 2012 года . Проверено 17 октября 2011 года . CS1 maint: заархивированная копия как заголовок ( ссылка )
  3. ^ «Тестирование серого ящика» . Основы тестирования программного обеспечения. 4 ноября 2011 . Проверено 19 января 2012 года .
  4. ^ «Пример тестирования серого ящика с определением» . Geekinterview.com . Проверено 19 января 2012 года .
  5. ^ a b Джейк Роджерс (8 августа 2016 г.). «Общие вопросы относительно тестирования серого ящика» . cgsec.co.uk . Проверено 8 августа +2016 .
  6. ^ «Объектно-ориентированные расширения Паскаля» . Pascal-central.com . Проверено 19 января 2012 года .
  7. Паттон, Рон (26 июля 2005 г.). Тестирование программного обеспечения . Sams. п. 2 . ISBN 978-0-672-32798-8.
  8. ^ «Архивная копия» (PDF) . Архивировано 3 апреля 2012 года из оригинального (PDF) . Проверено 17 октября 2011 года . CS1 maint: заархивированная копия как заголовок ( ссылка )
  9. Перейти ↑ Nguyen, Hung Q (2001). Тестирование приложений в Интернете: планирование тестирования для интернет-систем . Джон Вили и сыновья. ISBN 9780471437642.
  10. ^ «Исследуйте мир тестирования серого ящика» . Extremesoftwaretesting.com . Проверено 19 января 2012 года .
  11. ^ a b «Инструменты тестирования SOA для методов тестирования SOA черного, белого и серого ящиков» . Crosschecknet.com. Архивировано из оригинала на 1 октября 2018 года . Проверено 19 января 2012 года .
  12. ^ "E33 Gray Box Testing.PDF" (PDF) .
  13. ^ Ramdeo, Ананд (5 мая 2011). «Тестирование серого ящика - программное обеспечение» . Компьютерщик-тестировщик . Проверено 19 января 2012 года .
  14. ^ Бах, Джеймс. Уроки, полученные при тестировании программного обеспечения . Wiley Computer Publishing.
  15. Фальк, Джек. Тестирование компьютерного программного обеспечения, 2-е издание . Wiley Computer Publishing.
  16. ^ http://legacy.cleanscape.net/docs_lib/paper_graybox.pdf
  17. ^ Ли, ZJ; Тан, ВЧ; Лю, HH; Zhu, J .; Мицумори, Нью-Мексико (6 апреля 2010 г.). «Тестирование SOA серого ящика на основе бизнес-процессов». IBM Systems Journal . 47 (3): 457–472. DOI : 10.1147 / sj.473.0457 .