Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Тестирование с использованием белого черного и серого ящика

Лекция



Привет, Вы узнаете о том , что такое черный ящик, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое черный ящик, белый ящик, серый ящик , настоятельно рекомендую прочитать все из категории Качество и тестирование программного обеспечения. Quality Assurance..

Для того чтобы лучше понимать подходы к тестированию программного обеспечения, нужно, конечно же, знать, какие виды и типы тестирования в принципе бывают. Давайте начнем с рассмотрения основных типов тестирования, которые определяют высокоуровневую классификацию тестов.

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

1. Модели черного , серого и белого ящиков

Черный я́щик — термин, используемый для обозначения системы, внутреннее устройство и механизм работы которой очень сложны, неизвестны или неважны в рамках данной задачи. «Метод черного ящика» — метод исследования таких систем, когда вместо свойств и взаимосвязей составных частей системы, изучается реакция системы, как целого, на изменяющиеся условия. Подход черного ящика сформировался в точных науках (в кибернетике, системотехнике и физике) в 1920—1940-х годах и был заимствован другими науками (например, бихевиористической психологией).

Тестирование методом черного ящика или поведенческое тестирование — стратегия (метод) тестирования функционального поведения объекта (программы, системы) с точки зрения внешнего мира, при котором не используется знание о внутреннем устройстве (коде) тестируемого объекта. Иначе говоря, тестированием черного ящика занимаются тестировщики, не имеющие доступ к исходному коду приложения. Под стратегией понимаются систематические методы отбора и создания тестов для тестового набора. Стратегия поведенческого теста исходит из технических требований и их спецификаций.

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

В математике , статистике и компьютерном моделировании модель серого ящика объединяет частичную теоретическую структуру с данными для завершения модели. Теоретическая структура может варьироваться от информации о гладкости результатов до моделей, которым нужны только значения параметров из данных или существующей литературы. Таким образом, почти все модели представляют собой модели «серого ящика», в отличие от « черного ящика», где не предполагается форма модели, или моделей « белого ящика», которые являются чисто теоретическими. Некоторые модели принимают особую форму, такую ​​как линейная регрессия илинейронная сеть . У них есть специальные методы анализа. В частности, методы линейной регрессии намного более эффективны, чем большинство нелинейных методов. Модель может быть детерминированной или стохастической (т.е. содержать случайные компоненты) в зависимости от планируемого использования.

Тестирование методом белого ящика (англ. white-box testing), также тестирование стеклянного ящика (англ. glass-box testing), структурное тестирование (англ. structural testing) — тестирование, которое учитывает внутренние механизмы системы или компонента (ISO/IEC/IEEE 24765).

Обычно включает тестирование ветвей, маршрутов, операторов (см. покрытие кода). При тестировании выбирают входы для выполнения разных частей кода и определяют ожидаемые результаты. Это напоминает внутрисхемное тестирование (англ.).

Тестирование с использованием белого черного и серого ящика

Black Box черный ящик тестирование методом черного ящик

Summary: Мы не знаем, как устроена тестируемая система.

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

Согласно ISTQB:

2. Тестирование черного ящика – это:

  • – тестирование, как функциональное, так и нефункциональное, не предполагающее знания внутреннего устройства компонента или системы.
  • – тест-дизайн, основанный на технике черного ящика – процедура написания или выбора тест-кейсов на основе анализа функциональной или нефункциональной спецификации компонента или системы без знания ее внутреннего устройства.

Почему именно «черный ящик»? Тестируемая программа для тестировщика – как черный непрозрачный ящик, содержания которого он не видит. Об этом говорит сайт https://intellect.icu . Целью этой техники является поиск ошибок в таких категориях:

  • – неправильно реализованные или недостающие функции;
  • – ошибки интерфейса;
  • – ошибки в структурах данных или организации доступа к внешним базам данных;
  • – ошибки поведения или недостаточная производительности системы;

Таким образом, мы не имеем представления о структуре и внутреннем устройстве системы. Нужно концентрироваться на том, что программа делает, а не на том, как она это делает.

Пример тестирование методом черного ящика:

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

Поскольку это тип тестирования, по определению он может включать другие его виды. Тестирование черного ящика может быть как функциональным, так и нефункциональным. Функциональное тестирование предполагает проверку работы функций системы, а нефункциональное – соответственно, общие характеристики нашей программы.

Техника черного ящика применима на всех уровнях тестирования (от модульного до приемочного), для которых существует спецификация. Например, при осуществлении системного или интеграционного тестирования, требования или функциональная спецификация будут основой для написания тест-кейсов.

Техники тест-дизайна, основанные на использования черного ящика, включают:

  • – классы эквивалентности;
  • – анализ граничных значений;
  • – таблицы решений;
  • – диаграммы изменения состояния;
  • – тестирование всех пар.

Преимущества метода черного ящика:

  • – тестирование производится с позиции конечного пользователя и может помочь обнаружить неточности и противоречия в спецификации;
  • – тестировщику нет необходимости знать языки программирования и углубляться в особенности реализации программы;
  • – тестирование может производиться специалистами, независимыми от отдела разработки, что помогает избежать предвзятого отношения;
  • – можно начинать писать тест-кейсы, как только готова спецификация.

