微软在自己的园区修建了一个非常酷的未来之家,在那里展示了未来科技和软件将如何改变家庭生活和通讯方式。如果你曾参观过迪斯尼乐园的“旋转的进展”,你就会对微软的未来之家有个大致的印象,但微软的更先进。(迪斯尼乐园的展示是从上世纪60年代的观点来描述未来,它过时了。)我有一天偶然发现,微软也制作了一系列的录像,来描述未来的零售业、医疗保健、工业、制造业以及其他各行各业。就像录像本身制作精美一样,它们所描述的将来非常令人着迷,那里充满了计算机、射频卡和各式各样的软件。作为一名测试人员,我吓坏了,不禁想到,如今软件的质量如此糟糕,我们怎样才能测试好未来的应用程序呢?service.mypm.net
就这样,我开始了自己的未来探索。我跟公司的几十人交谈,然后开始做很多演示以便收集数百人的意见。其成果就是在Euro STAR的主题演讲和这一博客系列。我在本书中对这一愿景又加以更新,这可以帮助你看到该想法逐步完善的整个过程。pmp.mypm.net
外包。这是一个令人眼熟的术语,微软在2008年利用这种方式完成了很多测试。但是,事情并不总是如此,而且这种方式将来也并不可靠。在这篇文章里,我会谈论测试将来会以什么形式完成,外包作为软件测试的商业模式,会发生哪些根本性的改变。blog.mypm.net
在一开始的时候,外包出去的测试很少。测试是由内部人力资源(即由编写软件的开发人员同一公司的雇员)来完成的。开发人员和测试人员(通常是同一批人执行两样任务)并肩工作,一起编写、测试并发布软件。talent.mypm.net
在这种内包时代,供应商的角色是提供支持这种自助测试工具。但是,随着对工具之外的要求付出水面,供应商的角色很快就发生了改变。他们开始提供测试服务本身,而不仅仅是提供工具给内部人力资源。我们将这一现象称为外包,他仍然是开发主顾们接触测试的基本模式,租用测试服务。项目管理者联盟文章
前两代的测试如下所示bbs.mypm.net
项目管理者联盟
对于测试的这种改变,合乎逻辑的下一个步骤就是供应商们提供测试人员,这正是我们进入众包(crowdsourcing)的时代。昨天,软件测试外包公司Utest的公告标志着这一时代的来临,观察它将如何发展会很有趣。众包模式未来会超过外包模式并赢得市场吗?显然,市场经济和提供众包服务的公司的能力将会为这一问题提供答案,我个人的观点是众包模式的胜率较高。这并不是一个非此即彼的情况,而是测试领域的一种自然演变。较为陈旧的模式将随着时间的推移,为新的模式让开道路。众包取代外包,将会成为达尔文自然选择的一个实例,只是它会在短短的几年就可以看出结果罢了。在由经济和质量约束共同决定的时间范围内,适者生存。项目管理者联盟
第三代的测试模式如下所示转自项目管理者联盟
转自项目管理者联盟
未来是怎么样的呢?在我们测试领域的DNA深处,是否埋藏有一个进化基因,它会使众包演变成更好的东西呢?我认为尽管可能需要几年时间和一些技术上的跨越,它的确是这样的。现在我将衍生出一个新术语,这只是为这一概念取一个名字:测包(testsourcing),如下所示。项目管理者联盟
时代供应商角色项目管理者联盟
(第四代)测包 提供测试工件(包括工具、测试服务和测试人员在内)转自项目管理者联盟
没有跨越未知的关键技术,就无法解释什么是测包。这个技术就是虚拟化。项目管理者联盟
为了让测包掌握未来的测试必须打破两个关键的技术壁垒:测试中产生的人工产品的重用性以及用户环境的可达性。让我解释一下这两个概念。项目管理者联盟
重用性:得益于20世纪90年代面向对象及其衍生技术的普及,软件开发所产生的人工产品实现了重用。我们今天开发的大部分软件都是由预先写好的库拼接在一起所构成的一个整体。不幸的是,测试还没有这样做。写一个测试用例并简单的传递给另外一名测试人员让他重用,这样的想法在实践中很罕见。测试用例过于依赖测试平台:他们是特定于某个待测的应用程序的;他们依赖于一些其他测试人员没有的工具;他们需要一个自动化测试架构、软件库以及网络配置等,而这些东西很难被潜在的重用用户所复制。项目管理培训
用户环境:全面测试需要针对不同的用户环境,这些用户环境的绝对数量让人生畏。假设我编写了一个应用程序打算让它在各种各样的手机上运行。我可以从哪里得到这些电话来测试自己的应用程序呢?我如何配置这些手机,才能把它们看作是自己心目中客户所拥有的手机呢?其他类型的应用程序也会遇到同样的情况。如果我写了一个web应用程序,我如何才能把这些不同的因素考虑进去:操作系统、浏览器、浏览器设置、插件、注册表配置、安全设置、机器设定和存在潜在冲突的应用程序类型?项目管理者联盟
对于这两个问题,目前浮现的答案是虚拟化技术,它正在有条不紊地变得更便宜、速度更快、功能更强大,它正在被应用于从实验室管理到IT基础设施部署的整个应用领域当中。项目经理圈子
虚拟化具有很大的潜力,使“众包者“能够提供众包服务。专业的测试套件、测试平台和测试工具都可以被一键化到虚拟机中,供任何人在任何地方使用。正如今天的软件开发人员人员能够重用同事和前辈们的代码一样,众包者中的测试人员也可以通过这种方式,来重用测试套件和测试工具。重用让一个给定的开发人员能够可靠地扩展应用程序的范围,同样地,它也会增加一个应用程序测试人员可以测试的类型。虚拟化使得重用复杂精密的测试框架能够在将来成为可能。项目管理者联盟
对于用户环境的数量问题,虚拟化同样帮了测试人员的大忙。用户只需一键就可以将他们的整个计算机传到虚拟机,并通过云端计算提供给测试人员。如果我们能够存储世界上所有的影片,给任何人在任何地方即时查看,我们为什么不能对虚拟用户环境做同样的事呢?虚拟化技术已经存在(对于个人电脑而言),或者是近乎存在(对于移动设备或是其他特殊设定的用户环境而言)。我们只需要简单地将它应用到测试问题。
最终这样做的结果是,任何测试人员,在任何地点,都可以广泛利用一个多样化的、可重用的自动化测试平台和用户环境。这样有助于众包者更好地提供服务,并从技术角度来看,他们甚至可以和有特殊才能的外包者媲美,由于他们的人数远远超过外包者(至少在理论上,如果不是在实践中的话),这种新模式的优势显而易见。talent.mypm.net
市场也青睐那些得到虚拟技术支持的众包模式。用户环境将具有经济价值,众包测试人员人员为了获得竞争优势会对这些用户环境垂涎三尺。他们会激励用户点击那些一键化按钮来虚拟并共享用户自己的环境(是的,这一模式会受到隐私问题的影响,但是那些问题都是可以解决的)。由于存在问题的环境比那些工作良好的环境更有价值,假设遇到停工的驱动器和应用程序错误,此时,用户的态度将会完全颠倒过来:因为这意味着他们创造的虚拟测试更具有金钱价值……在那些错误中有黄金!同样地,人们激励测试人员共享他们的测试宝藏,并使他们尽可能的被重用。市场力量的作用使得未来将是可重用测试产品的天下,而虚拟化使得这一未来成为可能。转自项目管理者联盟
那么,这个有着虚拟化技术支持的未来对测试人员本身意味着什么呢?嗯,让我们快进20~30年(或更长的时间,如果你对此表示怀疑),在那个时候将会有以百万(或更多?)计的用户环境被收集、克隆、存储并共享。我能想象这些环境就像公共图书馆一样可以让测试人员可以免费浏览,或者像私人图书馆似的进行订阅。测试用例和测试套件可以如法炮制,视其价值和可用性进行收费。项目管理培训
也许,随之未来的时代将只有很少的人类测试人员,只有少数的东西和特质的产品(或者是像操作系统一样的极端复杂性的产品)需要他们进行干预。对于大多数的开发者来讲,可以雇佣一名测试设计者从海量的可用虚拟测试环境中挑出所需要的,然后并执行他们:由于所有的自动化和最终用户配置已经设好并随时可用,以百万人年计的测试将在几个小时内结束。这就是测包的世界。blog.mypm.net
这是我们目前所知道的,软件测试的最后结局,但对于从事测试工作的人员来说,要对付其他有趣的挑战和问题,这只是一个全新的开端。这样的将来是能够实现的,它并不需要除了虚拟化之外的以外的东西,其他所需要的那些技术要么已经存在,要么已经呼之欲出。这也意味着,随着我们转变成了设计人员(也就是执行测试),或者担任开发人员的角色(也就是编写和维护可重用性产品),测试人员需要付出更加倍的努力。我们不要成为在软件开发晚期的“英雄”,测试人员在虚拟化的未来世界中,应该是一等公民。项目管理者联盟
|