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).

Следующая