这是我钟爱的一个预测,THUD( THUD 是Tester's Head UP Display的缩写,测试人员的平视显示器,平视显示器(HUD)是将资讯投射于飞行员正前方玻璃上的飞行辅助仪器)是我们正在积极建造的一个工具。

  这是我们对于软件测试未来预测的第三部分,它要讨论的主题是信息的未来,测试人员在未来如何利用信息使他们的测试做得更好。

  预测1:测包

  预测2:虚拟化

  预测3:信息

  你使用哪些信息来帮助自己测试软件?测试规范?用户手册?在此之前(或与之竞争)的版本?源代码?网络协议分析器?进程监控器?这些信息是否有用?它们拿来可以直接使用吗?

  信息是所有软件测试工作的核心。作为测试人员,对软件应该有哪些功能,它是如何实现的,了解的越多,我们的测试会做的更好。如果测试人员对于他们测试的软件知之甚少,并且了解到的信息都不是专门针对测试工作的,让它做的更加容易,这样的情况是不能接受的。我可以高兴的说,这样的局面正在迅速地发生改变……并且在短期内,我们一定会实现在正确的时间,获得正确的信息。

  我从电子游戏中获得了测试信息的这些想法。在电子游戏中,我们在桌面上显示着相关信息并近乎完美地运用着它们。关于游戏、玩家、对手和环境的资料,你了解得越多,你会玩得更好,获得更好的分数。在电子游戏中,它们都显示在一个叫HUD或者成为平视显示器的玩意儿里。一个玩家的能力、武器和健康值都显示在一个迷你地图中,对手的类似资料也可能会有(我儿子过去玩Pokemon时,他可以在游戏中通过访问Pokedex,了解他可能遇到的所有Pokemon怪物)。这些游戏的思想很简单:你拥有并且可以使用的信息越多,你越有机会在游戏中通关。

  我非常想把这个思想原封不动地转给软件测试人员,给他们更多的信息来增加他们成功的机会。但是,在测试世界里,由于缺乏这种丰富的信息基础构造,所以大部分测试都陷入黑盒测试,哪里是我们的迷你地图,可以指出当前正在测试哪一个屏幕,它是如何使系统其它部分连接起来的?为什么我不能将鼠标悬停在一个图形用户界面控件上以看到源代码,设置这个控件所包含的(以及我们可以测试的)属性列表?如果我在测试一个API,为什么我不能看到我和我的测试伙伴们已经测试过的参数组合呢?我需要迅速得到所有这些信息,并以简洁易用的格式来帮助我进行测试,而不是去某些SharePoint站点或是数据库中乱翻一气,因为那些地方充满了其他项目中的各种人为产品,与我的测试毫无关联。它们只会让我分心,我需要一个平视显示器。

  我在微软的同事乔艾伦穆哈尔斯基(Joe Allan Muharsky)把我渴望的这些信息称为THUD——测试人员的平视显示器——将测试人员找出软件缺陷并验证功能所需要的信息格式化,使之成为向其服务的一种即时可用资料。你可以讲THUD看作是一层表皮,它将正在进行测试的应用程序包裹起来,随着应用程序的上下文环境,浮现出对其测试有用的资料和工具。目前,THUD用的很少,甚至有的THUD没有包含正确信息。正如在游戏中,没有玩家会想着不用THUD穿越不可预知的危险世界一样,到了将来,没有测试人员会想着不用THUD进行测试。

  如果这听起来有点像作弊的话,随便你怎么向了。玩家通过HUD进行欺骗,相对那些没有这样做的,的确可以给他们带来更大的优势。由于内部测试人员可以访问源代码、协议、后端、前端和中间件,所以我们确实可以进行这样的“欺骗”。我们可以利用这些欺骗获得的巨大优势,比普通黑盒测试人员和用户更好地寻找软件缺陷。这正是我们想要的情形:比其他任何人更快、更有效地找到自己的软件缺陷。这是我全心全意认同的欺骗,可是目前,我们却没有利用这些欺骗所需要的信息。

  在未来我们会这样做,与我们现在的信息饥渴相比,那样的未来将完全不同。