Тестирование серого ящика (международное написание английского языка: grey-box testing ) — это комбинация тестирования белого ящика и тестирования черного ящика . Целью данного тестирования является поиск дефектов, если таковые имеются, из-за неправильной структуры или неправильного использования приложений. [1] [2]
Обзор
Тестировщик черного ящика не знает о внутренней структуре тестируемого приложения, в то время как тестировщик белого ящика имеет доступ к внутренней структуре приложения. Тестировщик серого ящика частично знает внутреннюю структуру, что включает доступ к документации внутренних структур данных, а также к используемым алгоритмам. [3]
Тестировщикам, работающим по принципу «серого ящика», требуются как высокоуровневые, так и подробные документы, описывающие приложение, которые они собирают для определения тестовых случаев. [4]
Необходимость тестирования методом «серого ящика»
Тестирование методом серого ящика полезно, поскольку оно использует простую технику тестирования методом черного ящика и объединяет ее с системами, ориентированными на код, в тестировании методом белого ящика.
Тестирование серого ящика основано на генерации тестовых случаев требований, поскольку оно представляет все условия до того, как программа будет протестирована с использованием метода утверждения. Язык спецификации требований используется для того, чтобы облегчить понимание требований и проверку их правильности. [5]
Предположения по тестированию методом «серого ящика» для объектно-ориентированного программного обеспечения
Объектно-ориентированное программное обеспечение состоит в основном из объектов; где объекты являются отдельными неделимыми единицами, имеющими исполняемый код и/или данные. Ниже приведены некоторые предположения, необходимые для применения тестирования серого ящика.
- Активация методов [6]
- Отчетность по состоянию на экзамене (CUT).
- Тестирование отчетов является неотъемлемой частью тестируемого класса. [5]
Примеры
Методы
Джем Канер определяет «тестирование методом серого ящика как включающее входы и выходы, но разработка теста основана на информации о коде или работе программы, которая обычно находится вне поля зрения тестировщика». [9] Методы тестирования методом серого ящика:
- Матричное тестирование: содержит отчет о состоянии проекта.
- Регрессионное тестирование : подразумевает повторный запуск тестовых случаев в случае внесения новых изменений.
- Тестирование шаблонов: проверка хорошего приложения на предмет его дизайна или архитектуры и шаблонов.
- Тестирование ортогонального массива : используется как подмножество всех возможных комбинаций. [10]
Эффекты
Положительные эффекты
- Предлагает комбинированные преимущества: поскольку тестирование по методу серого ящика представляет собой комбинацию тестирования по методу белого ящика и тестирования по методу черного ящика, оно обеспечивает преимущества обоих видов тестирования.
- Ненавязчивый: основан на функциональной спецификации и архитектурном представлении, а не на исходном коде или двоичных файлах, что делает его также навязчивым.
- Интеллектуальная разработка тестов: тестер «серого ящика» обрабатывает интеллектуальные тестовые сценарии, например, обработку типов данных, протокол связи, обработку исключений .
- Беспристрастное тестирование: несмотря на все вышеперечисленные преимущества и функциональные возможности, тестирование методом серого ящика сохраняет границу между тестировщиком и разработчиком. [11]
Отрицательные эффекты
- Частичное покрытие кода: при тестировании методом «серого ящика» исходный код или двоичные файлы отсутствуют из-за ограниченного доступа к внутренним компонентам или структуре приложений, что приводит к ограниченному доступу к обходу пути кода.
- Идентификация дефектов: в распределенных приложениях сложно связать идентификацию дефектов. Тем не менее, тестирование методом серого ящика является благом для определения того, насколько уместно эти системы выдают исключения и насколько хорошо эти исключения обрабатываются в распределенных системах, имеющих среду веб-сервисов. [11] [12]
Приложения
- Тестирование серого ящика хорошо подходит для веб-приложений. Веб-приложения имеют распределенную сеть или системы; из-за отсутствия исходного кода или двоичных файлов невозможно использовать тестирование белого ящика. Тестирование черного ящика также не используется из-за простого контракта между заказчиком и разработчиком, поэтому более эффективно использовать тестирование серого ящика, поскольку значительная информация доступна в языке описания веб-сервисов (WSDL). [13]
- Тестирование серого ящика подходит для функционального или бизнес-тестирования. Функциональное тестирование в основном представляет собой проверку взаимодействия пользователя с внешними системами. Тестирование серого ящика хорошо подходит для функционального тестирования благодаря своим характеристикам; оно также помогает подтвердить, что программное обеспечение соответствует требованиям, определенным для программного обеспечения. [14] [15] [16] [17]
Будущие возможности
Распределенная природа веб-сервисов позволяет серому ящику тестировать для обнаружения дефектов в сервисно-ориентированной архитектуре (SOA). Как мы знаем, белый ящик тестировать не подходит для веб-сервисов, так как он имеет дело непосредственно с внутренними структурами. Белый ящик тестировать можно для методов state art; например, мутация сообщений, которая генерирует автоматические тесты для больших массивов, чтобы помочь в обработке исключений состояний, потока без исходного кода или двоичных файлов. Такая стратегия полезна для приближения серого ящика к результатам белого ящика тестирования.
Смотрите также
Ссылки
- ^ «Microsoft Research – Новые технологии, компьютерные и программные исследования» (PDF) .
- ^ "Архивная копия" (PDF) . Архивировано из оригинала (PDF) 29 марта 2012 года . Получено 17 октября 2011 года .
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка ) - ^ "Тестирование серого ящика". Основы тестирования программного обеспечения. 4 ноября 2011 г. Архивировано из оригинала 16 ноября 2021 г. Получено 19 января 2012 г.
- ^ "Пример тестирования серого ящика с определением". Geekinterview.com . Получено 19 января 2012 г. .
- ^ ab Jake Rogers (8 августа 2016 г.). «Распространенные вопросы, касающиеся тестирования методом серого ящика». cgsec.co.uk . Получено 8 августа 2016 г. .[ постоянная мертвая ссылка ]
- ^ "Объектно-ориентированные расширения для Паскаля". Pascal-central.com. Архивировано из оригинала 5 июня 2021 г. Получено 19 января 2012 г.
- ^ Паттон, Рон (26 июля 2005 г.). Тестирование программного обеспечения . Sams. стр. 2. ISBN 978-0-672-32798-8.
- ^ "Архивная копия" (PDF) . Архивировано из оригинала (PDF) 3 апреля 2012 года . Получено 17 октября 2011 года .
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка ) - ^ Нгуен, Хунг Кью (2001). Тестирование приложений в Интернете: Планирование тестирования для систем на базе Интернета . John Wiley & Sons. ISBN 9780471437642.
- ^ «Исследуйте мир тестирования серого ящика». Extremesoftwaretesting.com . Получено 19 января 2012 г.
- ^ ab "Инструменты тестирования SOA для методов тестирования SOA Black, White и Gray Box". Crosschecknet.com. Архивировано из оригинала 1 октября 2018 г. Получено 19 января 2012 г.
- ^ "Тестирование серого ящика E33.PDF" (PDF) .
- ^ Рамдео, Ананд (5 мая 2011 г.). "Тестирование серого ящика - программное обеспечение". Testing Geek . Получено 19 января 2012 г.
- ^ Бах, Джеймс (31 декабря 2001 г.). Уроки, извлеченные из тестирования программного обеспечения. Wiley Computer Publishing. ISBN 978-0-471-08112-8.
- ↑ Фальк, Джек (12 апреля 1999 г.). Тестирование компьютерного программного обеспечения, 2-е издание. Wiley Computer Publishing. ISBN 978-0-471-35846-6.
- ^ http://legacy.cleanscape.net/docs_lib/paper_graybox.pdf [ пустой URL-адрес PDF ]
- ^ Ли, ZJ; Тан, HF; Лю, HH; Чжу, J.; Мицумори, NM (6 апреля 2010 г.). «Тестирование SOA в стиле «серый ящик», управляемое бизнес-процессами». IBM Systems Journal . 47 (3): 457–472. doi :10.1147/sj.473.0457.