Вхід Реєстрація
Реклама
Ваше рекламне місце
Забронюйте цей слот без конкуренції на обраний період.
Купити рекламу →
Логотип телеграм спільноти - All about QA - Все про тестування ПЗ
Додано 23 чер 2023

All about QA - Все про тестування ПЗ

@allaboutqa
Кількість підписників: 2 488
Фото: 305
Відео: 4
Посилання: 1,080
Опис:
Все про тестування ПЗ YouTube канал для тестувальників https://www.youtube.com/c/AllaboutQA Manual testing, Performance testing, Automated testing, Security testing, Mobile testing Курси, навчання, івенти, вакансії. Для питань —> @d_bezt
Джерело

All about QA - Все про тестування ПЗ | Техніки Тест-Дизайну: Фазінг (Fuzz Testing / Fuzzing) ✨🤔 Ви перевірили...

Логотип телеграм спільноти - All about QA - Все про тестування ПЗ All about QA - Все про тестування ПЗ @allaboutqa
587 Охват/переглядів 2025-07-29 09:28 Повідомлення №1174
Техніки Тест-Дизайну: Фазінг (Fuzz Testing / Fuzzing) 🤔 Ви перевірили всі логічні шляхи, ввели коректні та очікувано некоректні дані. Але що станеться, якщо ваш застосунок отримає на вхід щось абсолютно непередбачуване — потік випадкових байтів, пошкоджений файл або гігантський шматок "сміття"? Як система поведе себе в умовах повного хаосу? Саме для відповіді на це питання існує фазінг.🎯 Суть технікиФазінг (від англ. fuzz — нечіткий, розмитий) — це техніка тестування безпеки та надійності, яка полягає в автоматизованій подачі великої кількості невалідних, неочікуваних або випадкових даних на вхід системи з метою викликати збій.Головна мета — не перевірити бізнес-логіку, а знайти вразливості: непередбачувані падіння, зависання, витоки пам'яті або лазівки в безпеці (наприклад, можливість виконання довільного коду), які виникають, коли програма не може коректно обробити аномальні вхідні дані.🛠️ Як це працює?Визначення точки входу: Обирається інтерфейс, через який програма отримує дані. Це може бути поле для завантаження файлу, API-ендпоінт, поле вводу, мережевий протокол тощо.Генерація "фазз"-даних: Створюються дані для тестування. Існує кілька підходів:Простий фазінг: Генеруються абсолютно випадкові дані (білий шум).Фазінг на основі шаблонів (Generational): Створюються дані, що відповідають певному формату (наприклад, JPEG-файлу або XML-документу), але зі свідомо пошкодженими або невалідними частинами.Мутаційний фазінг (Mutation-based): Береться набір коректних вхідних даних (наприклад, валідний PDF-файл) і в нього вносяться невеликі випадкові зміни (мутації).Виконання та моніторинг: Автоматизований інструмент (фаззер) починає "годувати" систему згенерованими даними, одночасно відстежуючи її стан.Аналіз результатів: Фаззер фіксує будь-які збої: падіння сервера (500-ті помилки), неперехоплені винятки (unhandled exceptions), зависання процесу, аномальне споживання пам'яті чи процесорного часу.📋 Приклад:Тестуємо функцію обробки аватарів користувачів.Точка входу: Форма завантаження зображення.Очікувані дані: Файли у форматі .jpg або .png розміром до 5 МБ."Фазз"-дані (згенеровані автоматично):Файл розміром 0 байтів.Файл розміром 2 ГБ.Текстовий документ, перейменований в .jpg.Справжній .jpg файл, у якому частина байтів посередині замінена на випадкові.Файл, що містить шкідливий скрипт.Моніторинг: Чи не впаде веб-сервер? Чи не вичерпається пам'ять? Чи не повернеться замість помилки "Некоректний формат" повідомлення про помилку з внутрішньою інформацією про систему?💡 Переваги фазінгу: Висока ефективність: Знаходить серйозні дефекти та вразливості (особливо 0-day), які важко виявити вручну. Повна автоматизація: Після налаштування процес може працювати без втручання людини 24/7. Знаходить "невідомі невідомі": Виявляє помилки, про можливість яких розробники навіть не здогадувалися. Покращення надійності (Robustness): Робить систему стійкішою до несподіваних і шкідливих дій.⚠️ Обмеження:Не перевіряє бізнес-логіку (наприклад, не знайде помилку в розрахунку вартості замовлення).Вимагає технічних знань для налаштування та інтерпретації результатів.Може бути "сліпим" і генерувати багато безрезультатних тестів, перш ніж знайде щось варте уваги.🎯 Висновок:Фазінг — це потужний інструмент для "стрес-тестування" вашого застосунку на міцність. Він не замінює логічне тестування, а доповнює його, атакуючи систему з того боку, з якого ніхто не чекає. Це обов'язковий елемент у тестуванні продуктів, для яких критично важлива безпека та стабільність.#ТестДизайн #Fuzzing #FuzzTesting #QA #TestDesignTechniques #ТестуванняПЗ #AllAboutQA #SecurityTesting