Windows 10 November 2019 Update Windows 10 Проблемы и их решения

Почему в Windows 10 так много багов?

  • Категория: Windows 10
  • Дата: 22-10-2019, 07:15
  • Просмотров: 2 934

Всем привет! Сегодня мы поговорим, почему качество Windows 10 так сильно упало и посмотрим на это с точки зрения бывшего сотрудника Microsoft. Именно так, я работал там на протяжении 15 лет. Вот моя первая карточка, а вот моя подписанная награда Vista Hero Award. Я был разработчиком в тестовой дисциплине, вы можете увидеть надпись «Лучший в своём классе автоматизации и инструментов». Чтобы дать понять, как много времени я там был, вот моя награда Ship It. Она содержит все выпущенные продукты, пока я работал в компании. Вплоть до Windows 8.1.

Итак, мы определили, кто я такой. Теперь давайте поговорим о некоторых процессах, которые Microsoft утратила с течением лет, и на что их поменяли. И почему теперь у программного обеспечения компании такое качество.

Итак, давайте поговорим о том, как Windows тестировали раньше. До того, как случились увольнения в конце 2014 года и в начале 2015. В Microsoft было целое подразделение для тестирования, которое занималось только процессом тестирования операционной системы. Это подразделение было разделено на несколько подгрупп, каждая из которых представляла какую-то ветвь разработки. Затем все они ежедневно встречались и обсуждали результаты, также было множество автоматизированных тестов. Это позволяло понять, можно или нет делиться кодом, отправлять его дальше. Дальше был этап, когда весь доступный код из разных отделов операционной системы объединился. Например, пользовательский интерфейс, сеть, предустановленные приложения, драйверы и всё остальное. Встречи были важны, поскольку позволяли обсуждать вопросы вживую. Например, почему тот или иной код нужно убрать, чтобы он не попал в официальную сборку, которая будет представлена миру. RTM означает Release To Media, если кто не знает. В этот момент записывались компакт-диски с Windows, которые вы затем покупали. Или скачивали, потому что кто в наши дни пользуется оптическими дисками.


Итак, всё объединилось и каждый мог сказать, какие баги найдены в операционной системе. Это были баги, найденные на реальных компьютерах. Мы говорим об автоматических тестах в лабораториях, где находятся тысячи отдельных компьютеров. Они представляют разнообразие существующих аппаратных компонентов, насколько это возможно при количестве таких компонентов в продаже.

Есть компьютеры с видеокартами AMD, есть Nvidia, есть интегрированная графика, процессоры AMD, процессоры Intel, многие другие компоненты разных производителей. Была даже мобильная лаборатория, где тестировали систему на ноутбуках. В некоторой степени такая практика продолжается и сегодня. Но вот в чём проблема. Компания уволила всю команду тестирования Windows с небольшими исключениями. Им на замену пришли люди, которые тестировали смартфоны на Windows Phone. Причины этих увольнений в том, что три подразделения Microsoft, больше похожие на отдельные компании, такие как Xbox, Windows Phone и Windows, были объединены под одним руководством. Компании надоело иметь три независимые части программной разработки, и они хотели получить единую архитектуру. Лично я считаю, что это была отличная идея и прекрасно, что консоли Xbox One обладают тем же ядром, что система на компьютерах. Если бы Windows Phone ещё существовала, она тоже работала бы на ядре Windows 10. Как она и делала, прежде чем была закрыта. Поскольку Microsoft тестировала систему на реальных компьютерах, она могла найти небольшие проблемы, которые встречались лишь иногда или на очень редких аппаратных конфигурациях. К сожалению, сегодня большая часть тестирования происходит автоматически на виртуальных машинах. Проблема в том, что виртуальные машины не предлагают разнообразия. Все они работают одинаково на виртуальных аппаратных конфигурациях. У них у всех одинаковая память и прочие компоненты. Из-за этого можно найти только те баги, которые есть почти у 100% людей.


Как найти баги, которые случаются лишь у части пользователей? Тут в дело вступает нечто под названием Self Host. У Microsoft есть множество сотрудников в подразделении тестирования, которые запускают ежедневные сборки на своих устройствах. Это устройства разработчиков, основное устройство для ежедневной работы. Если они сталкиваются с багом или проблемой, они не могут их проигнорировать, не могут пройти мимо. Они могут записать баг, пойти к разработчику и работать над разрешением проблемы или хотя бы найти обходные пути. К сожалению, у Self Host в Microsoft сейчас намного меньше людей и разработчики не могут полагаться на то, что у каждого из них будет свой тестер. Они полагаются на телеметрию от предварительных сборок из программы Windows Insider. Любой желающий может подписаться на получение этих сборок. Можно сказать, что это ранний код. Когда мы получаем этот код, мы запускаем его на своих компьютерах, и если что-то падает или ломается, Microsoft получает отчёт. Проблема в том, что большинство багов приводят не к падениям системы, а к тому, что что-то работает не как положено. Когда что-то работает не так, это не генерирует информацию для отправки в Microsoft в виде дампа, который можно загрузить и сказать «О, вот неправильный код, который всё испортил». Вместо этого они полагаются на отчёты пользователей. Большинство пользователей не сообщают о проблемах, если только они не катастрофического масштаба. Только небольшой процент пострадавших от неполадок людей докладывают о них. Если даже и докладывают, они могут не дать Microsoft информации для воспроизведения неполадки, чтобы понять причину бага и устранить его. Таким образом, Microsoft заменила реальных людей, которые создавали автоматизированные тесты, и подразделения тестирования, которые ежедневно работали с кодом, на простых потребителей. Они тестируют программное обеспечение и отправляют информацию со своих компьютеров в Microsoft.


