软件测试实战:微软技术专家经验总结(3)

发表于:2014-09-22来源:infoq作者:liangshi点击数: 标签:软件测试
Visual Studio是强大的集成开发环境,提供了非常丰富的功能。目前,Visual Studio团队能够做到每年发布一个新版本(如Visual Studio 2012、Visual Studio 2013和即将到来

  Visual Studio是强大的集成开发环境,提供了非常丰富的功能。目前,Visual Studio团队能够做到每年发布一个新版本(如Visual Studio 2012、Visual Studio 2013和即将到来的Visual Studio 2014)和3个重要更新(如Visual Studio 2013 Update 1、2、3)。对于如此复杂的产品,能够做到持续交付,说明Visual Studio团队拥有较高的研发和管理水平。

  Windows团队已经将Windows重要版本的发布周期从3年压缩到1年左右,例如Windows 8.1的研发用时约1年,Windows 8.1 Update 1的研发用时约半年。

  OneNote团队在多个平台(Windows桌面、Windows Store、Windows Phone、Mac、iPad、iPhone、Android、Web)上推出了产品,并公布了OneNote API,使第三方应用可以将内容发布到云端的OneNote笔记本。其产品覆盖桌面应用、平板应用、手机应用、Web应用、Web服务等,且在持续发布中保持了较高的质量。

  我相信,随着微软业务模式的转变,微软的软件研发会持续演化。在此过程中,好的思想和经验会被传承下去,而新语境势必催生出新的实践,并让一些在其他公司获得成功的方法在微软得到应用。此外,微软拥有许多有特点的项目,项目组之间的交流经验会催生出一批优秀的实践。

  图灵访谈:手动测试和自动测试各自的优缺点是什么?微软在实践上是如何结合这两种测试方法的?

  史亮:微软是一家大型企业,拥有多种类型的项目。不同的项目对于测试提出了不同的要求,因此项目小组往往会采用不同的测试策略。一般而言,微软要求测试人员具备较高的技术水平,能够熟练地开发自动化测试和测试工具。在许多项目组,测试人员需要编写大量的代码来测试产品,也需要花费相当的时间来手工测试产品。通常,第一线的测试人员最了解产品和技术,他们会主动探索各种技术,以发展出多样性的测试策略。

  在此,我介绍一些我的个人观点(《软件测试实战》的第5章对详细地讨论了测试开发)。

  首先,测试活动是相辅相成的。测试专家Jonathan Kohl将不同的测试活动比喻为不同的交通方式,每种方式都有优点与不足。

  我喜欢走着上班。我很享受风景、运动,以及一边漫步一边思考问题的时光。在户外新鲜的空气中,在远离电脑的思考中,我获得了一些极好的想法。沿途的观察激发了灵感,将我引向创造性的解决方案。

  但是步行是缓慢的,如果我驻足观赏可爱的动物或享受日出霞光映红的山脉,我很可能会迟到。所以,在赶时间的时候,我会搭乘公共交通。虽然公共汽车或列车仍旧伴随着步行,但是我能用快得多的速度及时地到达目的地。我极少驾车上班,因为这让我无暇去观察并思考。但是,当别人驾车时,我能够从旅途中获得很多。例如,最近我坐城铁去上班,在路上发现了以前从未注意到的河谷峭壁。我曾经多次经过河谷,但是直到坐上轻轨的那天,在没有步行或驾车分心的情况下,我才能用全新的角度观察到新的景色。

  -- Jonathan Kohl, Man and Machine

  在以上隐喻中:

  手工测试是步行。在漫游产品的过程中,测试人员可以观察到丰富的细节,能够随时暂停预定的测试路线,对感兴趣的局部进行细致的测试。其不足是推进的速度较慢,有时不能在短时间内完成长距离的旅行(覆盖更多的测试目标)。

  自动化测试是驾车。其优点是速度快,能在短时间内测试大量的内容,其不足是自动化测试只做规定的检查,会忽视其他所有细节。即便软件出现一望即知的问题,只要测试代码没有做相应的检查,自动化测试就会放过它。其实,自动化测试更像地铁,可以将大量乘客快速准时地送到目的地,但是所有旅客都无法观察到地面的风景。

  计算机辅助测试是他人驾车。自动化测试或测试工具完成繁重的工作,带着测试人员快速地漫游产品。在测试过程中,测试人员监控产品的表现,如果发现问题,他可以“下车”调查。该策略综合了手工测试和自动化测试的优点,利用软件工具来提高测试效率、丰富测试手段,让测试人员能够更好地观察、思考与行动。

  可见,手工测试和自动化测试并不是相互排斥的。如果综合它们的优点,就可能开发出更具威力的测试策略,以实现单独的手工测试或自动化测试不能达到的效果。

  第二,测试是为了获得产品质量信息的技术调查,任何有助于周密调查的方法都是有价值的。在罪案侦查中,刑侦人员会利用多种方法,从各个信息源收集情报。他们会利用高精密的仪器提取证据,也会大范围走访以获得线索,更重要的是,他们会反复思考当前的情报,以随时调整调查方向。与之类似,测试人员也需要综合运用多种技术和工具,去探究新的信息,并根据新发现及时调整测试方向。在调查过程中,学习、分析、推断、反思等思维活动是必不可少的,而这些是无法自动化的。

原文转自:http://www.cnblogs.com/liangshi/p/3794306.html

...