Что такое тестирование ЧЕРНОГО ЯЩИКА? Методы, примеры и типы

Блок Rate Transition передает данные с выхода блока, работающего с одной скоростью, на вход блока, работающего с другой скоростью. Используйте параметры блока, чтобы обменивать целостность данных и детерминированную передачу на более быстрый отклик или более низкие требования к памяти. Чтобы узнать о целостности данных и детерминированной передаче данных, см. Проблемы с передачей данных (Simulink Coder).

Параметры обработки перехода

Детерминированная передача данных

Обеспечение целостности данных во время передачи данных

Обеспечение детерминированной передачи данных

Недетерминированная передача данных

Более высокие требования к памяти

Обеспечение целостности данных во время передачи данных

Обеспечение детерминированной передачи данных

Возможная потеря целостности данных

Недетерминированная передача данных

Более низкие требования к памяти

Обеспечение целостности данных во время передачи данных

Обеспечение детерминированной передачи данных

Зависимости

Поведение блока Rate Transition зависит от:

Шаги расчета портов, к которым подключается блок (см. Эффекты синхронных шагов расчета и Эффекты асинхронных шагов расчета)

Приоритеты задач для исходного и целевого шагов расчета (см. Свойства шага расчета в документации Simulink®)

Задает ли модель решатель с фиксированным или переменным шагом (см. «Сравнить решатели» в документации Simulink).

Настройка параметров конфигурации модели Производитель устройства и Тип устройства (см. Влияние конфигурации устройства)

Метки блоков

Когда вы обновляете свою диаграмму, метка появляется в блоке Rate Transition, чтобы указать поведение симуляции.

Указывает на передачу данных между разделами при использовании редактора расписания.

Дополнительные сведения об использовании редактора расписания см. в разделе Использование редактора расписания.

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

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

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

Блок Rate Transition в верхней части диаграммы действует как удержание нулевого порядка при переходе от быстрого к медленному.

Блок Rate Transition в нижней части диаграммы действует как единичная задержка при переходе от медленного к быстрому.

Для получения дополнительной информации смотрите Переходы Скорости Обработки (Simulink Coder).

Эффекты синхронных шагов расчета

Следующая таблица обобщает, как каждая метка появляется, когда шаги выборки входных и выходных портов ( inTs и outTs ) являются периодическими или синхронными.

Читайте также:
Гидроизоляционные добавки для бетона| Журнал Бетонное Строительство

Условия для блока перехода скорости

С целостностью данных и детерминизмом

Только с целостностью данных

Без целостности данных или детерминизма

Копировать или NoOp (см. примечание после таблицы)

Копировать или NoOp (см. примечание после таблицы)

Копировать или NoOp (см. примечание после таблицы)

inTsOffset , outTsOffset = 0

inTsOffset , outTsOffset = 0

KEY

inTs, outTs : Шаги выборки входных и выходных портов соответственно.

inTsOffset, outTsOffset : Смещение шага расчета входных и выходных портов соответственно.

N : Целочисленное значение > 1

Когда вы выбираете Сокращение блока в диалоговом окне Configuration Parameters, Copy сводится к NoOp . Никакой генерации кода не происходит для блока Rate Transition с меткой NoOp. Чтобы предотвратить сокращение блока, когда сокращение блока включено, добавьте контрольную точку к выходным данным блока (см. Сконфигурируйте сигналы как контрольные точки в документации Simulink).

Эффекты асинхронных шагов расчета

В следующей таблице показано, как появляется каждая метка, когда шаг расчета входного или выходного порта ( inTs или outTs ) не является периодическим или асинхронным.

KEY

inTs, outTs : Шаги выборки входных и выходных портов соответственно.

Влияние конфигурации устройства

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

Порты

Port_1 — Входной сигнал
скаляр | вектор | матрица | Массив нейтральной плотности

Входной сигнал для перехода к новой частоте дискретизации в виде скаляра, вектора, матрицы или массива ND. Чтобы узнать о параметрах блоков, которые позволяют вам обменивать целостность данных и детерминированную передачу на более быстрый ответ или более низкие требования к памяти, см. Параметры обработки переходов.

Типы данных: сингл | двойной | половина | интервал8 | интервал16 | интервал32 | интервал64 | uint8 | uint16 | uint32 | uint64 | логический | фиксированная точка | перечислено | автобус

