Данные телеметрии, которые отправляются в Microsoft добровольными участниками программы тестирования Windows Insiders
В последних обновлениях Windows 10 стало очень много багов. Практически после каждого билда Microsoft выпускает патч с исправлением ошибок. И этому есть причина.
Бывший разработчик Microsoft Джерри Берг (Jerry Berg) объясняет, в чём дело. По его словам, в последние годы Microsoft ради экономии поменяла метод тестирования операционной системы. Раньше в компании работал большой отдел тестеров на зарплате. Потом их сократили, а тестирование переложили на широкое сообщество (бесплатных) добровольцев, которые участвуют в программе Windows Insider.
Берг работал в Microsoft пятнадцать лет, в том числе занимался проектированием и разработкой инструментов и процессов для автоматизации тестирования операционной системы. Он покинул компанию после выпуска Windows 8.1. Вместе с 150 другими сотрудниками его уволили 17 июля 2014 года. Менеджеры объяснили это сменой курса компании, в результате чего их должности больше стали не нужны (возможно, это как раз связано со сменой парадигмы тестирования продуктов — прим. ред.).
За последние пару лет Microsoft значительно изменила процесс тестирования. Берг описывает, как проводилось тестирование в конце 2014 — начале 2015 года, и как с тех пор изменились процессы.
Ещё в 2014/2015 году в Microsoft работала целая команда, которая занималась тестированием операционной системы, билдов, обновлений, драйверов и другого кода. Команда состояла из нескольких групп, которые проводили тесты, ежедневно встречались и обсуждали баги. Продукты тестировались и вручную, были и автоматизированные тесты. Если все они завершались успешно, команда давала добро на интеграцию кода в Windows.
Автоматизированные тесты запускали в лаборатории на «реальном» оборудовании, которое должно было отразить различные варианты конфигурации, в том числе разные процессоры, жёсткие диски, видео- и звуковые карты и другие компоненты для покрытия широкого спектра конфигураций. Это означало, что в процессе выявлялись ошибки, которые затрагивали только определённые аппаратные компоненты или конфигурации.
Microsoft уволила почти всю команду тестирования Windows, поскольку по новой стратегии фокус смещался с трёх разных систем — Windows, Windows Mobile и Xbox — на одну систему. Бóльшую часть тестов компания перенесла на виртуальные машины. По словам Берга, из-за этого тесты больше не проводились на реальных и разнообразных аппаратных конфигурациях.
Сотрудники Microsoft могли самостоятельно устанавливать Windows на своих машинах. Основная идея заключалась в том, чтобы получить обратную связь от сотрудников, если они столкнулись с проблемами во время рутинной работы. Берг отмечает, что сейчас такое тестирование используется не так широко, как раньше.
Кроме автоматизированных тестов, основными источниками информации о багах являются данные телеметрии и Windows Insider. Сборки Windows Insider устанавливаются на миллионы устройств, и со всех этих машин Microsoft собирает данные телеметрии.
Microsoft получает информацию о каждом сбое. Одна из проблем телеметрии заключается в том, что большинство багов проходят незамеченными. Если что-то работает неправильно, Microsoft может не заметить соответствующие биты в трафике телеметрии, говорит Берг. Хотя пользователи теоретически могут открывать тикеты, многие этого не делают, а в других случаях серьёзные баги теряются в общем потоке тикетов. Кроме того, часто «инсайдеры» не сообщают все необходимые подробности, которые нужны для выявления, воспроизведения и исправления бага, что создаёт огромные проблемы для инженеров, которым поручено решить эти проблемы.
В 2014/2015 годах команда тестирования Microsoft должна была анализировать ошибки и предоставить инженерам данные, необходимые для их устранения. В настоящее время, отмечает Берг, разработчики имеют дело с телеметрией. Нужно изучать этот информационный поток и выяснять, как исправить выявленные баги. Затем исправления передаются на клиентские устройства, на которых работают сборки Insider — только так можно определить, исправлена проблема или она породила новые баги. То есть после выпуска патча разработчики сразу не могут его проверить. Нужно отправить его «инсайдерам», а затем опять собрать от них телеметрию и проанализировать её.
Одной из основных причин, по которой Microsoft перестала выпускать новые обновления функций сразу для всех, было то, что неисправленные ошибки потенциально могут повлиять на большое количество клиентов, говорит Берг.
Чтобы избежать абсолютной катастрофы, как с билдом Windows 10 версии 1809, введены постепенные деплои, чтобы не накатывать обновления через Центр обновления Windows сразу на большинство машин в первые дни после выпуска.
Проблема с новым процессом тестирования обсуждается уже давно. Год назад после известного бага с потерей файлов на компьютере после установки обновления Windows 10 Питер Брайт из Ars Technica обращал внимание, что Microsoft не справляется с обработкой потока сообщений об ошибках от инсайдеров. Тот же баг с потерей данных на самом деле зарепортили за три месяца до выхода обновления.
Но проблема в том, что многие сообщения об ошибках от инсайдеров низкого качества, им не хватает необходимых деталей или правильной терминологии. Хотя, если компания не заметила проблему в течение трёх месяцев, то совсем не очевидно, что ей бы хватило более длительного времени. Более длительный период разработки просто привёл бы к тому, что ошибку игнорировали в течение шести месяцев, а не трёх.
«Microsoft обещала изменить процесс обратной связи с инсайдерами, чтобы те указывали серьёзность проблемы и привлекали больше внимания к такого рода проблемам. Это может помочь, если инсайдеры будут корректно использовать индикаторы серьёзности, но кажется недостаточным для решения главной проблемы: слишком большого количества отчётов об ошибках слишком низкого качества, — писал Брайт. — Это относится к проблеме качества кода. Реальная сила программы Insider — разнообразие аппаратного и программного обеспечения. Инсайдеры могут выявить самые экзотические баги совместимости, проблемы с драйверами и так далее. Но инсайдеры не должны осуществлять базовое тестирование функций. Но часто возникает ощущение, что Microsoft использует их как штатных тестировщиков».
— Кто-нибудь тестировал наш UI перед выпуском?
— Нет, наши пользователи сами скажут, если что не так. И они работают бесплатно.
— Но это неправильно.
— Они тоже так говорят и, в отличие от тебя, работают бесплатно.
Более того, если качество кода падает во время разработки, то предварительные сборки обычно не подходят для повседневного использования на обычных ПК. Они недостаточно надёжны. В свою очередь, это подрывает ценность тестирования инсайдерами: они не устанавливают их на основной ПК и не подвергают сборки полному спектру аппаратного и программного обеспечения. Они используют второстепенные ПК и виртуальные машины. Об этом же сейчас говорит и Джерри Берг: мало кто сейчас запускает инсайдерские сборки в повседневной работе. Поэтому и тестирование выходит неполноценное.