Тестирование серого ящика
Системы черного ящика | |
---|---|
Система | |
Черный ящик , машина Oracle | |
Методы и техники | |
Тестирование «черного ящика» , «черный ящик» | |
Связанные методы | |
Упреждение , Обфускация , Распознавание образов , Белый ящик , Тестирование белого ящика , Тестирование серого ящика , Идентификация системы | |
Основы | |
Априорная информация , Системы управления , Открытые системы , Исследование операций , Термодинамические системы | |
Тестирование серого ящика (международное английское написание: тестирование серого ящика ) представляет собой комбинацию тестирования белого ящика и тестирования черного ящика . Целью данного тестирования является поиск дефектов, если таковые имеются, возникших из-за неправильной структуры или неправильного использования приложений. [1] [2]
Обзор
[ редактировать ]Тестер «черного ящика» не знает внутренней структуры тестируемого приложения, тогда как тестер «белого ящика» имеет доступ к внутренней структуре приложения. Тестировщик серого ящика частично знает внутреннюю структуру, что включает доступ к документации внутренних структур данных, а также используемых алгоритмов. [3]
Тестировщикам «серого ящика» требуются как высокоуровневые, так и подробные документы, описывающие приложение, которые они собирают для определения тестовых примеров. [4]
Необходимость тестирования серого ящика
[ редактировать ]Тестирование «серого ящика» полезно, поскольку оно использует простой метод тестирования «черного ящика» и сочетает его с системами, ориентированными на код, при тестировании «белого ящика».
Тестирование серого ящика основано на создании тестовых сценариев требований, поскольку оно представляет все условия перед тестированием программы с использованием метода утверждения. требований Язык спецификации используется для облегчения понимания требований и проверки их правильности. [5]
Допущения тестирования «серого ящика» для объектно-ориентированного программного обеспечения
[ редактировать ]Объектно-ориентированное программное обеспечение состоит в основном из объектов; где объекты представляют собой единые неделимые единицы, имеющие исполняемый код и/или данные. Ниже изложены некоторые предположения, которые необходимы для применения тестирования серого ящика.
- Активация методов [6]
- Отчетность штата в тестируемом классе (CUT).
- Тестирование отчета присуще тестируемому классу. [5]
Примеры
[ редактировать ]- Архитектурная модель
- Унифицированный язык моделирования — модель проектирования UML
- Конечный автомат – Модель состояния. [7] [8]
Техники
[ редактировать ]Сем Канер определяет «тестирование серого ящика как включающее входные и выходные данные, но дизайн теста основан на информации о коде или работе программы, которая обычно находится вне поля зрения тестировщика». [9] Методы тестирования серого ящика:
- Матричное тестирование: содержит отчет о состоянии проекта.
- Регрессионное тестирование : подразумевает повторный запуск тестовых случаев в случае внесения новых изменений.
- Тестирование шаблонов: проверьте хорошее приложение на предмет его дизайна, архитектуры и шаблонов.
- Тестирование ортогонального массива : используется как подмножество всех возможных комбинаций. [10]
Эффекты
[ редактировать ]Положительные эффекты
[ редактировать ]- Предлагает комбинированные преимущества: поскольку тестирование «серого ящика» представляет собой комбинацию тестирования «белого ящика» и «черного ящика», оно дает преимущества обоих тестов.
- Неинтрузивный: он основан на функциональной спецификации, архитектурном представлении, а не на исходном коде или двоичных файлах, что также делает его инвазивным.
- Интеллектуальная разработка тестов: тестер серого ящика обрабатывает интеллектуальные сценарии тестирования, например, обработку типов данных, протокол связи, обработку исключений .
- Непредвзятое тестирование. Несмотря на все вышеперечисленные преимущества и функциональные возможности, тестирование серого ящика сохраняет границу между тестировщиком и разработчиком. [11]
Негативные эффекты
[ редактировать ]- Частичное покрытие кода: при тестировании «серого ящика» исходный код или двоичные файлы отсутствуют из-за ограниченного доступа к внутренней или структуре приложений, что приводит к ограничению доступа для обхода пути кода.
- Идентификация дефектов. В распределенных приложениях сложно связать идентификацию дефектов. Тем не менее, тестирование «серого ящика» является благом для определения того, насколько уместно эти системы выдают исключения и насколько хорошо эти исключения обрабатываются в распределенных системах, имеющих среду веб-сервисов. [11] [12]
Приложения
[ редактировать ]- Тестирование «серого ящика» хорошо подходит для веб-приложений. Веб-приложения имеют распределенную сеть или системы; из-за отсутствия исходного кода или двоичных файлов невозможно использовать тестирование «белого ящика». Тестирование «черного ящика» также не используется из-за простого контракта между клиентом и разработчиком, поэтому более эффективно использовать тестирование «серого ящика», поскольку важная информация доступна на языке описания веб-служб (WSDL). [13]
- Тестирование «серого ящика» подходит для функционального или бизнес-тестирования. Функциональное тестирование — это, по сути, проверка взаимодействия пользователя с внешними системами. Тестирование серого ящика хорошо подходит для функционального тестирования благодаря своим характеристикам; это также помогает подтвердить, что программное обеспечение соответствует требованиям, определенным для программного обеспечения. [14] [15] [16] [17]
Будущие масштабы
[ редактировать ]Распределенная природа веб-сервисов позволяет тестированию «серого ящика» обнаруживать дефекты в сервис-ориентированной архитектуре (SOA). Как мы знаем, тестирование «белого ящика» не подходит для веб-сервисов, поскольку оно касается непосредственно внутренних структур. Тестирование «белого ящика» можно использовать для современных методов; например, мутация сообщений, которая генерирует автоматические тесты для больших массивов, чтобы помочь состояниям обработки исключений, проходит без исходного кода или двоичных файлов. Такая стратегия полезна для приближения тестирования «серого ящика» к результатам тестирования «белого ящика».
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Исследования Microsoft – исследования новых технологий, компьютеров и программного обеспечения» (PDF) .
- ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 29 марта 2012 года . Проверено 17 октября 2011 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ «Тестирование серого ящика» . Основы тестирования программного обеспечения. 4 ноября 2011 г. Архивировано из оригинала 16 ноября 2021 г. . Проверено 19 января 2012 г.
- ^ «Пример тестирования серого ящика с определением» . Geekinterview.com . Проверено 19 января 2012 г.
- ^ Jump up to: а б Джейк Роджерс (8 августа 2016 г.). «Общие вопросы, касающиеся тестирования серого ящика» . cgsec.co.uk . Проверено 8 августа 2016 г. [ постоянная мертвая ссылка ]
- ^ «Объектно-ориентированные расширения Паскаля» . Паскаль-централ.com. Архивировано из оригинала 5 июня 2021 года . Проверено 19 января 2012 г.
- ^ Паттон, Рон (26 июля 2005 г.). Тестирование программного обеспечения . Сэмс. п. 2 . ISBN 978-0-672-32798-8 .
- ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 3 апреля 2012 года . Проверено 17 октября 2011 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ Нгуен, Хунг Кью (2001). Тестирование приложений в Интернете: планирование тестирования интернет-систем . Джон Уайли и сыновья. ISBN 9780471437642 .
- ^ «Исследуйте мир тестирования серого ящика» . Extremesoftwaretesting.com . Проверено 19 января 2012 г.
- ^ Jump up to: а б «Инструменты тестирования SOA для методов тестирования SOA черного, белого и серого ящиков» . Crosschecknet.com. Архивировано из оригинала 1 октября 2018 года . Проверено 19 января 2012 г.
- ^ «Тестирование серого ящика E33.PDF» (PDF) .
- ^ Рамдео, Ананд (5 мая 2011 г.). «Тестирование серого ящика — программное обеспечение» . Тестирование Гика . Проверено 19 января 2012 г.
- ^ Бах, Джеймс (31 декабря 2001 г.). Уроки, извлеченные из тестирования программного обеспечения . Компьютерное издательство Wiley. ISBN 978-0-471-08112-8 .
- ^ Фальк, Джек (12 апреля 1999 г.). Тестирование компьютерного программного обеспечения, 2-е издание . Компьютерное издательство Wiley. ISBN 978-0-471-35846-6 .
- ^ http://legacy.cleanscape.net/docs_lib/paper_graybox.pdf [ пустой URL PDF ]
- ^ Ли, З.Дж.; Тан, HF; Лю, Х.Х.; Чжу, Дж.; Мицумори, Нью-Мексико (6 апреля 2010 г.). «Тестирование SOA серого ящика на основе бизнес-процессов». Системный журнал IBM . 47 (3): 457–472. дои : 10.1147/sj.473.0457 .