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

Как наша TMS отрастила щупальца. Вадим Шашин (А...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Как наша TMS отрастила щупальца. Вадим Шашин (Авито)

Жили мы себе, как все обычные компании — отдел тестировщиков писал тест-кейсы, отдел автоматизаторов их автоматизировал, тестировщики за ними проверяли… вот это вот всё. А затем случились кроссфункциональные команды, и мир содрогнулся. Расскажу о том, как наша тестохранилка перестала удовлетворять наши потребности и мы отрастили ей щупальца, чтобы упростить жизнь тестировщикам.

Avatar for Zoya Chizhkova

Zoya Chizhkova

August 01, 2019
Tweet

More Decks by Zoya Chizhkova

Other Decks in Programming

Transcript

  1. Кто мы и что делаем • Юнит “Quality Assurance CoE”

    • Центр экспертизы по обеспечению качества • Распространяем практики тестирования • Помогаем настроить процесс тестирования • Разрабатываем инструменты для тестирования 2
  2. Наши инструменты • Генератор тестовых ресурсов • Запускатор сборок тестовых

    хостов • WebDriverGrid (jsonwire-grid) • Model Based Testing Framework • Система управления тест-кейсами (TMS) 3
  3. Наши инструменты • Генератор тестовых ресурсов • Запускатор сборок тестовых

    хостов • WebDriverGrid (jsonwire-grid) • Model Based Testing Framework • Система управления тест-кейсами (TMS) 4
  4. Преимущества своей TMS • Прикрепление багов к шагам • Метки

    автоматизированности тест-кейсов • Статус прохождения авто-теста в тест-плане • Прекондишен из других тест-кейсов • Покрытие фичей продукта тестами • Версионирование тест-кейсов • Удобное API ко всему этому 7
  5. Казалось бы ОК, но… • Поменялась структура компании • Начали

    распиливать монолит • Стало появляться всё больше микросервисов • Тест-кейсы не всегда в TMS • Не все авто-тесты написаны по тест-кейсам • Непонятно что покрыто авто-тестами 9
  6. Первая попытка их решения • Писать тест-кейсы на всё •

    Со строго типизированными датасетами • Составлять прекондишен из шагов других тест- кейсов • Автоматизировать отдельные шаги • Генерировать авто-тесты из тест-кейсов 12
  7. Первая попытка — не зашла • Сложно описывать тест-кейсы •

    Сложная связь параметров тест-кейса и авто- теста • Слишком сложно генерировать авто-тесты для кучи платформ • Не все авто-тесты можно генерировать • Сгенерированные авто-тесты требуют доработки 13
  8. Вторая попытка • Пошли обратным путем • Писать авто-тесты на

    все • Собрать все проверки отовсюду в одном месте • Генерировать тест-кейсы из авто-тестов • Визуализировать что и чем покрыто 14
  9. Что решили сделать Тестохранилка Ядро щупалец Внешний источник №1 Внешний

    источник №2 Внешний источник №3 Щупальце раз Щупальце два 16
  10. Что решили сделать Тестохранилка Ядро щупалец Внешний источник №1 Внешний

    источник №2 Внешний источник №3 Щупальце раз Щупальце два 17
  11. Что решили сделать Тестохранилка Ядро щупалец Внешний источник №1 Внешний

    источник №2 Внешний источник №3 Щупальце раз Щупальце два 28
  12. Что решили сделать Тестохранилка Ядро щупалец Внешний источник №1 Внешний

    источник №2 Внешний источник №3 Щупальце раз Щупальце два 29
  13. Количество тест-кейсов • Avito.ru • Всего примерно 6500 • Из

    них собрано щупальцами примерно 2000 • Мобилки • Всего около 5000 • Собрано щупальцами несколько десятков 38
  14. Регулярки не всегда подходят • Сложно с Андроидом • Сложно

    с MBT • Не всё реально спарсить • Что-то генерируется в рантайме • Тест-кейсы генерируем из отчётов 39
  15. Что решили сделать Тестохранилка Ядро щупалец Внешний источник №1 Внешний

    источник №2 Внешний источник №3 Щупальце раз Щупальце два 40
  16. Что решили сделать Тестохранилка Ядро щупалец Внешний источник №1 Внешний

    источник №2 Внешний источник №3 Щупальце раз Щупальце два 41
  17. Ядро щупалец • Не требуется учитывать особенности тестовых фреймворков •

    Фиксированный формат входных данных Внешнее API Всякие валидаторы Управление тест-кейсами Остальная тестохранилка 42
  18. Ядро щупалец • Не требуется учитывать особенности тестовых фреймворков •

    Фиксированный формат входных данных Всякие валидаторы Управление тест-кейсами Остальная тестохранилка Внешнее API 43
  19. API для сильных Ядро Щупальце Создать или обновить переданные тест-кейсы

    Удалить указанные тест-кейсы Получить все
 тест-кейсы 46
  20. Что решили сделать Тестохранилка Ядро щупалец Внешний источник №1 Внешний

    источник №2 Внешний источник №3 Щупальце раз Щупальце два 50
  21. Как запускаем Репозиторий Пулл-реквест Я смержился! Билд в TeamCity Скачивает

    весь репозиторий Натравливает нужное щупальце 51
  22. BitBucket Server Nerve — подробности Э, там чёт смержилось! Nerve

    Репозиторий Пулл-реквест Репозиторий Пулл-реквест Репозиторий Пулл-реквест Репозиторий Пулл-реквест Скачивает репозиторий Натравливает щупальце Очередь событий Скачивает репозиторий Натравливает щупальце Скачивает репозиторий Натравливает щупальце Есть ли подходящее щупальце? 53