操作系统的构建如此复杂:
曾为微软效力长达十五年的 杰瑞 • 伯格 日前发布视频评论详细解释微软操作系统团队以前构建版本时的测试流程. 原来微软有着非常庞大的测试团队, 这些测试团队又分为许多不同的分支, 每个分支下又设有多个不同的组别等. 如此细致的划分可以保证所有功能模块都得到充分测试, 至少可以保证每个新功能都可以有充足的人手进行测试. 这些子测试团队每天都会开会讨论新功能的测试情况, 只有在确保没有问题的情况下才会将相关功能和代码合并.
值得注意的是测试团队成员每个人都需要使用最新的测试版, 测试版安装在物理机上作为测试团队日常主力系统.
杰瑞曾是 Windows XP~10 的开发团队成员
为重要的地方设立专门的实验室:
杰瑞伯格还提到了原来的微软测试团队还专门为诸如英特尔, AMD, 英伟达等成立专门的实验室测试 CPU/GPU. 这些专门的实验室用来测试新的构建版本或者功能模块与重要硬件例如处理器和显卡是否存在兼容或者性能问题. 负责这些实验室的测试团队也会与制造商进行对接, 所以测试团队若发现什么问题可以很快确定并制定解决方案. 待开发团队修复问题后会再交给测试团队进行测试, 测试团队通过测试后则修复方案的代码会被合并到主线程中.
然后纳德拉上任后裁撤整个测试团队:
2014 年~ 2015 年时微软原 CEO 鲍尔默宣布退休并离开微软, 随后接任鲍尔默担任微软新 CEO 的是萨提亚 • 纳德拉. 纳德拉在上任时宣布微软进行大规模重组, 同时纳德拉提出 "移动为先云为先" 的口号, 即桌面平台不再是重点. 在重组过程中纳德拉将操作系统整个测试团队全部裁撤, 接下来还将 Windows 10/Xbox/Windows Phone 合并. 合并后也就是各个平台的硬件使用相同的 Windows 10 内核 , 每个版本都需要兼顾 PC, 移动设备以及游戏平台. 当然正如你知道的那样最终 WindowsPhone 或者叫 Windows 10 Mobile 平台回天无力, 微软彻底放弃移动系统.
现在微软靠的是自动化测试:
对于大型商业软件开发公司来说雇佣真人团队进行测试是个困难的决定, 因为人工成本可能需要耗费大量的资金. 因此现在很多软件开发商都依靠自动化测试系统, 微软同样如此, 微软现在主要靠的就是自动化和虚拟机测试等. 然而虚拟机测试看起来并不能与物理机达到相同的测试效果, 更不能与微软原来庞大而细致的人工测试团队相比. 这也是现在 Windows 10 问题频发的主要原因之一, 虚拟机测试存在的缺陷或者遗漏让潜在的问题无法及时发现.
Windows Insider 看起来意义不大:
在视频评论中杰瑞伯格还对 Windows 10 的测试项目进行讨论, 简单来说测试项目并不能帮助微软解决太多问题. 主要原因是多数测试版用户遇到问题不会主动向微软反馈, 当然即便向微软反馈最终的结果可能也是没有人搭理. 出现这种情况的主要原因在于转储日志, 系统运行时会不断地记录各种情况并生成极其庞大的转储日志以供分析. 然而实际情况是只有当系统崩溃时转储日志才会将其细节记录, 其他方面的 "小问题" 系统并不会记录转储日志. 完整的转储日志体积相当大 , 可能在几十 GB, 几百 GB 也可能在 TB 级别 , 显然多数用户也没有这么大的空间存储.
也就是即便用户主动向微软反馈并提供转储日志, 实际提供的也只是部分片段而不是整个操作系统完整运行日志. 对于微软工程师来说通过片段日志排查问题本身也存在困难, 久而久之 Windows 10 积累的各种反馈也越来越多. 然后微软工程师们面对如此多的问题可能就会有选择性的放弃, Windows 10 1809 丢失文件反馈就是典型例子. 当微软工程师们对于用户提出的反馈回应越来越低时, 这也反过来降低测试版用户的积极性放弃继续向微软反馈.
正式版用户其实也成为小白鼠
杰瑞伯格表示现在正式版用户们接收的版本实际都是在帮微软测试, 这些正式版用户本质上已沦为微软测试用户. 以往微软推送新版本都是大批量的快速推送 , 杰瑞伯格称最高峰时微软能够在极短时间内将全球 1/4 的设备升级. 只是后来问题频发导致微软调整策略降低新版本的推送速度, 采用分批推送的方式一边推送一边收集着遥测数据. 所以直到现在还有用户没有收到 Windows 10 Version 1903 版更新, 因为微软还没有做好全面覆盖新版的准备.
Windows 10 始终在看着你:
在视频评论里杰瑞伯格还提到 Windows 10 版的隐私问题, 此前这个版本收集大量数据被欧盟监管机构发起调查. 杰瑞伯格表示即便到现在微软还是会继续收集用户的各种数据, 其实最主要的就是通过遥测监控设备的运行情况. 当然坦白的说这并不能表示微软故意收集信息拿来卖广告或者其他用途, 因为微软目的在于收集潜在的运行故障. 没有测试团队微软工程师们只能依靠内置的遥测系统, 从用户开机到运行第三方软件微软都会关注系统运行情况. 如果发现潜在的问题这些日志就会被自动上传到微软服务器进行分析, 帮助微软开发团队确定哪里需要进行修复.
说到底对于 Windows 10 开发团队来说现在属于巧妇难为无米之炊, 没有测试人员只能自己想办法解决测试问题.
来源: http://news.51cto.com/art/201909/603353.htm