Тут в дело вступает телеметрия. Это отличный инструмент для оптимизации производительности программного обеспечения и иногда она может помочь устранить баги. Однако она не позволяет устранять баги, когда падения происходят за пределами того процесса, который упал. Например, у вас есть программа и она падает, но причина в том, что с внешними зависимостями что-то пошло не так. Например, с сервисом на компьютере. Когда этот процесс падает, если вы не отключали это во время установки, создается дамп, небольшой снимок памяти. Небольшой файл, а не копия всей памяти. По существу, отправляется самая актуальная информация о том, где именно сломался этот процесс и только внутри этого процесса в пространстве памяти. Полный дамп показал бы снимок памяти всего компьютера, чтобы можно было сверяться с другими зависимостями между процессами и с внешними процессами в операционной системе, чтобы понять, где произошла проблема. Такие полные дампы редко отправляются, если вообще когда-либо отправляются в Microsoft. Они слишком огромные для этого. Это означает, что у Microsoft есть небольшой дамп, на основе которого они должны воссоздать баг на своих компьютерах и посмотреть на него. Здесь в дело вступала моя команда. В 2015 году, мы занимались воспроизведением этих багов. Мы воссоздавали их, связывались с разработчиком и давали всю необходимую информацию, чтобы они могли увидеть картину происходящего целиком. И исправить проблему. К сожалению, сегодня разработчики из Microsoft зависят от телеметрии. Они смотрят на базу данных багов и на то, где происходит большинство падений. Они анализируют ту незначительную информацию, которую присылают им компьютеры пользователей относительно этих падений. Пытаются понять, что произошло на самом деле. Когда они исправляют баг, у них нет хороших условий для внутреннего тестирования, чтобы убедиться в стопроцентной надёжности исправления. Код отправляется в предварительные сборки на компьютеры пользователей. Дальше они смотрят, появятся новые проблемы или нет. Эти проблемы опять же сложно распознать, трудно связать между собой проблему номер один и проблему номер два. Если только они не связаны совсем явно. Или доклады о проблеме перестают приходить, когда инсайдеры обновили свои сборки. Что раньше происходило, когда выходило крупное обновление операционной системы? Оно распространялось для всех, год или два назад это приводило к плачевным результатам. Тогда они выпустили обновление, повесившее компьютеры четверти мира. Быть может, это небольшое преувеличение, но пострадало много пользователей и был большой шум в прессе. Теперь они сменили тактику и распространяют обновления поэтапно. Иногда открывается центр обновления Windows и вы видите, что не можете поставить версию 1903 или там сказано, что ваш компьютер признан негодным для установки обновления. Так Microsoft говорит вам, что на основе телеметрии из предварительных сборок мы не совсем уверены, что обновление будет нормально работать на вашем компьютере.


Теперь Microsoft применяет следующий подход. Когда предварительная сборка выглядит готовой, инсайдеры не обеспечивают полноценное разнообразие аппаратных компонентов. Впрочем, про тестовые лаборатории Microsoft можно сказать так же, но теперь они стали меньше прежнего. Если инсайдеры устанавливают эту сборку и все выглядит нормально, Microsoft начинает поэтапное распространение для широкой публики. Проблема в выбранных для первоначального распространения компьютерах. Иногда вы можете увидеть обновление раньше, чем на компьютерах ваших друзей или членов семьи. Виноваты могут быть определённые аппаратные компоненты или же это случайное распространение. Дальше они смотрят, какая телеметрия поступает к ним и какие баги обнаруживаются. Дальше они становятся всё более и более уверенными, делают следующий шаг и распространяют обновление на большем числе компьютеров. Проблема в том, что первоначальная группа выбранных пользователей задействуется для тестирования программного обеспечения, как и участники программы Windows Insider. У Microsoft нет большой уверенности в этом программном обеспечении, иначе компания распространяла бы его сразу среди всех пользователей. Как это было с обновлениями до 2016 года. Можно похвалить Microsoft за признание проблем с процессом тестирования и за усовершенствование процесса распространения программных обновлений, но это не меняет того, как много людей ежедневно пишут мне и говорят, что их компьютер перестал работать или сеть упала или невозможно пометить диски после установки обновления или компьютер просто не включается. Такие проблемы можно было бы найти раньше, если бы была команда для тестирования, которые были словно хранители, именно так нас называли. Хочется верить, что кто-нибудь из Microsoft читает эту статью, кто-то из руководства. Пусть они подумают может быть, этот толстяк с ютуба прав? Может, нам стоит нанять обратно команду тестирования. Конечно, это будут не все те же люди, что и прежде. Например, я вряд ли вернусь. Но можно набрать команду, натренировать её и она будет не хуже старой. Можно вернуть все процессы автоматизации, расширить количество автоматических сценариев, разнообразить аппаратные компоненты и перестать пытаться миллион раз имитировать работу на виртуальных машинах в поиске багов, которые происходят в 100% случаев. Вместо этого перейдите на использование реальных аппаратных компонентов. Я думаю, это значительно увеличит способность находить эти баги до того, как они доберутся до клиентов.