Результат

Port_1 — Выходной сигнал
скаляр | вектор | матрица | Массив нейтральной плотности

Выходной сигнал — это входной сигнал, преобразованный в указанную вами частоту дискретизации. Конфигурация по умолчанию обеспечивает безопасную и детерминированную передачу данных. Чтобы узнать о параметрах блоков, которые позволяют вам обменивать целостность данных и детерминированную передачу на более быстрый ответ или более низкие требования к памяти, см. Параметры обработки переходов.

Читайте также:
Основная информация о гипсокартоне: Что | Почему | Преимущества и недостатки | Типы

Типы данных: сингл | двойной | половина | интервал8 | интервал16 | интервал32 | интервал64 | uint8 | uint16 | uint32 | uint64 | логический | фиксированная точка | перечислено | автобус

параметры

Обеспечьте целостность данных во время передачи данных — Обеспечьте целостность данных
включено (по умолчанию) | выключенный

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

В противном случае блок Rate Transition либо сокращается, либо генерирует код, использующий операцию копирования, чтобы повлиять на передачу данных. Этот незащищенный режим потребляет меньше памяти. Но операция копирования также прерываема, что может привести к потере целостности данных при передаче данных. Установите этот флажок, если вы хотите, чтобы сгенерированный код работал с максимальной скоростью отклика (то есть недетерминированно) и целостностью данных. Для получения дополнительной информации смотрите Опции Блока Перехода Оценки (Simulink Coder).

Программное использование
Блок Параметр: Целостность
Тип: вектор символов
Значения: ‘выкл’ | ‘на’
По умолчанию: ‘на’

Обеспечить детерминированную передачу данных (максимальная задержка) — Обеспечить детерминированную передачу данных
включено (по умолчанию) | выключенный

Установка этого флажка приводит к созданию кода, который передает данные с частотой дискретизации более медленного блока, то есть детерминировано. Если этот флажок не установлен, передача данных происходит, когда новые данные доступны из исходного блока, а принимающий блок готов принять данные. Вы избегаете задержек передачи, тем самым гарантируя, что система работает с максимальной скоростью отклика. Однако переносы могут происходить непредсказуемо, что нежелательно в некоторых приложениях. Для получения дополнительной информации смотрите Опции Блока Перехода Оценки (Simulink Coder).

Программное использование
Блок Параметр: детерминистический
Тип: вектор символов
Значения: ‘выкл’ | ‘на’
По умолчанию: ‘на’

Начальные условия — Начальные условия
0 (по умолчанию) | скаляр | вектор | матрица | Массив нейтральной плотности

Этот параметр применяется только к переходам от медленного к быстрому. Он задает начальный выход блока Rate Transition в начале перехода, когда нет выходного сигнала из-за отсутствия входного сигнала, поступающего от медленного блока, подключенного ко входу блока Rate Transition. Simulink не позволяет начальному выводу этого блока быть Inf или NaN . Значение, которое вы задаете, должно быть скаляром или иметь те же размерности, что и входной сигнал.

Читайте также:
Домашняя страница Паоло Вецца
Программное использование
Блок Параметр: Начальное состояние
Тип: вектор символов
Значения: конечный скаляр
По умолчанию: ‘0’

Опции шага расчета выходного порта — Режим для задания шага расчета выходного порта
Указать (по умолчанию) | Наследовать | Множественное время выборки входного порта

Задает режим для установки шага расчета выходного порта. Варианты:

Указать — позволяет использовать Время выборки выходного порта параметр, чтобы задать выходную скорость, в которую блок Rate Transition преобразует свою входную скорость.

Inherit — Указывает, что блок Rate Transition наследует выходную скорость от блока, к которому подключен выходной порт.

Множественное время выборки входного порта — позволяет вам использовать Множественное время расчета (> 0) параметр, чтобы задать выходную скорость блока Rate Transition как кратную его входной скорости.

Если вы выбираете Inherit и все блоки, подключенные к выходному порту, также наследуют шаг расчета, применяется самый быстрый шаг расчета в модели.

Программное использование
Блок Параметр: Аутпортсамплетимеопт
Тип: вектор символов
Значения: ‘Указать’ | «Наследовать» | «Множественное время выборки входного порта»
По умолчанию: ‘Указать’

