Тестирование программного обеспечения | Fuzz-тестирование
Fuzz Testing - это метод тестирования программного обеспечения, который использует неверные, неожиданные или случайные данные в качестве входных данных, а затем проверяет исключения, такие как сбои и потенциальные утечки памяти. Это метод автоматизированного тестирования, который используется для описания процессов тестирования системы с использованием рандомизированного или распределенного подхода. Во время нечеткого тестирования система или программное приложение может иметь множество различных ошибок или сбоев, связанных с вводом данных. Бартон Миллер из Университета Висконсина в 1989 году впервые разработал нечеткое тестирование.
Цель тестирования Fuzz:
Целью Fuzz-тестирования является:
- Проверить уязвимость системы или программного приложения.
- Для обнаружения сбоев и дефектов безопасности.
- Определить дефекты по эффективной стоимости.
Этапы тестирования Fuzz:
- Определить целевую систему:
Отмечена система или программное обеспечение, которое будет тестироваться. Эта система известна как целевая система. Целевая система определяется командой тестирования. - Определить входы:
После того, как целевая система установлена, после этого создаются случайные входные данные для целей тестирования. Эти случайные тестовые примеры используются в качестве входных данных для тестирования системы или программного приложения. - Генерация нечетких данных:
После получения случайных входных данных, т.е. неожиданных и недопустимых, эти недопустимые и неожиданные входные данные преобразуются в нечеткие данные. Нечеткие данные - это, по сути, случайный ввод в форме нечеткой логики. - Выполните тест, используя нечеткие данные:
Теперь с использованием нечетких данных выполняется процесс тестирования. В основном в этом разделе код программы или программного обеспечения выполняется путем случайного ввода, т.е. нечетких данных. - Мониторинг поведения системы:
После выполнения системы или программного приложения работал на сбои или любые другие исключения, такие как потенциальные утечки памяти. Поведение системы проверяется при случайном вводе. - Журнал дефектов:
На последнем этапе выявляются дефекты, и эти дефекты исправляются, чтобы улучшить качество системы или программного обеспечения.
Типы дефектов, обнаруженных Fuzz Testing:
1. Числовой анализ 2. Фазинг персонажей 3. Фаззинг приложений 4. Обработка протоколов. 5. Анализ форматов файлов
Преимущества Fuzz-тестирования:
- Это обеспечивает безопасность программного обеспечения.
- Он обнаруживает дефекты, включая сбои и потенциальные утечки памяти.
- Это требует меньше времени.
Недостатки Fuzz-тестирования:
- Он не может обеспечить полную безопасность системы.
- Он неэффективен для борьбы с угрозами безопасности, которые не связаны с вирусами, ошибками или сбоями программы.
- Обнаруживает простые неисправности и угрозы.
Вниманию читателя! Не переставай учиться сейчас. Получите все важные концепции теории CS для собеседований SDE с курсом теории CS по доступной для студентов цене и будьте готовы к отрасли.