Что важнее всего, если вы парни видите множество падений систем, я сейчас обращаюсь к Microsoft, и если у вас есть только мини-дампы и ваши разработчики не способны на их основе понять, где именно поломка. Поскольку задействованы внешние зависимости или какое-то место в памяти, которое не отражено в дампе. Я рекомендую в следующий раз при падении системы выпустить диалоговое окно для кого-то за пределами компании. Быть может, у кого-то есть такая же проблема, и вы скажете людям «Слушайте, мы не можем найти как исправить этот баг. Пожалуйста, отправьте нам полный дамп». Он может весить 64 Гб или 128 Гб или терабайт. Ладно, может быть не полный дамп одной из этих систем, но вы поняли, что я имею в виду. Нужен определённый метод, чтобы пользователи могли отправлять полный дамп в Microsoft. Дальше, если вы используете этот файл для исправления бага, следует вознаградить этого пользователя за потраченное время и трафик. Ему нужно дать какую-то компенсацию. Поскольку у вас нет собственных тестеров и вы получаете то, за что заплатили. Если вы не дадите людям понять, что вознаградите их за отчёт об ошибках и загрузку полного дампа, многие эти баги так и останутся неисправными и ваши разработчики должны будут делать что-то ещё худшее, чем во времена моей работы в Microsoft. Они должны будут гадать, в чем именно проблема. Придётся менять код, который совершенно не связан с реальным багом, поскольку они не понимают его полностью. Или появится новый баг или новая проблема с производительностью, что нам совершенно не нужно.


Прежде чем я завершу эту статью и все скажут «Боже мой, этот парень просто злится на Microsoft, поскольку его в 2015 году уволили». Я хочу пояснить: причина моего расстройства в том, что всю свою взрослую жизнь я потратил на технологии Microsoft и я ожидаю от них высокого качества. Я люблю язык С#, люблю Direct X, люблю операционную систему Windows 10 и думаю, что она одна из самых классных в истории Microsoft. Когда вы избавитесь от всех навязываемых дрянных приложений, которые они устанавливают без вашего разрешения. И от всей телеметрии, которую они постоянно сохраняют на вашем жёстком диске. В остальном я считаю, что Windows 10 лучшая система, которую Microsoft когда-либо выпускала. Разве только обновления Windows часто ломают работу системы и приходится откатываться назад. Их система тестирования стала совершенно неадекватной по сравнению с тем, что было. Можно было находить проблемы на раннем этапе и решать их до того, как они портили жизнь пользователям. Также нужно помнить про все шпионские примочки. Microsoft не называет их шпионскими, но я называю. Есть разница между сбором телеметрии для помощи в улучшении операционной системы и попытками скрыть это от пользователей. Хотя я признаю, что они проделали работу над тем, чтобы сделать всё это видимым при установке новых сборок. В общем, спасибо что слушали мою болтовню о Windows 10. Я люблю Windows 10, потому она установлена на компьютере позади меня, на компьютере внизу, на нескольких компьютерах в разных местах, трёх ноутбуках и всём остальном что у меня есть. Поскольку я по-настоящему люблю Windows 10 и хочу, чтобы Microsoft исправила все проблемы и выпускала высококачественные обновления, после которых я не получу столько писем от людей, у которых всё поломалась. И не хочу видеть заголовки после крупных обновлений, где описывается, как всё перестало работать. Я хочу видеть, что Microsoft снова превратится в респектабельную компанию, которой можно доверять, которой она когда-то была. Нужна надёжность, стабильность, производительность и репутация.

Итак, я надеюсь, что вам понравилась эта статья!




  • Комментарии
  • ВКонтакте
  • Facebook
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Пользователи онлайн
Всего на сайте: 16
Пользователей: 1
Гостей: 15
Роботы: Yandex
dismay2012
+2  
Новостей: 2685
+1  
Комментариев: 579
+1  
Пользователей: 3340
ВКонтакте