Тестирование программного обеспечения | Fuzz-тестирование

Опубликовано: 28 Января, 2022

Fuzz Testing - это метод тестирования программного обеспечения, который использует неверные, неожиданные или случайные данные в качестве входных данных, а затем проверяет исключения, такие как сбои и потенциальные утечки памяти. Это метод автоматизированного тестирования, который используется для описания процессов тестирования системы с использованием рандомизированного или распределенного подхода. Во время нечеткого тестирования система или программное приложение может иметь множество различных ошибок или сбоев, связанных с вводом данных. Бартон Миллер из Университета Висконсина в 1989 году впервые разработал нечеткое тестирование.

Цель тестирования Fuzz:
Целью Fuzz-тестирования является:

  • Проверить уязвимость системы или программного приложения.
  • Для обнаружения сбоев и дефектов безопасности.
  • Определить дефекты по эффективной стоимости.

Этапы тестирования Fuzz:




  1. Определить целевую систему:
    Отмечена система или программное обеспечение, которое будет тестироваться. Эта система известна как целевая система. Целевая система определяется командой тестирования.
  2. Определить входы:
    После того, как целевая система установлена, после этого создаются случайные входные данные для целей тестирования. Эти случайные тестовые примеры используются в качестве входных данных для тестирования системы или программного приложения.
  3. Генерация нечетких данных:
    После получения случайных входных данных, т.е. неожиданных и недопустимых, эти недопустимые и неожиданные входные данные преобразуются в нечеткие данные. Нечеткие данные - это, по сути, случайный ввод в форме нечеткой логики.
  4. Выполните тест, используя нечеткие данные:
    Теперь с использованием нечетких данных выполняется процесс тестирования. В основном в этом разделе код программы или программного обеспечения выполняется путем случайного ввода, т.е. нечетких данных.
  5. Мониторинг поведения системы:
    После выполнения системы или программного приложения работал на сбои или любые другие исключения, такие как потенциальные утечки памяти. Поведение системы проверяется при случайном вводе.
  6. Журнал дефектов:
    На последнем этапе выявляются дефекты, и эти дефекты исправляются, чтобы улучшить качество системы или программного обеспечения.



Типы дефектов, обнаруженных Fuzz Testing:

 1. Числовой анализ
2. Фазинг персонажей
3. Фаззинг приложений
4. Обработка протоколов.
5. Анализ форматов файлов

Преимущества Fuzz-тестирования:

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

Недостатки Fuzz-тестирования:

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

Вниманию читателя! Не переставай учиться сейчас. Получите все важные концепции теории CS для собеседований SDE с курсом теории CS по доступной для студентов цене и будьте готовы к отрасли.