TMS

Язык буткемпа: TypeScript
Технологии: NodeJs, PostgreSQL, React, Redux, gravity-ui

Yandex TMS — это система управления тестированием (TMS), помогающая QA-инженерам систематизировать тестовые сценарии различных видов, организовывать их прохождение, анализ и планирование работ по покрытию функциональности тестами. Наша система участвует в жизни практически каждого сервиса Яндекса. Мы стремимся стать единой экосистемой для тестирования сервиса.

Стек

Node.js, TypeScript, NestJS, MikroORM, PostgreSQL, REST API, gRPC, SQS Бэкенд (монолит + вспомогательные микросервисы)
React, TypeScript, Redux, React Query, Gravity UI Фронтенд
Node.js, TypeScript CLI-инструменты для работы из консоли с сервисом

Команда

У нас распределённая команда (Россия, Сербия, Казахстан). Большая часть команды в РФ (Москва, Санкт-Петербург). Всего восемь разработчиков фулл-стеков с разным погружением в одну из областей. Нам помогают двигаться менеджер, тестировщик, дизайнер и редакторы.

Активно применяем подходы с фича-лидерством, который позволяет разработчику по желанию окунуться не только в техническую проработку функциональности, но и продуктовую.

Особенности

  • У вас есть возможность влиять на процесс и результат, брать на себя ответственность, попробовать себя не только в роли разработчика.
  • Возможность углублённо развиваться в одну из областей (фронтенд или бэкенд) или совмещать в себе оба навыка.
  • Мы следим за кодовой базой, покрытием тестами различных видов и активно думаем про точки расширения для будущей функциональности. Поэтому мы много обсуждаем и прорабатываем техническую составляющую всех крупных изменений и сквозной функциональности.
  • Интересная предметная область, регулярно создающая новые вызовы, активно развивающаяся как внутри компании, так и снаружи.
  • Продуктом ежедневно пользуется практически вся компания. Но также мы следим за тенденциями рынка и планируем развивать нашу систему не только внутри Яндекса.

Что нужно принять во внимание

  • Сервис критичный, так как от него зависит тестирование релизов. У нас есть дежурство, на котором один человек из команды на протяжении недели следит за стабильностью сервиса, разбирает проблемы и отвечает на вопросы пользователей в рабочее время. Возможно дежурство в выходные или ночью в случае экстренной ситуации. С последующим разбором и шагами, чтобы предотвратить повторение проблем.
  • Пункт выше означает, что дежурному, будь он фронтенд- или бэкенд-разработчиком, потребуется разбираться в устройстве сервисе и его основных узлах, если потребуется потушить пожар.
  • На самом деле сервиса два. Старый — TestPalm. Он находится на стадии холодной поддержки. Мы его активно замещаем на новый (Yandex TMS).
  • Мы строим стабильную и расширяемую систему, которая закрывает потребности пользователей сейчас и готова к внедрению новой функциональности без необходимости постоянного крупного рефакторинга. У нас находятся алгоритмические задачи, сложные и объёмные оптимизации работы с данными, но, в основном, у нас продуктовая разработка.

Вызовы

  • Построить единый портал тестирования в компании. Весьма амбициозная задача, требующая от нас отличного понимания предметной области, умения выявлять базовые и расширенные сценарии, а также следить за тенденциями в мире тестирования.
  • В силу доменной области нам нужно совершать «прыжки во времени», поэтому мы храним ревизии тестовых сценариев для каждого их изменения. Это накладывает определённые сложности на создание, хранение и чтение этих данных. Например, у нас есть общие сущности (общие шаги и условия тест-кейсов), которые могут быть связаны с десятками тысяч тестовых сценариев.
  • Интеграция сбора результатов автоматических тестов, анализ и подавление ложно-позитивных падений.
  • Большинство наших пользователей — QA-инженеры, которые каждый день страдают от несовершенства этого мира, находя баги и неявное поведение там, где не каждый их найдёт. Мы следим за качеством системы и активно работаем с обратной связью, чтобы наши пользователи были довольны работой сервиса.