微软砍掉了测试团队?微软内部有三大核心技术工种,分别是软件开发工程师(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。