Неразрушающий контроль программного обеспечения (НК): что это такое, стратегия тестирования.

⚡ Умное резюме

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

  • 🔘 Позитивный подход по замыслу: В каждом неразрушающем тестировании используются достоверные данные и известные требования, поэтому успешное прохождение теста доказывает, что функция работает в соответствии со спецификацией.
  • ☑️ Самый ранний проведенный тест: Сначала проверяется "счастливый сценарий", потому что неработающий основной поток блокирует почти все последующие проверки.
  • Требование tracУдобство: Каждый тестовый случай соответствует критерию приемлемости, что упрощает обоснование результатов при проверке.
  • 🧪 Противоположность разрушающим испытаниям: Деструктивные испытания позволяют определить точку разрушения, в то время как неразрушающие испытания подтверждают сохранение заданного поведения.
  • 🇧🇷 Низкие затраты на настройку: Для применения этой технологии не требуется специальная среда, поврежденные данные или внедрение ошибок, поэтому она подходит для сжатых сроков и ограниченных бюджетов.
  • 📈 Известное ограничение: Прохождение всех «счастливых сценариев» ничего не доказывает об обработке ошибок, поэтому параллельно с ней должны проводиться негативное и деструктивное тестирование.

Неразрушающий контроль программного обеспечения (НК): объяснение стратегии тестирования.

Что такое неразрушающее тестирование программного обеспечения?

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

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

Пример: Ввод корректных данных в модуль авторизации и проверка того, принимает ли он учетные данные и переводит ли на следующую страницу.

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

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

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

Зачем проводить неразрушающее тестирование программного обеспечения (NDT)?

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

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

Когда проводится неразрушающий контроль (NDT)?

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

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

Стратегия испытаний для неразрушающего контроля

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

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

Приведенная ниже диаграмма суммирует, как обычно организуется эта стратегия в рамках тестового цикла.

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

Как писать неразрушающие (позитивные) тестовые сценарии

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

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

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

Шаг 3) Перед выполнением запишите ожидаемый результат. Ожидаемый результат должен быть описан в соответствии со спецификацией. Если записывать его после выполнения теста, он превратится в описание того, что произошло в процессе сборки.

Шаг 4) Выполняйте шаги в порядке, соответствующем порядку действий пользователя. Последовательность действий должна соответствовать тому, как реальный пользователь выполнил бы задачу, поскольку цель этого метода — подтвердить запланированный путь.

Шаг 5) Запишите идентификатор требования. TracПриведение дела в соответствие с его критериями позволяет команде доказать наличие покрытия в ходе проверки.

Пример работы модуля авторизации выглядит следующим образом.

Поиск Неразрушающий испытательный случай
Требование Имя пользователя может содержать от 6 до 20 буквенно-цифровых символов.
Данные испытаний Имя пользователя guru99testerдействительный соответствующий пароль
Шаги Откройте страницу входа, введите учетные данные и выберите «Войти».
Ожидаемый результат Учетные данные приняты, и отображается главная страница.
Тип Позитивный/счастливый путь

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

Примеры неразрушающего контроля

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

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

Неразрушающий контроль против разрушающего контроля

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

Аспект Неразрушающий контроль Деструктивное тестирование
Намерение Взаимодействуйте с приложением корректно и подтверждайте положительные результаты. Для выявления причины сбоя необходимо ввести необычные или недопустимые данные.
Входные данные Достоверные данные, полученные в соответствии с требованиями. Недействительные, поврежденные или не последовательные данные
Необходимые требования Да — дела составляются на основе критериев приемлемости. Не обязательно; тестировщики работают без предвзятости, основанной на пользовательских историях.
Что это раскрывает Несоответствие функциональности спецификации. Недостатки конструкции, надежности и возможности восстановления.
Связанные методы Дымовое испытание, функциональное тестирование Обезьяна тестирование, исследовательское тестирование

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

Преимущества и ограничения неразрушающего тестирования программного обеспечения

Понимание того, где метод перестает быть полезным, так же важно, как и понимание того, что он охватывает.

Преимущества

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

Ограничения

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

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

Часто задаваемые вопросы (FAQ)

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

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

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

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

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

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

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

Показатель охвата требований является наиболее достоверным: это доля критериев приемки, по которым хотя бы один случай прошел проверку положительно. В сочетании с процентом успешных проверок и соотношением положительных и отрицательных случаев это позволяет выявить наборы тестов, которые проверяют только «счастливый» сценарий.

Подведем итог этой публикации следующим образом: