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-инженеры, которые каждый день страдают от несовершенства этого мира, находя баги и неявное поведение там, где не каждый их найдёт. Мы следим за качеством системы и активно работаем с обратной связью, чтобы наши пользователи были довольны работой сервиса.