7.05M

Михаил_Трифонов_–_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.

19

20.

20

21.

21

22.

22

23.

23

24.

24

25.

Testcases
Генерируем сценарии
Читаем
требования
Формируем
тест кейсы
● Контрактные
(позитивные, негативные)
● Сценарные
(различные сценарии +
интеграции с другими ручками)
25

26.

26

27.

27

28.

28

29.

29

30.

Verify
Проверяем сценарии
и требования
Полнота
покрытия
Детализация
шагов
Логическая
целостность
Консистентность
сценариев
Качество
данных
30

31.

31

32.

32

33.

Implement
Как агент пишет тесты
Пишет тест → запускает →
смотрит результат
Упал → читает ошибку →
понимает причину → фиксит
Проходит → следующий
Не пытается идеально
с первого раза — итерирует
33

34.

Implement
Генерируем тесты
34

35.

35

36.

36

37.

37

38.

Review
Проверяем код
Соответствие
сценариям
Ограничения
фреймворка
Линтер
38

39.

39

40.

40

41.

41

42.

42

43.

Finish
Обновляем конституцию
Подводим
итоги работы
Дополняем
конституцию
43

44.

44

45.

Что дальше?
01
02
Обслуживание
релизов
Дежурства
и текучка
45

46.

Поддержка
Почему поддержка — это боль
Вечер, пачка тестов в CI упала
Час на разбор:
API? данные? баг?
И так снова и снова
Работа без видимого результата
46

47.

Поддержка
Как повлияло на процессы
Тесты живут,
падают, устаревают
API меняется,
фикстуры устаревают
Как поддерживать
сотни тестов?
47

48.

Troubleshooting
flow
Проанализировать
проблему
и найти причину
Внести правки
Сохранить
проблему
и решение
48

49.

Pipeline агента
Troubleshooting
Start — сбор логов +
анализ истории
Inspect —
анализ ошибок,
отчет
Plan —
план
исправлений
Fix — правка кода,
обновление фикстур
Review —
линтеры, проверка
Finish —
обновление
базы знаний
49

50.

Start
Собираем информацию о проблеме
На какой версии проблема
Какие тесты нужно чинить
Связь с прошлыми проблемами
Категоризация ошибок
50

51.

51

52.

52

53.

53

54.

54

55.

55

56.

Inspect
Анализируем проблему
Сбор исторической информации
по падениям
Выявление причин
Обоснование проблемы
Поиск решения
56

57.

57

58.

58

59.

59

60.

Plan
Планируем исправления
Анализируем
код тестов
Анализируем
код зависимостей
Составляем план
на исправления
Формулируем
задачи в трекер
60

61.

61

62.

62

63.

63

64.

64

65.

65

66.

Fix
Вносим исправления
Внесение
исправлений
Компиляция
Запуск
и отладка
66

67.

67

68.

68

69.

69

70.

70

71.

71

72.

Review
Проверяем код
Соответствие
плану
Ограничения
фреймворка
Линтер
72

73.

73

74.

Finish
Обновляем историю проблем
Формулируем итоги
по проблемам
Фиксируем проблемы
и решения
74

75.

75

76.

Итоги
~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
English     Русский Rules