Недостатки метода четного ящика:

  • – тестируется только очень ограниченное количество путей выполнения программы;
  • – без четкой спецификации (а это скорее реальность на многих проектах) достаточно трудно составить эффективные тест-кейсы;
  • – некоторые тесты могут оказаться избыточными, если они уже были проведены разработчиком на уровне модульного тестирования;

Противоположностью техники черного ящика является тестирование методом белого ящика, речь о котором пойдет ниже.

Методы разработки тестов с использованием черного ящика

Типичные методы разработки тестов черного ящика включают:

  • Тестирование таблицы решений
  • Тестирование всех пар
  • Разделение эквивалентности
  • Анализ граничных значений
  • Причинно-следственный график
  • Ошибка при угадывании
  • Тестирование перехода между состояниями
  • Случай использования тестирования
  • Тестирование пользовательской истории
  • Анализ домена
  • Тестирование синтаксиса
  • Комбинирующая техника

3. White Box белый ящик тестирование методом белого ящика

Summary: Нам известны все детали реализации тестируемой программы.

Тестирование методом белого ящика (также: прозрачного, открытого, стеклянного ящика; основанное на коде или структурное тестирование) – метод тестирования программного обеспечения, который предполагает, что внутренняя структура/устройство/реализация системы известны тестировщику. Мы выбираем входные значения, основываясь на знании кода, который будет их обрабатывать. Точно так же мы знаем, каким должен быть результат этой обработки. Знание всех особенностей тестируемой программы и ее реализации – обязательны для этой техники. Тестирование белого ящика – углубление во внутренне устройство системы, за пределы ее внешних интерфейсов.

Согласно ISTQB:

тестирование белого ящика – это:

  • – тестирование, основанное на анализе внутренней структуры компонента или системы.
  • – тест-дизайн, основанный на технике белого ящика – процедура написания или выбора тест-кейсов на основе анализа внутреннего устройства системы или компонента.

Почему «белый ящик»? Тестируемая программа для тестировщика – прозрачный ящик, содержимое которого он прекрасно видит.

Пример тестирования методом белого ящика:

Тестировщик, который, как правило, является программистом, изучает реализацию кода поля ввода на веб-странице, определяет все предусмотренные (как правильные, так и неправильные) и не предусмотренные пользовательские вводы, и сравнивает фактический результат выполнения программы с ожидаемым. При этом ожидаемый результат определяется именно тем, как должен работать код программы.

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

Техника белого ящика применима на разных уровнях тестирования – от модульного до системного, но главным образом применяется именно для реализации модульного тестирования компонента его автором.

Уровни и методы тестирования с использованием белого ящика

  1. Модульное тестирование . Тестирование методом белого ящика выполняется во время модульного тестирования, чтобы убедиться, что код работает должным образом, до того, как произойдет интеграция с ранее протестированным кодом. Тестирование методом белого ящика во время модульного тестирования потенциально выявляет многие дефекты на раннем этапе и помогает устранить дефекты, которые возникают позже, после интеграции кода с остальной частью приложения, и, следовательно, снижает влияние ошибок на более поздних этапах разработки.
  2. Интеграционное тестирование . Тестирование белого ящика на этом уровне написано для проверки взаимодействия интерфейсов друг с другом. Тестирование на уровне модулей позволило убедиться, что каждый код протестирован и работает соответствующим образом в изолированной среде, а интеграция проверяет правильность поведения в открытой среде с помощью тестирования белого ящика для любых взаимодействий интерфейсов, известных программисту.
  3. Регрессионное тестирование . Тестирование белого ящика во время регрессионного тестирования - это использование переработанных тестовых случаев белого ящика на уровне модульного и интеграционного тестирования.

Преимущества метода белого ящика:

  • – тестирование может производиться на ранних этапах: нет необходимости ждать создания пользовательского интерфейса;
  • – можно провести более тщательное тестирование, с покрытием большого количества путей выполнения программы.

Недостатки метода белого ящика:

  • – для выполнения тестирования белого ящика необходимо большое количество специальных знаний
  • – при использовании автоматизации тестирования на этом уровне, поддержка тестовых скриптов может оказаться достаточно накладной, если программа часто изменяется.

Сравнение Black Box и White Box

Тестирование с использованием белого черного и серого ящика

4. Grey Box серый ящик , тестирование методом серого ящика

Summary: Нам известны только некоторые особенности реализации тестируемой системы.

Тестирование методом серого ящика – метод тестирования программного обеспечения, который предполагает, комбинацию White Box и Black Box подходов. То есть, внутреннее устройство программы нам известно лишь частично. Предполагается, например, доступ к внутренней структуре и алгоритмам работы ПО для написания максимально эффективных тест-кейсов, но само тестирование проводится с помощью техники черного ящика, то есть, с позиции пользователя.

Эту технику тестирования также называют методом полупрозрачного ящика: что-то мы видим, а что-то – нет.

Пример использования метода серого ящика:

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

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

Методы используемые при тестировани методом серого ящика

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

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

Достоинства тестирования методом серого ящика

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

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

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

Вау!! 😲 Ты еще не читал? Это зря!

Исследование, описанное в статье про черный ящик, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое черный ящик, белый ящик, серый ящик и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Качество и тестирование программного обеспечения. Quality Assurance.

создано: 2020-09-26
обновлено: 2024-11-14
8



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Качество и тестирование программного обеспечения. Quality Assurance.

Термины: Качество и тестирование программного обеспечения. Quality Assurance.