Тестирование серого ящика - Gray box testing

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

Обзор

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

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

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

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

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

Предположения тестирования серого ящика для объектно-ориентированного программного обеспечения

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

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

Примеры

Методы

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

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

Последствия

Положительные эффекты

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

Отрицательные эффекты

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

Приложения

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

Будущее

Распределенный характер Веб-сервисы позволяет тестирование серого ящика для обнаружения дефектов в Сервис-Ориентированная Архитектура (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. ^ а б Джейк Роджерс (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). Архивировано из оригинал (PDF) 3 апреля 2012 г.. Получено 17 октября 2011.CS1 maint: заархивированная копия как заголовок (связь)
  9. ^ Нгуен, Хунг Кью (2001). Тестирование приложений в Интернете: планирование тестирования для интернет-систем. Джон Вили и сыновья. ISBN  9780471437642.
  10. ^ «Откройте для себя мир тестирования серого ящика». Extremesoftwaretesting.com. Получено 19 января 2012.
  11. ^ а б "Инструменты тестирования SOA для методов тестирования SOA черного, белого и серого ящиков". Crosschecknet.com. Архивировано из оригинал 1 октября 2018 г.. Получено 19 января 2012.
  12. ^ "E33 Gray Box Testing.PDF" (PDF).
  13. ^ Рамдео, Ананд (5 мая 2011 г.). «Тестирование серого ящика - программное обеспечение». Компьютерщик-тестировщик. Получено 19 января 2012.
  14. ^ Бах, Джеймс. Уроки, полученные при тестировании программного обеспечения. Wiley Computer Publishing.
  15. ^ Фальк, Джек. Программное обеспечение для тестирования, 2-е издание. Wiley Computer Publishing.
  16. ^ http://legacy.cleanscape.net/docs_lib/paper_graybox.pdf
  17. ^ 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.