Шаг расчета порта вывода — Скорость вывода
-1 (по умолчанию) | скаляр | вектор

Введите значение, которое задает скорость вывода, в которую блок преобразует скорость ввода. Значение по умолчанию (-1) указывает, что блок Rate Transition наследует выходную скорость от блока, к которому подключен выходной порт. См. Specify Sample Time для получения информации о том, как задать скорость вывода.

Зависимости

Чтобы включить этот параметр, установите Опции шага расчета выходного порта указать .

Программное использование
Блок Параметр: Аутпортсамплетиме
Тип: вектор символов
Значения: скаляр | вектор
По умолчанию: ‘-1’

Sample time multiple(>0) — Шаг расчета несколько
1 (по умолчанию) | положительная скалярная величина

Введите положительное значение, которое задает скорость вывода как кратное шагу расчета входного порта. Значение по умолчанию ( 1 ) указывает, что скорость вывода такая же, как скорость ввода. Значение 0.5 указывает, что скорость вывода составляет половину скорости ввода. Значение 2 указывает, что скорость вывода в два раза превышает скорость ввода.

Зависимости

Чтобы включить этот параметр, установите Опции шага расчета выходного порта к кратному времени выборки входного порта.

Читайте также:
Основы обратных клапанов | Насосы и системы
Программное использование
Блок Параметр: Аутпортсамплетимемультипле
Тип: вектор символов
Значения: скаляр
По умолчанию: ‘1’

Примеры моделей

Преобразуйте сигналы между непрерывным временем и дискретным временем

Преобразуйте сигналы между непрерывным временем и дискретным временем

Модель sldemo_fuelsys показывает, как использовать блок Rate Transition, чтобы преобразовать сигналы между непрерывным временем и дискретным временем.

Характеристики блока

Типы данных

логический | автобус | двойной | перечислено | фиксированная точка | половина | целое число | не замужем

Прямой ввод

Многомерные сигналы

Сигналы переменного размера

Обнаружение пересечения нуля

Расширенные возможности

Генерация кода C/C++
Генерируйте код C и C++ с помощью Simulink® Coder™.

Сгенерированный код использует функции memcpy или memset ( string.h ) при определенных условиях.

Нельзя использовать внутри иерархии активированных подсистем.

Сгенерированный код для параллельных программ зависит от платформы и предполагает, что платформа развертывания и хост-платформа одинаковы.

Генерация HDL-кода
Создавайте код Verilog и VHDL для проектов FPGA и ASIC с помощью HDL Coder™.

HDL Coder™ предоставляет параметры конфигурации, влияющие на реализацию HDL и синтезированную логику.

Когда блок Rate Transition работает с высокой скоростью ввода и медленной скоростью вывода, рекомендуется следовать блоку Rate Transition с единичной задержкой. Это предотвращает вставку генератором кода дополнительного обходного регистра в код HDL. См. также Требования к многоскоростной модели для генерации HDL-кода (HDL Coder).

Чтобы повышать дискретизацию входного сигнала, не подвергаясь модульной задержке, в диалоговом окне Block Parameters блока Rate Transition:

Очистить Обеспечение целостности данных во время передачи данных установите флажок.

Снятие этого флажка скрывает Обеспечьте детерминированную передачу данных (максимальная задержка) установите флажок.

Сконфигурируйте шаг расчета выходного порта блока, чтобы быть целым числом, кратным шагу расчета входного порта. Укажите дробное значение 1/n для Несколько шагов выборки, где n — целое число. Если Несколько шагов выборки использует значение 1/n , вы можете выбрать любое значение для параметра блока Время выборки выходного порта настройки.

Внимание

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

Частота дискретизации не может быть 0 или Inf для блочных входных или выходных портов.

Читайте также:
АНЕМОСТАТ - определение и синонимы слова анемостат в словаре польский языка

Этот блок имеет одну HDL-архитектуру по умолчанию.

Количество регистров для размещения на выходах путем перемещения существующих задержек в вашем проекте. Распределенная конвейерная обработка не перераспределяет эти регистры. По умолчанию 0 . Для получения дополнительной информации смотрите ConstrainedOutputPipeline (HDL Coder).

