在八月份一个阳光明媚的日子,微软园区的某栋建筑内,一部机器手臂正在点击 Windows Phone 7 原型机的触摸屏。而另一部机器人——被称为 Wally——正在测试手机的重力感应器和其他传感设备。事实上,成千上万只 Windows Phone 7 手机正在接受各种压力测试,不单单依靠自动化测试设备,而且还有手工测试。

  对于微软来说,这是一个重大的转变。在过去,微软只要保证软件系统没有 BUG 行了,把硬件测试任务扔给制造商和合作伙伴。

  “真的感觉到,我们过去的质量控制体系不够好。所以我们花费了 1500 万美元购置硬件设备,招收了数百名专家,全面优化了测试流程。”Darren Laybourn 说,他是负责手机测试的经理。

  为了确保自己能回到智能手机的战场,微软全面强化了测试方法,试图拿出优异的产品来打动运营商的芳心。

  “这是我要讲的故事,一个我们产品如何的故事。”Laybourn 一边说一遍翻动幻灯片,这些幻灯片曾经给 AT&T 和其他运营商演示过。

  可以说,Windows Phone 7 经历了微软史上苛刻的测试,不亚于一个全新版本的 Windows 或 Office。

  在 Windows Phone 7 身上,微软觉得只有投入更多的测试力量才能保证它的速度和稳定性。所以,微软动用了超过 4500 台实体手机和数以万计的虚拟手机(模拟器)。要知道,上一代 Windows Mobile 产品只投入了 60 台测试机。

  全部加起来,Windows Phone 7 的自动化测试时间是——1000 万小时。平均下来每天是 2 万小时。

  除了微软自己,连手机制造商和电信运营商也参与了这些工作。

  点击这里观看测试视频,还记得吗,微软的竞争对手 Google 以前也把 Nexus One 类似的测试视频放在了 YouTube 上。

  在 Windows Phone 7 的开发过程中,曾经数次延期,甚至暂停。终于,这孤注一掷的手机操作系统,赶在了今年圣诞节前上市。

  Laybourn 说:“真的花了很长时间才走到这一步,我们终还是踩着时间点拿出了产品。为了满足上市日期,我们枪毙掉了一些特性,这些特性恐怕是其他手机都具备的。”

  为了赶工,支持 CDMA 的计划不得不推到了明年。

  手机在欧洲和美国上市后,虽然得到了许多正面的评论,但微软仍然保持沉默,不对销售状况做任何评价。微软已经预见到了前方有一场艰苦卓绝的战斗等着他。

  虽然许多测试是自动化进行的,比如说写个脚本模拟某种操作。但并非全部测试都能自动化执行。

  “我们当然也让测试者带着手机去真实的网络环境下做真实的操作。”在今年早些时候,手机外场测试还被人给拍摄下来。

  为了监控手机的状态,微软开发了一些远程控制程序——假设手机电池消耗过快,微软将会收到警告消息。(这个功能在零售版手机上当然是被关掉的)

  在刚开始的时候,三星 Taylor 只能续航一个半小时,随着测试和改进,不断优化代码,续航时间加倍,加倍,再加倍。

  物理测试也是 Windows Phone 7 的测试内容之一,在软件代码初步完成时,微软开始把各种手机外壳分组进行物理测试。事实上,这是在微软的历史上,仅仅是第二次。这是为了抗衡 iPhone 而特地增加的测试工作。

  从去年开始,微软让小范围用户使用模拟器来调试程序,直到今年,才允许用真机调试。针对不同的手机,还有特定的测试项,例如软键盘的联想功能,在有的手机上是打开,有的手机上的关闭的。

  “粗手指”的问题

  在刚开始的手,微软遇到了“粗手指”的问题,是在屏幕上输入字符时,用户的手指可能会出现漂移和错位。

  “我们必须考虑到用户的这种错误输入,所以要纠正它。”Parthasarathy Sundararajan 说,他是测试组的成员之一。

  在不改变键盘外观的情况下,Windows Phone 7 预测有可能的输入。例如,用户输入了“accordio”,那接下来的一个字符应该是“n”而不是“b”。

  Tom Adams 是另一名成员,他一直使用一部 BlackJack 2 手机,他曾经对软键盘持怀疑态度。但现在他已经再也不需要硬键盘的手机了。他说如果可能的话,会说服妻子一起来使用触摸屏手机。

  “我妻子的手机是带键盘的,但我非常好奇她是否习惯软键盘。”

  微软甚至还研究各种手机键盘被按下的声音,他们对比了许多手机,一遍又一遍地重复体验那些声音。终选择一种佳方案。

  微软对测试工作的投入,让 Windows Phone 7 的质量远超它的前辈。这对手机制造商也很有好处,制造商只需要在微软的原型机上稍微改动一点够了。实际上,微软已经严格控制了芯片,屏幕,甚至 UI ,留给制造商发挥的余地很小。

  微软希望这些规格化的产品,能让开发者更容易开发第三方程序,而且能确保任何程序在每一款 Windows Phone 7 上都完美运行。

  “Android 不能给开发者承诺这些,而我们可以。”Laybourn后说到。