В современном мире разработки программного обеспечения автоматизированное тестирование играет ключевую роль в обеспечении качества продуктов. Однако традиционные методы, особенно такие фреймворки как Cucumber, часто требуют от разработчиков и аналитиков строгого соблюдения синтаксиса и точного подбора формулировок в тестовых сценариях. Ошибка в одной букве или выборе слова часто приводила к провалу теста, который казался необъяснимым и раздражающим. Но что если тесты могли бы быть менее жесткими, более гибкими и при этом оставаться понятными людям? Именно к такой мысли пришел автор оригинальной идеи «Хроники заплесневелого огурца», предлагая новый подход на основе технологии больших языковых моделей (Large Language Models, LLM) и метафоры о ботритисе – грибковом заболевании огурцов, которые, хоть и выглядят заплесневелыми, остаются огурцами по сути. Автор, глядя на свою грядку с огурцами, заметил, что плоды, даже покрытые серым пушистым налетом ботритиса, не перестают быть огурцами.
Аналогично он задумался о тестах, написанных на естественном языке, которые слишком строго требуют точных формулировок. Так родилась идея Ботритис BDD – инструмента, который не ставит жестких ограничений на формулировки шагов теста, а пытается понять намерение человека, написавшего их. Ботритис BDD использует возможности современных языковых моделей, чтобы сопоставлять различные варианты написания тестовых шагов и автоматически находить наиболее подходящее определение шага среди уже существующих. Это грубо говоря похоже на то, как друг, читающий ваши бессмысленные ночные сообщения, все равно понимает, о чем вы говорите. В результате тесты перестают ломаться из-за простых опечаток или синонимов.
Даже если кто-то написал «нажать», а кто-то – «тапнуть» или «кликнуть», все эти шаги будут правильно интерпретированы как одно и то же действие. В мире программирования, где бывает много сложностей и тонкостей, такой подход значительно упрощает жизнь командам. Особенно это актуально для тех, кто использует поведенческое тестирование (Behavior Driven Development, BDD) и хочет, чтобы тесты были языком, доступным не только разработчикам, но и бизнес-аналитикам, заказчикам, тестировщикам. Однако прежде чем переходить к таким решениям, важно осознавать возможные риски. Полная автоматическая обработка значений может привести к тому, что тест пройдёт успешно, но фактически не проверит нужную логику.
Например, если LLM решит, что «удалить все данные пользователя» похоже на «обновить страницу», можно получить ложноположительный результат. Поэтому использование подобных инструментов требует взвешенного подхода и контроля со стороны опытных специалистов. Помимо технической стороны, интересен философский аспект подхода. В течение долгого времени, по мнению автора, программные тесты заставляли человека адаптироваться под машины, писая строго по их правилам. Форматы, синтаксис, шаблоны – все это накладывало ограничения.
А если наоборот, сделать так, чтобы машины лучше понимали людей и работали с человеческими ошибками и вариациями? Именно в этом суть ботритиса в тестах. На примере огурцов природная патология не отнимает у них сущности, а становится частью процесса, даже может быть полезной частью (как в виноделии с «благородной гнилью»). Так и в программировании: тесты должны учитывать естественную непредсказуемость языка и делать процесс проверки программ более человечным. Это открывает путь к улучшению взаимодействия команд и снижению «боевого» напряжения, когда из-за мелких недочетов приходится тратить часы на исправление багов не в коде, а в тестах. На практике проект Botrytis BDD уже доступен публично и развивается как open-source инструмент.
Его можно найти на GitHub и установить с помощью стандартных менеджеров пакетов Ruby. Сообщество заинтересовано в том, чтобы сделать тестирование более адаптивным и менее громоздким. Люди, которые раньше боялись писать тесты из-за их хрупкости, теперь видят свет в конце туннеля и возможность более творческого подхода. Весь концепт также отражает общую тенденцию в индустрии – использование искусственного интеллекта для повышения продуктивности специалистов, снижение рутинных задач и адаптация инструментов под естественный человеческий язык и стиль общения. Базируясь на этом, можно прогнозировать покупку популярности таких решений в будущем, особенно с развитием возможностей LLM и понимания контекста.