Количество входных этапов конвейера для вставки в сгенерированный код. Распределенная конвейерная обработка и конвейерная обработка с ограничениями вывода могут перемещать эти регистры. По умолчанию 0 . Дополнительные сведения см. в разделе InputPipeline (HDL Coder).

Количество этапов выходного конвейера для вставки в сгенерированный код. Распределенная конвейерная обработка и конвейерная обработка с ограничениями вывода могут перемещать эти регистры. По умолчанию 0 . Дополнительные сведения см. в разделе OutputPipeline (HDL Coder).

Сопоставьте асинхронный переход скорости как провод.

После появления Время выборки выходного порта имеет нецелые значения, считается асинхронной скоростью. Включить AsyncRTasWire возможность генерировать провод, когда такие асинхронные скорости присутствуют для блока Rate Transition.

зависимости: Эта опция доступна только при Обеспечение целостности данных во время передачи данных и Обеспечение детерминированной передачи данных параметры отключены.

Внимание

Сопоставляя асинхронный переход скорости как провод, вы можете видеть числовые несоответствия между результатами Simulink и Code Generation.

Что такое тестирование ЧЕРНОГО ЯЩИКА? Методы, примеры и типы

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

BLACK Box Testing изображение

Вышеупомянутый черный ящик может быть любой программной системой, которую вы хотите протестировать. Например, операционная система, такая как Windows, веб-сайт, такой как Google, база данных, такая как Oracle, или даже ваше собственное приложение. В разделе «Тестирование черного ящика» вы можете протестировать эти приложения, просто сосредоточившись на входных и выходных данных, не зная их внутренней реализации кода. Рассмотрим следующий видеоурок-

Нажмите здесь, если видео недоступно

Как провести тестирование BlackBox

Вот общие шаги, необходимые для проведения любого типа тестирования черного ящика.

  • Первоначально изучаются требования и спецификации системы.
  • Тестер выбирает допустимые входные данные (положительный тестовый сценарий), чтобы проверить, правильно ли их обрабатывает SUT. Кроме того, выбираются некоторые недопустимые входные данные (сценарий отрицательного теста), чтобы убедиться, что ТУС способна их обнаружить.
  • Тестер определяет ожидаемые результаты для всех этих входов.
  • Тестировщик программного обеспечения создает тестовые примеры с выбранными входными данными.
  • Тестовые случаи выполняются.
  • Тестировщик программного обеспечения сравнивает фактические результаты с ожидаемыми.
  • Дефекты, если таковые имеются, устраняются и повторно тестируются.
Читайте также:
Знаменитые вторые дома: русские дачи

Типы тестирования черного ящика

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

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

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

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

  • Для функциональных/регрессионных тестов вы можете использовать QTP, Selenium.
  • Для нефункциональных тестов вы можете использовать — LoadRunner, Jmeter

Методы тестирования черного ящика

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

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

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

Сравнение изображения тестирования черного ящика и белого ящика

Тестирование черного ящика Тестирование белого ящика
Основное внимание при тестировании черного ящика уделяется проверке ваших функциональных требований. Тестирование белого ящика (модульное тестирование) проверяет внутреннюю структуру и работу кода вашего программного обеспечения.
Тестирование методом «черного ящика» дает абстракцию от кода и фокусируется на тестировании поведения программной системы. Для проведения тестирования методом «белого ящика» необходимо знание базового языка программирования. Современные программные системы используют множество языков программирования и технологий, и невозможно знать их все.
Тестирование черного ящика облегчает тестирование связи между модулями Тестирование белого ящика не облегчает тестирование связи между модулями.
Читайте также:
Аренда офисных помещений в Москве | ВсеОфисные центры

Жизненный цикл тестирования «черного ящика» и разработки программного обеспечения (SDLC)

Тестирование «черного ящика» имеет свой собственный жизненный цикл, называемый жизненным циклом тестирования программного обеспечения (STLC), и относится к каждому этапу жизненного цикла разработки программного обеспечения в программной инженерии.

Тестирование черного ящика

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

