Testplane Team: инструменты автоматического тестирования

Язык буткемпа: TypeScript

Наша цель — развивать экосистему автоматизации тестирования, чтобы написание, поддержка и выполнение тестов были максимально простыми и эффективными, не занимали много времени и давали стабильные результаты. Так мы повышаем качество продуктов компании.
Запросы на тестирование большие: ежедневный запуск более четырёх миллионов интеграционных тестов внутри Яндекса.

Основные инструменты, которые развивает наша команда — это Testplane, Testcop и Surfwax.

Testplane — это опенсорсный инструмент для интеграционного и скриншотного тестирования. Он позволяет автоматизировать пользовательские сценарии и проверять сервисы в реальных браузерах за считанные минуты. Также мы развиваем свой репортер под названием Testplane UI, позволяющий не только просматривать результаты тестов, но и их запуск/перезапуск, принятие/обновление скриншотов, отключение падающих тестов проямо из отчета и многое другое.

Testcop — это внутренний сервис для автоматического обнаружения нестабильных тестов и их отключения в режиме реального времени без коммита в в репозиторий. Это позволяет предотвратить влияние некорректных результатов тестов на процесс разработки. Testcop собирает информацию обо всех проведенных тестах (около 10 миллионов записей в день). Благодаря этому он способен не только выявлять проблемные тесты, но и создавать графики стабильности тестирования.

SurfWax — это внутренний сервис для управления и выдачи эмуляторов, который запускает 3 млн эмуляторов в сутки. Если простыми словами, то это удаленный грид для получения браузеров для тестирования. Аналогами во внешнем мире являются такие сервисы, как BrowserStack и SauceLabs.

Кроме этого, мы контрибьютим и в другие open-source проекты. Например, в webdriverio, mocha, jest и т.д.

Стек

Node.js, TypeScript Основные бэкенды
React, Redux Используем для верстки интерфейса Testcop, а также для HTML-отчёта
ClickHouse, Redis, SQLite Используется для хранения результатов тестов
Python Такого кода крайне мало, но иногда нужно

Команда

Команда из пяти человек находится в Крыму (Симферополь) и Санкт-Петербурге. Созвоны по утрам и идём работать — меньше встреч, больше времени на дела.

Особенности

Несмотря на то, что мы — внутренний сервис, у нас много open-source задач — часть инструментов лежит снаружи, некоторые плагины сразу разрабатываем там же. Поэтому в работе мы используем как внешний git + GitHub, так и внутренний arc + Arcadia. Задачи в основном бэкендерские, верстка есть, но её мало.

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

  • Есть дежурства, на которых иногда нужно дебажить код чужих проектов.
  • Есть legacy, которое нужно поддерживать.

Вызовы

Основная задача — сделать так, чтобы разработчик мог тестировать свои сервисы максимально быстро и удобно. Для этого нужно постоянно искать способы ускорения наших инструментов, придумывать новые фичи, позволяющие улучшить UX нашего продукта, исследовать и внедрять новые технологии в сфере тестирования.

Дополнительные материалы

Доклад про скриншотное тестирование в Hermione (старое название инструмента Testplane).

Следующая