众所周知,Windows10系统问题频发,整体稳定性也比较差,但之前的版本其实还是比较稳定的。自Windows10正式发布以来,系统问题频发,现在每个月的安全更新都会带来大量的新问题。其实我们几年前在蓝点网的文章中已经提到了相关的原因。主要原因是微软在重组时解雇了整个测试部门。操作系统的构建如此复杂:在微软工作了十五年的JerryBerger最近发布了一段视频回顾,详细解释了微软操作系统团队历次构建的测试过程。原来微软有一个非常庞大的测试团队,而这些测试团队又分成了很多不同的分支,每个分支又有多个不同的组。这样细致的划分,可以保证所有的功能模块都得到充分的测试,至少可以保证每个新功能都能有足够的人力进行测试。这些子测试团队每天开会讨论新功能的测试,只有没有问题才会合并相关的功能和代码。值得注意的是,测试组的每个成员都需要使用新的测试版,安装在一台物理机上作为测试组的日常主系统。为重要场所设立专门实验室:JerryBerg还提到,原来微软的测试团队也为Intel、AMD、Nvidia等CPU/GPU测试设立了专门实验室。这些专用实验室用于测试新版本或功能模块与处理器和显卡等关键硬件的兼容性或性能问题。负责这些实验室的测试团队也与制造商对接,因此如果测试团队发现任何问题,他们可以快速识别并制定解决方案。开发组修复问题后,交由测试组进行测试。测试组测试通过后,修复方案的代码会合并到主线程中。然后在纳德拉上任后,整个测试团队被裁撤:2014年到2015年,原微软CEO鲍尔默宣布退休离开微软,随后萨蒂亚纳德拉接替鲍尔默成为微软新任CEO。纳德拉上任时,宣布对微软进行大规模重组。与此同时,纳德拉提出了“移动优先,云优先”的口号,即桌面平台不再是重点。在重组过程中,纳德拉裁撤了整个操作系统的测试团队,随后合并了Windows10/Xbox/WindowsPhone。合并之后,各个平台的硬件使用相同的Windows10内核,每个版本都需要兼顾PC、移动设备和游戏平台。当然,如你所知,最终WindowsPhone或者Windows10Mobile平台无力回天,微软彻底放弃了移动系统。现在微软靠的是自动化测试:聘请人类团队进行测试对于大型商业软件开发公司来说是一个艰难的决定,因为人工成本可能会花费很多钱。因此,现在很多软件开发商都依赖自动化测试系统,微软也是如此。微软现在主要靠自动化和虚拟机测试。但虚拟机测试似乎无法达到与物理机相同的测试结果,无法与微软原先庞大而细致的人工测试团队相提并论。这也是导致Windows10问题频发的主要原因之一。虚拟机测试存在缺陷或遗漏,导致潜在问题无法及时发现。WindowsInsider似乎意义不大:在视频解说中,JerryBerg还讨论了Windows10测试版项目,这根本无助于微软解决太多问题。主要原因是大部分内测用户在遇到问题时不会主动向微软报告。当然,即使他们向微软报告,最终的结果也可能会被忽略。造成这种情况的主要原因是dumplog。系统运行时,会不断记录各种情况,并产生一个非常大的转储日志供分析。但实际情况是,只有当系统崩溃时,dumplog才会记录其详细信息,而对于其他“小问题”,系统不会记录dumplog。完整转储日志的体积非常大,可能是几十GB、几百GB甚至TB级。显然,大多数用户没有这么大的存储空间。也就是说,即使用户主动向微软反馈,提供转储日志,但实际提供的也只是部分片段,而不是整个操作系统的完整运行日志。微软工程师也很难通过碎片化的日志排查问题。随着时间的推移,Windows10积累了越来越多的反馈。那么微软的工程师可能会在面对这么多问题的时候选择性的放弃。Windows101809丢失文件反馈就是一个典型的例子。当微软工程师对用户反馈的回应越来越少时,这反过来又降低了测试版用户放弃继续给微软反馈的积极性。PS:相信很多看了这篇文章的蓝点网读者应该都安装了测试版,那么当你遇到问题的时候,有没有主动向微软反馈过这些问题呢?正式版的用户实际上已经成为了小白鼠。Bluedot.com之前开了个玩笑。测试版用户属于小白鼠,正式版用户属于小白鼠,商业用户版属于真正的正式版。JerryBerg表示,正式版用户收到的版本实际上是在为微软做测试,这些正式版用户实质上已经成为了微软的测试用户。以往,微软都是快速大批量推送新版本。JerryBerg表示,在巅峰时期,微软能够在极短的时间内升级全球1/4的设备。只是后来频繁的问题导致微软调整了策略,降低了新版本的推送速度,在批量推送的同时收集了遥测数据。所以直到现在,部分用户还没有收到Windows10Version1903更新,因为微软还没有准备好全面覆盖新版本。Windows10时刻注视着你:在视频解说中,JerryBerg还提到了Windows10版本的隐私问题,此前欧盟监管机构曾因收集大量数据而对其展开调查。JerryBerg表示,即使是现在微软也会继续收集各种用户数据,其实最重要的是通过遥测来监控设备的运行情况。当然,坦率地说,这并不意味着微软有意收集信息以出售广告或其他目的,因为微软的目的是收集潜在的运营故障。没有测试团队,微软工程师只能依赖内置的遥测系统。从用户开机到运行第三方软件,微软都会关注系统的运行情况。如果发现潜在问题,这些日志会自动上传到微软服务器进行分析,帮助微软开发团队确定哪些地方需要修复。毕竟对于Windows10开发团队来说,巧妇难为无米之炊。没有测试人员,他们只能自己想办法解决测试问题。
