Testplane Team: инструменты автоматического тестирования
Язык буткемпа: TypeScript
Наша команда вносит свой вклад в создание прогрессивных инструментов, чтобы автоматизировать тестирование пользовательских сессий. Используя наши решения, пользователи могут проверять сотни сценариев в считанные минуты (ежедневный запуск около четырёх миллионов интеграционных тестов внутри Яндекса) и анализировать полученные результаты через интуитивно понятный интерфейс. Мы стремимся к тому, чтобы написание и выполнение интеграционных тестов были максимально простыми и эффективными, не отнимающими много времени и дающими стабильный результат.
Основные инструменты, которые развивает наша команда — это Testplane и Testcop.
(Testplane](https://)ithub.com/gemini-testing/testplane) — это опенсорсный инструмент для интеграционного и скриншотного тестирования. Он позволяет автоматизировать пользовательские сценарии и проверять сервисы в реальных браузерах за считанные минуты.
Testcop — это внутренний сервис для автоматического обнаружения нестабильных тестов и их отключения в режиме реального времени. Это позволяет предотвратить влияние некорректных результатов тестов на процесс разработки. Testcop собирает информацию обо всех проведенных тестах (около 10 миллионов записей в день). Благодаря этому он способен не только выявлять проблемные тесты, но и создавать графики стабильности тестирования.
Кроме этого, мы контрибьютим и в другие open-source проекты. Например, в webdriverio, mocha и т.д.
Стек
Node.js, TypeScript | Основные бэкенды |
---|---|
React, Redux | Используем для верстки интерфейса Testcop, а также для HTML-отчёта |
ClickHouse, Redis, SQLite | Используется для хранения результатов тестов |
Python | Такого кода крайне мало, но иногда нужно |
Команда
Команда из пяти человек находится в Крыму (Симферополь) и Санкт-Петербурге. Созвоны по утрам и идём работать — меньше встреч, больше времени на дела.
Особенности
Несмотря на то, что мы — внутренний сервис, у нас много open-source задач — часть инструментов лежит снаружи, некоторые плагины сразу разрабатываем там же. Поэтому в работе мы используем как внешний git + GitHub, так и внутренний arc + Arcadia. Задачи в основном бэкендерские, верстка есть, но её мало.
Что нужно принять во внимание
- Есть дежурства, на которых иногда нужно дебажить код чужих проектов.
- Есть legacy, которое нужно поддерживать.
Вызовы
Основная задача — сделать так, чтобы разработчик мог тестировать свои сервисы максимально быстро и удобно. Для этого нужно постоянно искать способы ускорения наших инструментов, придумывать новые фичи, позволяющие улучшить UX нашего продукта, исследовать и внедрять новые технологии в сфере тестирования.
Дополнительные материалы
Доклад про скриншотное тестирование в Hermione (старое название инструмента Testplane).