据Win10天地了解,按照正常的流程,一个Windows 10的大版本更新在正式推送给用户之前,微软需要把RTM之前的候选版本提供给硬件厂商,以便他们及时跟进驱动的适配,这些硬件厂商中肯定会有英特尔。
为了防止驱动出现问题以及防范恶意软件,在硬件厂商编写好驱动之后,微软的Windows硬件设备质量实验室(WHQL,Windows Hardware Quapty Lab)会对这些驱动进行一个认证。
如果认证通过,微软就会给这些厂商的驱动签名,只有这些签过名的驱动,最终才被允许安装在用户的电脑上。通常来讲,微软会通过Windows Update把来自厂商的新版驱动静默推送到用户的电脑上,用户无需自己动手。
这次部分用户因新版驱动未安装而无法升级到Windows 10 1809,其背后的事实究竟是怎样的呢?其实,在Windows 10 1809 RTM之前,适配于新系统的英特尔驱动就已经编写完成、并通过WHQL的认证了。至于这个本可以避免的问题最终因何暴露,解释起来却让人哭笑不得:英特尔确实提交了新版驱动,可微软在Windows Update里推送它的时候,竟把它当成了一个可选更新。
硬件厂商再配合,也怕微软搭错筋啊。
微软砍掉了测试团队?
微软内部有三大核心技术工种,分别是软件开发工程师(SDE)、软件测试工程师(SDET)和项目经理(PM)。2014年,有传言称微软裁撤了软件测试部门,转而将Windows 10的测试任务交给自动化测试和用户测试,这种说法其实是不准确的。SDET岗位并非被裁撤,而是与SDE进行了合并。SDET的职责也并未消失,只是被重新分配了而已。也就是说,过去,软件测试这个工作是由SDET来专职负责的,而SDET与SDE合并之后,软件开发工程师同时肩负了软件测试的职责(组合工程),微软内部的QA类型测试依然存在,这样算起来,Windows 10系统的质量控制就是由自动化测试、SDE的内部把关、Windows Insider的外部把关以及OEM测试所共同完成的。

把SDET与SDE进行合并,这种操作真的没问题么?
当然没问题,不过有一点我们需要考虑,那就是SDE的思维方式与SDET的思维方式之间的差异性。对于一个开发人员来讲,在测试软件的过程中,他们所做的前提假设,是他们面前的这段代码可以正常运行,而软件的测试人员则不然,他们所做的前提假设,是他们面前的这段代码充满bug,其目标,则是发现问题、复现问题、提交问题并解决问题。SDE与SDET思维方式间的差异给最终的测试结果所带来的潜在影响,是绝对不可以被忽视的。
所以Windows 10质量控制水平下降这个问题,最终要让SDET与SDE的合并来背锅?
不尽然。还有其他原因,我们接着看。
Windows 10底层改动太多?
操作系统的开发是一项超级大的工程。正如我们所知道的,一项工程越复杂,那它出错的可能性就越大,而某个错误所处于的层级越浅,那修复它的代价就越小。
这里我们假设一个最简单的软件结构模型,其层级我们以底层、中间层和表层代指。底层(Unit层)相当于盖房子时所用的砖块。通常来讲,这个层级的测试(单元测试),其需要测试项目最多,可能存在的bug的数量也最多,但如果问题在这一层级被发现,那解决问题的代价是最小的。
中间层(Service层)相当一栋房子中由砖块组成的墙体。若底层的各个单元都能正常工作,那将它们结合到一起之后,其组合体能否依然正常工作,这就是中间层级的测试所需要验证的事情。通常来讲,这个层级的测试,其需要测试的项目的数量要少于单元测试,而如果有问题在这个层级被发现,那解决问题的代价是相对较小的。
表层(UI层)相当于由墙体、天花板等组成的一栋完整的房子。如果一个由各个单元和模块所拼合成的最终产品可以按设计预期工作,那就万事大吉,非常好,但如果这一层级当中真的被测出了问题,那就比较麻烦了。因为导致这个问题的原因还无法定位。如果问题出在表层和中间层,那问题解决起来相对还算容易,但如果问题出在底层,那问题不仅定位起来相当麻烦,解决起来的代价也非常高,因为用了有问题的Unit的Service都会受到影响。

作为一个操作系统来讲,Windows 10的结构远比我们上面提出的这个软件结构模型要复杂得多,它是由HAL、Devices Drivers、Kernel、Windows and Graphics、NTDLL.DLL、Subsystem DLLs、Service Processes、User Process、Environment Subsystems和System Process等多个层级所组成的,每个层级和每个模块之间都环环相扣,并有可能互相影响。
有件技术上的事情可以确定的是,据《Windows Internals》这本书的介绍,Windows 10所加入的新技术对底层的改动比Windows 7、Windows 8和Windows 8.1还要多,比如新的Secure System进程、Exploit Guard、WSL以及新的驱动模型。
底层改动所导致的问题很有可能牵一发而动全身,Windows 10的质量难以控制,相信和它的底层改动肯定是分不开的。
Windows Insider项目背锅?
Windows Insider项目是微软于2014年推出的面向用户的Windows 10预览体验计划,此前有传言称,微软“砍掉测试团队”之后,Windows 10的质量控制将全部依赖于自动化测试和Windows Insider,而因为Windows Insider成员很难像专业的软件测试工程师那样准确和专业地反馈问题,所以Windows 10的质量控制水平出现了下滑。
关于“微软砍掉测试团队”这个传言,我们上面已经进行过一个澄清,将Windows 10质量水平下滑的原因归结于“微软砍掉了测试团队”,这肯定是不准确的。
至于Windows Insider要为此背锅这个观点,虽然目前还没有证据表明Windows 10的测试在某些程度上依赖于Windows Insider项目与其质量控制水平的下滑有直接的关系,不过有一点是几乎确定的,那就是没有接受过专业培训的Windows Insider很可能难以足够高效地发现和反馈问题。
专业的软件测试工程师在进行软件测试时通常会结合测试用例系统和全面地排查问题,而没有经过专业培训的Windows Insider虽然可以为Windows 10提供数量相当可观的反馈,但这些反馈面临很大的重复提报风险、漏报风险以及误报风险,另外,数量庞大的反馈会让微软为之付出相当大的筛选成本。
所以Windows 10质量控制出现问题要Windows Insider来背锅?
这个锅Windows Insider们当然不能背。

因为在把系统交给Windows Insider测试之前,微软需要对候选的版本进行单元测试和冒烟测试,也就是说,最终提交给用户的版本,肯定是一个基本上没有毁灭性bug的版本,况且用户提交的问题被解决后,微软还要以采取回归测试的形式来进行验收。由此可见,Windows 10的质量控制做得合格与否,很大程度上是取决于微软,而非Windows Insider。
Windows已经不重要了?
今年3月29日,据Win10天地报道,微软对公司的组织结构进行了新一轮的变革,Windows和设备部门被拆分,当时的Windows和设备部门主管Terry Myerson离职,Windows Insider项目唐娜姐被分配到Azure部门。
独立的Windows部门“没了”。

相关文章
网友评论(共有 0 条评论)