Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Василий Юдин (Авито) — Как подружить QA и разра...

Василий Юдин (Авито) — Как подружить QA и разработку через применение практики хранения тестов в коде

Ozon Tech

July 18, 2022
Tweet

More Decks by Ozon Tech

Other Decks in Technology

Transcript

  1. Знакомимся Меня зовут Юдин Василий - В IT с 2012

    года - Дружу с QA более 9 лет - Сейчас скромный инженер в Авито - Разрабатываю инструменты для QA 2
  2. Оглавление О чем мы поговорим: - Масштабирование компании - Agile

    Testing - TMS и выгрузка тестов - Как выгрузка выглядит у нас - С какими сложностями столкнулись - Что получили в итоге 3
  3. Проблема тестирования в спринте В начале спринта пусто В конце

    спринта QA-инженер в огне Ничего не делаем, задач еще нету Надо протестировать 2/3 спринта 6
  4. Проблемы наступления бас-фактора - Тестировать некому - Нет экспертизы по

    качеству продукта команды - Долгий онбординг новичка 7
  5. Agile Testing — основы 1. За качество отвечает вся команда,

    а не один человек 2. На критерии приемки тесты пишут сами разработчики 3. QA-инженер принимает тесты на код-ревью 8
  6. Agile Testing Какие проблемы остались? - До сих пор полная

    картина о качестве и тест-кейсах сосредоточена в голове у одного человека — QA- инженера - Непонятно, как покрыта фича юнитами из кода 9
  7. TMS и выгрузка тестов Пришли к мысли: Надо автоматически концентрировать

    информацию о тестах в одном месте (в TMS - системе управления тест- кейсами) Но как быть с юнитами в коде? 10
  8. TMS и выгрузка тестов Какие требования к инструменту выгрузки тестов?

    - Простой для разработчиков - Мы хотим контролировать инструмент на код-ревью - У нас много языков, много видов тестов, тестовых фреймворков: все должны поддерживать 11
  9. А как это сделать Возникают вопросы: - А как это

    сделать? - Какие есть готовые инструменты? - Как это делают другие? 12
  10. Виды выгрузки тестов Без выполнения кода тестов - Рефлексия -

    Регулярки - Парсинг на ast-ноды С выполнением кода тестов - Подмешиваем информацию в отчет о прогоне и парсим его 13
  11. Без выполнения кода тестов Рефлексия + Позволяет легко спарсить дата-сеты

    - Доступна не везде - Надо выполнять код из проекта 14
  12. Без выполнения кода тестов Регулярки + Позволяют легко забирать тесты

    с множества платформ + Достаточно сделать git clone проекта - Сложно поддерживать, если нет единого код-стайла - Часто бывают кейсы, когда надо доработать регулярку 15
  13. Без выполнения кода тестов Парсинг на ast-ноды (abstract syntax tree)

    + Позволяет делать почти что угодно без запуска кода проекта - ast-дерево еще нужно интерпретировать в тест- кейсы - Обычно инструмент парсинга доступен только на том же языке (но сейчас Golang меняет это) 16
  14. С выполнением кода тестов Подмешиваем информацию в отчет + Можно

    легко спарсить что угодно + Можно развить в фреймворк для тестирования - Требует очень хорошей разметки тестов - Тесты не выгрузить без прогона, а это может быть долго 17
  15. Что мы хотим парсить? Обязательные поля - tag_id (нода в

    TMS) - title - testType (unit) - priority (normal / critical) Необязательные поля - description - feature_id - precondition - steps 20
  16. Как выгрузка выглядит у нас TMS Event Gateway Git Сервис

    выгрузки тестов Merge into master Event (API) (merge event) API (testcases) git clone (master) Kafka 25
  17. С какими сложностями столкнулись 1. Регулярки — зло 2. Нужно

    все максимально логировать 3. tag_id = магические цифры = никто ничего не понимает 31
  18. Что получили в итоге 1. Тесты пишет не QA-инженер, а

    вся команда, нет бутылочного горлышка, у QA-инженера больше времени. 2. Уровень инженерной культуры повышается. 3. Видим, как продукт покрыт тестами, что проверяют юниты в коде. Есть множество метрик, визуализаций, быстрый онбординг новых людей. 32
  19. Вопросы Задаем вопросы avito.tech TMS проектирование парсеры анализ тестовая модель

    тест-кейсы разметка тестов в коде платформа выгрузка математика изучение все языки и фреймворки мнение IT-специалист IT-специалист QA-инженер интеллект анализ анализ поддержка интернет парсер завелся интернет avito.tech avito.tech avito.tech команда команда go умеет разбивать на AST мнения аудитории чего готовенькое есть? парсинг модель качества дизайн тесты теперь выгружаются изучение 33