Similar presentations:
Михаил_Трифонов_–_SSD_в_автоматизации_–_SQA_Days_7sjdyfot3pru3mgcqwn6qh487h
1.
SDD в автоматизации:вайбкодим тесты
на сервисы
Михаил Трифонов
Head of QA
2.
МихаилТрифонов
Head of QA
● 15+ лет в тестировании
● и автоматизации
● Строю test-платформы
● Экспериментирую с AI в QA
3.
СодержаниеС чего начинали
Какие проблемы
у нас возникли
Как решили
и к чему пришли
Какие результаты
получили
3
4.
Поехали!Мы больше не пишем
сервисные автотесты руками
Полгода
назад начали
эксперимент
Можно
ли заставить
AI писать
сервисные
автотесты?
Мы перестали
писать
автотесты
руками вообще
4
5.
Масштаб экспериментаС чего мы начали
~100 ~2%
Endpoints
Coverage
Отличный кандидат для эксперимента
5
6.
Масштаб экспериментаС чего мы начали
100
100
80%
20%
Endpoints
на сервиc
Тестов
Времени —
boilerplate
Логика
API меняется →
тесты падают
Документация
устаревает
Писать тесты дорого,
поддерживать —
ещё дороже
6
7.
Первый подходС чего мы начали
А давайте
Просто поставим
агент в IDE
Скормим swagger
и попросим написать тесты
7
8.
Первый подходСамый красивый тест
Идеальная структура,
тест проходит
Проверяет
не тот endpoint
В контексте
было 40 endpoints
8
9.
Первый подходПочему LLM не работает
Модель
галлюцинирует
Теряет
контекст
Наши первые
эксперименты —
именно так
Урок: управление
контекстом критично
Генерирует
убедительный,
но неправильный код
9
10.
ИнсайтПроблема не в коде —
проблема в контексте
Не «модель
галлюцинирует»
Проблема
в информации,
которую мы даём
Слишком много —
модель теряется
10
11.
Главный инсайтLLM плохо масштабируется
по контексту, но хорошо
масштабируется по процессу
Вся система сразу →
убедительные ошибки
Процесс разработки →
отличный результат
Не «напиши тесты на сервис»
А «задача → требования →
сценарии → код»
11
12.
Решение01
02
Масштабироваться
по процессу
Минимум шума
в контексте
03
04
Минимизировать когнетивную
нагрузку на LLM
Сохранять (запомнить)
важное
12
13.
АрхитектураСвоя платформа — QArium
● Agent — любой современный coding-агент
● CLI — набор консольных команд
● Prompt команды + skills
● Test framework на базе pytest
● Knowledge base — конституция проекта,
база знаний о проблемах и их решениях
13
14.
Глаза агентаCLI команды
Cписок
endpoints
Cхема одного
endpoint
Генерация
фикстур
Обновление
контрактов
14
15.
Code generationСнимаем когнитивную
нагрузку с модели
Модели запросов
генерируются
автоматически
Фикстуры генерируются
автоматически
Структура тестов
(positive/negative/flow)
генерируется
автоматически
LLM думает только
о тестах
Схемы проверки
ответов генерируются
автоматически
15
16.
Feature flowСформировать
требования
Сгенерировать
тестовые
сценарии
Сгенерировать
автотесты
16
17.
Pipeline агентаFeature
Start — чтение
конституции, endpoints,
формирование
требований
Testcases —
генерация
сценариев
Verify —
проверка сценариев
и требований
Implement —
итеративное
написание тестов
Review —
ревью кода,
линтеры
Finish —
обновление конституции,
готово к merge
17
18.
StartСобираем требования
Постановка
задачи
Сбор и анализ
требований
● Описание от пользователя
● Представление и контекст
● TODO из базы знаний
● Уточнение функциональности
● Данные и предусловия
● Интеграции и окружения
18
19.
1920.
2021.
2122.
2223.
2324.
2425.
TestcasesГенерируем сценарии
Читаем
требования
Формируем
тест кейсы
● Контрактные
(позитивные, негативные)
● Сценарные
(различные сценарии +
интеграции с другими ручками)
25
26.
2627.
2728.
2829.
2930.
VerifyПроверяем сценарии
и требования
Полнота
покрытия
Детализация
шагов
Логическая
целостность
Консистентность
сценариев
Качество
данных
30
31.
3132.
3233.
ImplementКак агент пишет тесты
Пишет тест → запускает →
смотрит результат
Упал → читает ошибку →
понимает причину → фиксит
Проходит → следующий
Не пытается идеально
с первого раза — итерирует
33
34.
ImplementГенерируем тесты
34
35.
3536.
3637.
3738.
ReviewПроверяем код
Соответствие
сценариям
Ограничения
фреймворка
Линтер
38
39.
3940.
4041.
4142.
4243.
FinishОбновляем конституцию
Подводим
итоги работы
Дополняем
конституцию
43
44.
4445.
Что дальше?01
02
Обслуживание
релизов
Дежурства
и текучка
45
46.
ПоддержкаПочему поддержка — это боль
Вечер, пачка тестов в CI упала
Час на разбор:
API? данные? баг?
И так снова и снова
Работа без видимого результата
46
47.
ПоддержкаКак повлияло на процессы
Тесты живут,
падают, устаревают
API меняется,
фикстуры устаревают
Как поддерживать
сотни тестов?
47
48.
Troubleshootingflow
Проанализировать
проблему
и найти причину
Внести правки
Сохранить
проблему
и решение
48
49.
Pipeline агентаTroubleshooting
Start — сбор логов +
анализ истории
Inspect —
анализ ошибок,
отчет
Plan —
план
исправлений
Fix — правка кода,
обновление фикстур
Review —
линтеры, проверка
Finish —
обновление
базы знаний
49
50.
StartСобираем информацию о проблеме
На какой версии проблема
Какие тесты нужно чинить
Связь с прошлыми проблемами
Категоризация ошибок
50
51.
5152.
5253.
5354.
5455.
5556.
InspectАнализируем проблему
Сбор исторической информации
по падениям
Выявление причин
Обоснование проблемы
Поиск решения
56
57.
5758.
5859.
5960.
PlanПланируем исправления
Анализируем
код тестов
Анализируем
код зависимостей
Составляем план
на исправления
Формулируем
задачи в трекер
60
61.
6162.
6263.
6364.
6465.
6566.
FixВносим исправления
Внесение
исправлений
Компиляция
Запуск
и отладка
66
67.
6768.
6869.
6970.
7071.
7172.
ReviewПроверяем код
Соответствие
плану
Ограничения
фреймворка
Линтер
72
73.
7374.
FinishОбновляем историю проблем
Формулируем итоги
по проблемам
Фиксируем проблемы
и решения
74
75.
7576.
Итоги~10
Coverage:
2% → 80% за 2 месяца
Скорость:
в разы быстрее
Качество: как у опытных
automation-инженеров
Требования
стали точнее
Сервисов
2
Департамента
76
77.
Эксперимент продолжаетсяНасколько низкий порог входа?
4 мобильных manual QA
без опыта автотестов
Документация + среда
+ агент
2 недели автономно +
ревью
Стабильные MR
с автотестами
Тесты как у automationинженера
Процесс
масштабируется
77
78.
Формула системыLLM + Tools + Process =
Reliable automation
LLM — мозг, пишет код
Tools — CLI, доступ
к спецификации,
снятие рутины
По отдельности
не работают
Вместе = надёжная
автоматизация
Process — pipeline, ведёт
по шагам
78
79.
ФиналQArium
Думали:
генератор
тестов
Построили:
процесс
разработки
тестов для AI
Перестали
писать
руками
Инженер →
требования
и сценарии
Агент →
реализация
QArium →
open source
soon
79
80.
Спасибо!Есть вопросы?
Михаил Трифонов
Head of QA
80