💤Fuzz тестинг(fuzzing) - это тип тестирования безопасности, который обнаруживает ошибки кодирования и лазейки в ПО, ОС или сетях. Фаззинг включает в себя ввод огромного количества случайных данных, называемых fuzz, в тестируемое ПО, чтобы заставить его дать сбой или прорвать его защиту.
Fuzz-тестирование выполняется с помощью фаззера - программы, которая автоматически вводит полуслучайные данные в программу и обнаруживает ошибки.
Обычно обнаруживаются наиболее серьезные ошибки или дефекты безопасности. Это очень экономически эффективный метод тестирования.
Примеры фаззеров:
♻️Мутации: Проще всего создаваемый, поскольку он изменяет существующие образцы данных для создания новых тестовых данных;
🔑Генерация: Этот тип фаззера требует большего интеллекта для создания тестовых данных с нуля, т.е. новые тестовые данные создаются на основе входной модели;
🛂Протокол: самый успешный фаззер - это детальное знание тестируемого формата протокола. Необходимо провести запись массива спецификации в инструмент, а затем с помощью метода генерации тестов на основе модели проходится спецификация;
💾Сбои ассертов и утечки памяти. Эта методология широко используется для больших приложений, где ошибки влияют на безопасность памяти, что является серьезной уязвимостью;
🚫Некорректный ввод. Фаззеры используются для генерирования неверного ввода, который используется для тестирования процедур обработки ошибок;
⚠️Исправление ошибок. Fuzzing также может использоваться для обнаружения некоторых типов ошибок «правильности». Например, поврежденная база данных, плохие результаты поиска и т. д..
#QAEngineer #SoftwareTesting #testing #stuffy #pleasure