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

Что такое разрушающее тестирование?
Разрушающий контроль Деструктивное тестирование — это метод тестирования программного обеспечения, используемый для выявления точек отказа в программе. При этом методе приложение намеренно выводится из строя, чтобы проверить его надежность и определить точки отказа. В отличие от методов тестирования, которые проверяют, что приложение должно делать, деструктивное тестирование исследует непредсказуемое поведение пользователя внутри приложения.
Знание исходных требований не является обязательным для разрушающих испытаний. Однако некоторые знания могут быть полезны при разработке...ping хорошая стратегия тестирования.
Приведенная ниже иллюстрация иллюстрирует эту идею — тестировщик работает против продукта, а не вместе с ним.
Зачем нужны разрушающие испытания?
- Это помогает понять предсказуемое поведение программного обеспечения при его неправильном использовании.
- Это помогает проверить надежность программного продукта.
- Она выявляет редкие дефекты, которые обычные пользователи никогда не обнаруживают, но которые проявляются позже в процессе эксплуатации.
Разрушающий контроль против неразрушающего контроля
Эти два подхода дополняют друг друга, а не конкурируют. Неразрушающий контроль — также называемое позитивным тестированием или тестированием по принципу "счастливого пути" — корректно взаимодействует с программным обеспечением, не нарушая целостность сборки. Деструктивное тестирование делает обратное: оно подает некорректные данные и неправильные последовательности до тех пор, пока что-нибудь не сломается.
| Аспект | Разрушающий контроль | Неразрушающий контроль |
| Намерение | Принудительно вызвать сбой приложения | Убедитесь, что приложение работает в соответствии с указанными параметрами. |
| Использованные входные данные | Недействительный, неправильно сформированный, выходящий за пределы допустимого диапазона, не соответствующий последовательности. | Достоверные данные в пределах ожидаемого диапазона. |
| Ответ на вопрос | Где и как он ломается? | Делает ли он то, что должен? |
| Знание требований | По желанию | существенный |
| Типовая стоимость | Высший уровень — исследовательский и открытый. | Нижний уровень — скриптовый и повторяемый |
| Результат | Точки отказа, пределы диапазона, поведение при восстановлении. | Соответствует или не соответствует требованиям. |
Что проверяется при разрушающем контроле?
Деструктивный контроль рассматривает обе стороны границы поведения:
- Правильное поведение программного обеспечения
- Некорректное поведение программного обеспечения
- Неправильное использование
- Неправильные входные данные
- Правильные выходные данные
В ходе выполнения упражнения должны соблюдаться два условия:
- Программное обеспечение ни в коем случае не должно обрабатывать или принимать недопустимые входные данные.
- Независимо от достоверности или корректности входных данных, программное обеспечение всегда должно выдавать корректные выходные данные.
Как проводить разрушительные испытания?
Деструктивное тестирование включает в себя множество действий, таких как разработка набора тестовых сценариев, их выполнение, выявление и закрытие ошибок, а также предоставление заинтересованным сторонам результатов тестирования (пройдено или не пройдено) по завершении итерации.
Существует множество способов его запуска. Ниже приведены несколько примеров.
- Метод анализа точек отказа: Обзор системы, позволяющий оценить возможные проблемы на различных этапах. Помощь от специалиста. бизнес-аналитик Для этой стратегии может быть выбран соответствующий вариант.
- Экспертная оценка тестировщиком: Получите ваш контрольные примеры проанализировано или проверено другим тестировщиком, который менее знаком с системой или функцией.
- Анализ тестовых сценариев с точки зрения бизнеса: Конечные пользователи или эксперты часто придумывают вполне вероятные сценарии, которые тестировщики упускают из виду, поскольку их внимание сосредоточено на заявленных требованиях.
- Проведите исследовательское тестирование с использованием протоколов испытаний: исследовательское тестирование Использование протоколов выполнения позволяет записывать результаты тестирования, повторять тесты и контролировать покрытие тестами.
- Воспользуйтесь другим источником: Попросите кого-нибудь другого взломать программный продукт и проанализировать обнаруженные им сценарии.
Пример разрушающего контроля
Рассмотрим экраны входа в систему и профиля в банковском приложении. Деструктивный пароль сработает в следующих случаях:
- Вставьте строку длиной 5,000 символов в поле, ограниченное 50 символами, и убедитесь, что поле отклоняет её, а не обрезает без уведомления.
- В поле для числовой суммы следует вводить буквы, символы и отрицательные значения.
- Нарушьте ожидаемую последовательность действий — откройте страницу подтверждения платежа напрямую, минуя предыдущий шаг.
- Нажимайте кнопку «Отправить» несколько раз подряд, чтобы проверить, не будут ли созданы дубликаты записей.
- Отключитесь от сети во время транзакции и проверьте, восстанавливается ли приложение корректно или оставляет частичную запись.
Для каждого случая существуют определенные ожидания: четкое сообщение об ошибке проверки, отсутствие повреждения данных и необработанных исключений. Все остальное является точкой отказа, о которой следует сообщить как о дефекте.
Методы разрушающего контроля
В разработке программного обеспечения для достижения целей деструктивного тестирования используются следующие методы:
- Альфа/бета-тестирование
- Регрессионное тестирование
- Тестирование интерфейса
- Эквивалентное разбиение
- Циклическое тестирование
- Приемочные испытания и так далее
Методы разрушающего контроля
Приведенные ниже методы можно использовать с некоторыми модификациями:
- Тестирование белого ящика
- Тестирование безопасности
- Тестирование на наличие дефектов
- Дымовое испытание, и так далее
В качестве смежных методов, которые стоит добавить, если целью является повышение устойчивости, можно выделить следующие: отрицательный тест, стресс-тестирование, тестирование восстановления и нечеткое тестирование.
Преимущества и недостатки разрушающего контроля
Компромисс стоит четко обозначить, прежде чем этот метод будет включен в план выпуска продукта.
Преимущества
- Revустраняет точки отказа, которые никогда не достигаются при тестировании, основанном на спецификациях.
- Устанавливает реальные пределы диапазона, поэтому изделие можно уверенно эксплуатировать в их пределах.
- Выявляет редкие дефекты, которые проявляются в процессе производства спустя долгое время после выпуска.
- Проверяет долговечность, возможность восстановления и обработку ошибок в условиях неправильной эксплуатации.
Недостатки
- По своей природе это неопределенный подход, поэтому гарантировать или измерить охват сложно.
- Это трудоемкий процесс, зависящий от опыта и креативности тестировщика.
- Воспроизвести полученные результаты может быть сложно без тщательной фиксации использованных этапов.
- Неправильно контролируемые запуски могут привести к повреждению совместно используемых тестовых данных, поэтому необходима изолированная среда.

