Перейти к содержанию

Что такое Ocarina?

Ocarina создавалась с одной целью — сделать автоматизированные браузерные тесты предельно простыми и при этом оставить за пользователем полный контроль.

Ещё одна!

Остальные

Большинство фреймворков тестирования родились в мире, где барьер между «теми, кто пишет код», и «теми, кто описывает тесты», был настоящим — и встроенным в саму структуру.

Robot Framework попытался его обойти с помощью DSL (предметно-ориентированного языка) — со своим форматом и своей экосистемой плагинов. Тем самым RF по умолчанию навязывает собственные стандарты: это — прямая плата за его обещание.

Cucumber пошёл тем же путём с Gherkin: «естественным» языком, который на практике сковывает всех и при этом никого по-настоящему не освобождает. Цена: постоянная прослойка-переводчик и рассинхрон между Gherkin и кодом.

Все они поставили на одно и то же: спрятать сложность, чтобы навести мост между разными специалистами.
Итог: нетехнические специалисты так и остаются зрителями, а технические оказываются в плену инструмента, который сами никогда бы не выбрали.

Самая большая плата — это гонка на дно: меньше возможностей и «гибкость», которой можно добиться, только воюя со своими инструментами, а не пользуясь решениями.

Иллюстрация: дети запутались в клубке верёвок, каждый тянет за свой конец и машет флагом со своим «РЕШЕНИЕМ»

Незачем тянуть за верёвку, которую тебе протянули, если в центре — всё тот же гордиев узел.

Мы

Иллюстрация: расслабленный персонаж просто играет на окарине в своём собственном мире, не замечая царящего вокруг хаоса, окарина в одной руке и цветок в другой

Лучше в одиночку, чем в дурной компании.

Ocarina ставит на обратное: этот барьер исчезнет. Это надуманный спор, вокруг которого каждый сам затянул петлю у себя на шее — из до неприличия сложных инструментов, выданных за «решения». Последствие: операционная катастрофа, стоит лишь возникнуть задаче, которую не выразить в рамках «фреймворка», на деле НЕ универсального.

И хуже всего: все эти технологии так и будут катиться в ту же сторону. НИ ОДНА не пойдёт на этот разворот, потому что он потребовал бы смены парадигмы — возврата к основам, который впрямую противоречит всему их ценностному предложению.

И всё же потребность никуда не делась — потребность в читаемом, трассируемом и гибком тестовом коде в его максимально сыром виде.

С AI и такими инструментами, как Claude Code, эта ставка крепнет день ото дня.
Мост между техническими и нетехническими специалистами — больше не слой абстракции.

Это сам AI. AI, работающий с сырыми данными.

Культурная проблема

Есть ещё одно слепое пятно, о котором почти не говорят: методология.

ISTQB, где ты?

ISTQB и профессиональные тестировщики десятилетиями выстраивали точный, проверенный на практике словарь: циклы тестирования, кампании, наборы тестов, тестовые случаи, тестовые шаги. Чёткая иерархия, призванная организовывать, прослеживать и направлять качество ПО.

Инструменты автоматизации это наследие почти полностью проигнорировали.

pytest, Jest, Mocha… все они — гибридные помеси, где тестировщику приходится учиться думать как разработчик и где на одном языке толком не говорит никто.

Иллюстрация: два лагеря не могут понять друг друга, хотя и уверены, что говорят на одном языке

Этот «метод двух языков» — провал.

Возврат к основам

Ocarina на такой компромисс не идёт.

Её структура выстроена напрямую и только по методологии тестировщика. Каждое понятие в коде соответствует понятию из предметной области тестирования. Ничего не заимствовано, ничего не переиначено, никаких «и так сойдёт».

И раз уж Ocarina идёт в своей ставке до конца — она полностью автономна. Никаких плагинов для pytest. Никакой принудительной интеграции в чужую экосистему. Ocarina — это batteries-included: для работы ей больше ничего не нужно, и это осознанный выбор.

Настоящая болевая точка

О «творчестве»

Всех колотит от вопроса как: интерфейсы, абстракции, «красивые» DSL.
А почему тем временем теряется из виду.

Ocarina выбирает обратное.

Весь её замысел и вся эта Священная Книга сосредоточены на «почему»: на реальных проблемах.
А не на абстракции, которой пользуются «как заблагорассудится».

Ну а как?
Ответ прост: Ocarina плотная, сразу готова к работе и строгая. Сделана так, чтобы и люди, и LLM без труда понимали её суть и то, как ею пользоваться.

В чём здесь наука?

Здесь всё держится на статическом фундаменте:

  • типы,
  • дженерики,
  • функциональное программирование.

Ocarina самой своей конструкцией мешает использовать себя неправильно: последнее слово — за компилятором.

Иллюстрация: персонаж пребывает в полноте бытия благодаря алгебраическому трансу

Просто алгебра.

📖 Слово «алгебра» происходит от арабского الجبر (al-jabr) — «воссоединение разрозненных частей», «вправление переломов».

Большинство инструментов отталкиваются от человеческой грамматики, чтобы якобы её «формализовать».
А потом выясняется, что машина не умеет читать её как есть.
И тогда сверху начинают громоздить «адаптеры».

А мы зовём это не формализацией, а принятием желаемого за действительное.

Ocarina, разумеется, поступает наоборот.
Именно это и делает её стабильной и расширяемой одновременно.

Видение

Суверенная грамматика

А что, если отдавать свою грамматику на откуп «стандартам» изначально было плохой идеей?

Настоящая проблема E2E-тестирования вовсе не в том, чтобы навязать «лучший» новояз.
Короткий ответ: Ocarina расширяема. Любые глаголы и союзы создаёшь сам — и всё это подчинено строгим правилам, которые удерживают систему глубоко согласованной.

Остаётся одно — обеспечить трассируемость и надёжность.

Рождённая практикой

В Ocarina наблюдаем каждый шаг.
Путь ошибки прописан явно. Отчёт о тестировании рождается из кода сам собой.

Никакого переусложнения. Никаких лишних зависимостей.
Просто нечто компактное, читаемое и сделанное на века.

А самое сильное — в том, что Ocarina ничего не изобретает: Ocarina возвращается к основам.

Внедрение

В самых крайних случаях Ocarina вообще не требует установки.
Скопируй, подгони под себя, запусти.
Аудировать нечего.

Для команд, скованных политиками безопасности: код компактный — его реально проверить за полдня. Ничего не спрятано. Единственные внешние зависимости — в плагинах постобработки; не подошёл какой-то из них — удаляешь, и больше ничего не ломается.

На практике консультант может прийти к заказчику с Ocarina в кармане — почти ни у кого не спрашивая разрешения.

Иллюстрация: персонаж наконец-то свободен после долгой поры бессмысленных ограничений

Устают не люди — их изнашивают отжившие струны.

И именно поэтому она и существует — чтобы вернуть тестировщикам их независимость.
И всё это — в одной жемчужине, вобравшей в себя самую суть.

Игорь Казанова

Последнее обновление: