Читать нельзя рефакторить: Jinja2-разметка для тестов, devtools и AI-агентов
Тезисы
Тесты с большими входными данными быстро становятся такими, что читать больно, а рефакторить страшно. Фикстуры с конфигами, фрагментами кода и наборами файлов разрастаются, обрастают собственной логикой, а потом важный сценарий приходится собирать по кускам: данные в одном месте, проверки в другом, между ними хэлперы и golden-файлы.

Михаил расскажет, как они сделали небольшой DSL поверх Jinja2 и стали размечать смысл прямо внутри тестовых данных. Шаблон превращается в спецификацию теста: входные данные и ожидания описаны вместе, поэтому сценарий не приходится собирать по частям.

В докладе будет немного внутренностей Jinja2 и Pytest, примеры из тестирования инструментов анализа кода и отдельная часть про "тесты на тесты": как писать такие спеки до реализации фичи и проверять их внешним эталонным решением. В конце отдадим дань эпохе и порассуждаем, может ли похожая разметка быть полезна LLM-агентам для навигации по коду.
Тесты с большими входными данными быстро становятся такими, что читать больно, а рефакторить страшно. Фикстуры с конфигами, фрагментами кода и наборами файлов разрастаются, обрастают собственной логикой, а потом важный сценарий приходится собирать по кускам: данные в одном месте, проверки в другом, между ними хэлперы и golden-файлы.

Михаил расскажет, как они сделали небольшой DSL поверх Jinja2 и стали размечать смысл прямо внутри тестовых данных. Шаблон превращается в спецификацию теста: входные данные и ожидания описаны вместе, поэтому сценарий не приходится собирать по частям.

В докладе будет немного внутренностей Jinja2 и Pytest, примеры из тестирования инструментов анализа кода и отдельная часть про "тесты на тесты": как писать такие спеки до реализации фичи и проверять их внешним эталонным решением. В конце отдадим дань эпохе и порассуждаем, может ли похожая разметка быть полезна LLM-агентам для навигации по коду.
Информация о спикере
Михаил Шишацкий
Старший разработчик, Яндекс
Руковожу автотестированием СХД, и сама автоматизирую все тесты подряд: UI, CLI, REST API, I\O и так далее.
Рассказывала на YADRO QA митапе про загвоздки тестирования СХД: https://vkvideo.ru/video-226636130_456239200?t=1h46m35s&list=ln-vB16f2FYOrQ684YQey
  • Михаил Шишацкий
    Старший разработчик, Яндекс
    Руковожу автотестированием СХД, и сама автоматизирую все тесты подряд: UI, CLI, REST API, I\O и так далее. 
    Рассказывала на YADRO QA митапе про загвоздки тестирования СХД: https://vkvideo.ru/video-226636130_456239200?t=1h46m35s&list=ln-vB16f2FYOrQ684YQey
Все доклады трека