Тестирование методом «черного ящика» — это мощная техника тестирования, потому что она проверяет систему от начала до конца. Точно так же, как конечные пользователи «не заботятся» о том, как запрограммирована или спроектирована система, и ожидают получить соответствующий ответ на свои запросы, тестер может смоделировать действия пользователя и посмотреть, выполняет ли система свои обещания. Попутно тест черного ящика оценивает все соответствующие подсистемы, включая UI/UX, веб-сервер или сервер приложений, базу данных, зависимости и интегрированные системы.

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

Испытание черного ящика

Плюсы и минусы тестирования черного ящика

Плюсы Минусы
1. Тестировщикам не требуются технические знания, навыки программирования или ИТ Сложно автоматизировать
2. Тестировщикам не нужно изучать детали реализации системы Требует расстановки приоритетов, что обычно невозможно для проверки всех пользовательских путей.
3. Тесты могут выполняться краудсорсинговыми или сторонними тестировщиками. Сложно рассчитать тестовое покрытие
4. Низкая вероятность ложных срабатываний Если тест не пройден, может быть трудно понять основную причину проблемы.
5. Тесты имеют меньшую сложность, поскольку они просто моделируют обычное поведение пользователей. Тесты могут проводиться в небольшом масштабе или в непроизводственной среде.

выиграть с импервой

Выиграйте с Импервой

Тестирование «черного ящика» и «белого ящика»

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

Читайте также:
5 типов ручек для унитаза и как их выбрать

Сочетая тестирование «черного ящика» и «белого ящика», тестировщики могут провести всестороннюю проверку программного приложения «изнутри» и расширить охват вопросов качества и безопасности.

Тестирование серого ящика

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

Вы можете выполнить тестирование серого ящика с помощью инструментов интерактивного тестирования безопасности (IAST). Инструменты IAST сочетают в себе DAST и статическое тестирование безопасности приложений (SAST), которое используется в тестировании белого ящика для оценки статического кода. Инструменты IAST позволяют совмещать работу тестировщиков и разработчиков и эффективно увеличивать покрытие тестами. Например, вы можете выполнять более направленные тесты, которые фокусируются на областях или пользовательских путях, которые, скорее всего, содержат недостатки.

Комбинируя эти два метода тестирования, вы можете гарантировать, что тесты:

  • Применять знания о структуре приложения для выявления уязвимостей и ошибок
  • Объективно оцените приложение и выявите проблемы UI/UX, как это сделал бы настоящий пользователь.
  • Охватить все аспекты функциональности приложений

Типы тестирования черного ящика

Тестирование черного ящика может применяться к трем основным типам тестов: функциональному, нефункциональному и регрессионному тестированию.

Функциональное тестирование

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

Функциональное тестирование может быть сосредоточено на наиболее важных аспектах программного обеспечения (дымовое тестирование/тестирование работоспособности), на интеграции между ключевыми компонентами (интеграционное тестирование) или на системе в целом (системное тестирование).

Нефункциональное тестирование

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

Читайте также:
Вилка с большими зубьями.

Тесты черного ящика могут раскрыть, если программное обеспечение:

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

Регрессионное тестирование

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

Методы тестирования черного ящика

Разделение эквивалентности

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

Анализ граничных значений

Тестировщики могут определить, что система имеет особый отклик на определенное граничное значение. Например, конкретное поле может принимать только значения от 0 до 99. Тестировщики могут сосредоточиться на граничных значениях (-1, 0, 99 и 100), чтобы проверить, правильно ли система принимает и отклоняет входные данные.

Тестирование таблицы решений

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

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

В этом случае для полного тестирования системы будет достаточно четырех вариантов использования (по одному для каждого правила).

Тестирование перехода состояния

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

Читайте также:
Типы шурупов для гипсокартона — что нужно знать перед покупкой

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

Ошибка угадывания

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

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

Узнайте, как Imperva RASP может помочь вам в тестировании методом черного ящика.

Самозащита приложений во время выполнения Imperva

Imperva Runtime Application Self Protection (RASP) дополняет тестирование «белого ящика» и «черного ящика», добавляя дополнительный уровень защиты, когда приложение уже находится в рабочей среде или в реалистичной промежуточной среде.

РАСП имеет следующие преимущества:

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

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

Кроме того, Imperva обеспечивает многоуровневую защиту, чтобы веб-сайты и приложения были доступны, легко доступны и безопасны. Решение для обеспечения безопасности приложений Imperva включает в себя:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: