Разработан новый инструмент для умного тестирования программ

Максим Наговицын19.07.2025581

Мутация, скрещивание и естественный отбор — теперь это не только про биологию, но и про код.

Разработан новый инструмент для умного тестирования программ
Источник: нейросеть

В XIX веке Чарльз Дарвин описал принцип «выживает сильнейший» — и теперь его применили к тестированию программ. Исследователи из CISPA разработали FANDANGO, инструмент для фаззинга, который создает тестовые данные по законам эволюции. Это не просто случайные входные значения, а кастомизированные параметры, учитывающие и структуру, и логику программы.

Фаззинг — метод тестирования ПО, при котором программа «бомбардируется» случайными или полу-случайными данными, чтобы найти уязвимости или сбои. FANDANGO делает это интеллектуально, учитывая заданные разработчиком правила.

Подробности опубликованы в издании Proceedings of the ACM on Software Engineering.

Вот как это работает: представьте естественный отбор, но для кода. FANDANGO берет набор исходных данных (например, параметры мебели в интернет-магазине) и начинает их «эволюционировать»:

  • Мутирует — меняет значения (длина стула = -5 метров?).
  • Скрещивает — комбинирует части разных входных данных.
  • Отбирает — оставляет только те варианты, которые соответствуют заданным условиям.

Цель — найти баги в неочевидных сценариях. Например, если нужно проверить, как программа обрабатывает «стол площадью в квадратный километр», FANDANGO автоматически подберет подходящие высоту, ширину и глубину.

Почему это прорыв

  • Контроль: тестировщик задает и синтаксис  (формат данных), и семантику  (логику).
  • Гибкость: можно «прицельно» проверять уязвимые места, а не надеяться на случайность.
  • Открытый код: инструмент доступен всем.
Мы не просто генерируем хаотичные данные — мы даем тестировщику власть над процессом, — объясняет Андреас Целлер.

Польза исследования

  • Для разработчиков: Ускорение тестирования сложных систем (например, банковских приложений), где критична корректность входных данных.
  • Для безопасности: Поиск уязвимостей в условиях, которые человек мог бы упустить (например, обработка отрицательных значений).
  • Для искусственного интеллекта: Метод можно адаптировать для тренировки ИИ, чтобы он учился на «естественном отборе» данных.

Отметим, что эволюционные алгоритмы требуют больших вычислительных ресурсов — процесс мутации и отбора может быть медленным для сверхсложных систем. Кроме того, успех зависит от качества начальных данных: если тестировщик ошибется в спецификациях, FANDANGO будет оптимизировать ошибочные условия.

Ранее стало известно о создании первого в России ИИ-ассистента для защиты кода.

Подписаться: Телеграм | Дзен | Вконтакте


Net&IT

Поиск на сайте

Лента новостей

Пресс-релизы