Как тестируют в Microsoft?



На этой неделе я посетил MDCS Track 24 в офисе Microsoft. В программе было шесть докладов, перерыв на обед и коктейльная вечеринка. Особенно запомнился доклад о тестировании в команде Word Online. Делюсь ключевыми моментами:



1️⃣ Отсутствие роли QA/SDET

В Microsoft нет отдельных ролей QA или SDET. Все тестирование выполняют Software Engineers, которые создают продукт. Такой подход интегрирует ответственность за качество непосредственно в процесс разработки.



2️⃣ Упор на unit и e2e тесты

На проекте Word Online используют в основном юнит-тесты и end-to-end (e2e) тесты.

• Интеграционные тесты в данной команде не применяются, хотя в других проектах они возможны.

• Для UI-тестов предпочтение отдают Selenium и Playwright, так как последний ускоряет разработку благодаря, например, встроенным ожиданиям.



3️⃣ Быстрый и безопасный деплой через канареечный релиз

Для обновления Word Online используется канареечный релиз, который проходит следующие этапы:

Dogfood;

• MSFT (альфа-тестирование внутри Microsoft);

• Постепенное расширение аудитории: 1% → 33% → 66% → 100% пользователей.



4️⃣ Мониторинг и автоматизация

Ключевая задача — поддерживать стабильность на всех этапах развертывания.


• Упор на метрики (например, производительность и ошибки).

• Настроены автоматические оповещения об аномалиях, которые помогают быстро реагировать на проблемы.



5️⃣ Релизы с feature flags 🚩

Релизы объединяют множество изменений, включая новые фичи и багфиксы. Для управления доступностью функционала используются feature flags.

Это позволяет:

• включать фичи по группам пользователей,

• тестировать функционал в ограниченном масштабе перед глобальным внедрением.



6️⃣ Работа с новыми функциями:

При внедрении нового функционала команда проводит:

• A/B тестирование,

• Сбор метрик,

• Анализ фидбека от пользователей (этот этап - самый сложный, так как требует глубокой аналитики).



7️⃣ Подходы к ошибкам

Если обнаружены критические проблемы в новой версии, возможны три сценария:

• Откат изменений,

• Приостановка развертывания,

• Продолжение внедрения — если проблема незначительно влияет на пользователей.

Выбор зависит от серьезности ошибки и важности новых функций.



8️⃣ Логи и исключения

Для расследования причин сбоев команда:

• Анализирует множество типов логов: общие, сессионные, запросы.

• При необходимости оперативно добавляет новые логи.

Интересный факт: в команде Word Online избегают выбрасывания исключений. Лучше позволить приложению "упасть", чтобы пользователь обновил приложение.



Если эта тема вам интересна, напишите в комментариях или ставьте 💻 чтобы я подготовил более детальную статью.