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

发表于:2014-09-22来源:infoq作者:liangshi点击数: 标签:软件测试
我接受了图灵社区的访问,围绕我的新书《软件测试实战:微软技术专家经验总结》和测试人员职业发展,展开了 讨论。以下是采访全文。

  我接受了图灵社区的访问,围绕我的新书《软件测试实战:微软技术专家经验总结》和测试人员职业发展,展开了 讨论。以下是采访全文。

  简介:史亮,东南大学计算机软件与理论专业博士,研究领域为软件分析与测试。2006年加入微软(中国)有限公司,任职软件开发测试工程师,负责微软在线业务与商业智能产品的测试工作。2011年调至微软总部,从事Microsoft Office 2013的测试工作。2012年与淘宝测试工程师高翔合著了《探索式软件测试实践之路》一书。2014年,独自出版了《软件测试实战:微软技术专家经验总结》。目前,史亮正从事下一代Microsoft Office产品的研发工作。

  图灵访谈:您从什么时候开始编程?是什么让你决定走上计算机这条路?

  史亮: 1997年,我进入东南大学计算机系,开始正式学习软件开发。因为时间久远,我已经记不清当时选择计算机专业的原因。也许只是懵懂地认为计算机行业有更好的发展前景,幸运的是整个行业在随后的十余年时间有爆发式的增长。

  在攻读博士学位时,我阅读了《C++设计新思维——泛型编程与设计模式之应用》(Andrei Alexandrescu著,侯捷、於春景译)。这本书引起了我对于软件设计的热情。此后,我阅读了许多软件开发的书籍,并通过实验性项目实践了很多编程技术。从某种意义上,这本书是我职业发展的转折点。这并不是因为它提供了我日常使用的技术,而是它激发了我的兴趣,让我有动力去深入钻研。在学习和实践的过程中,新问题又引出新的动力,这样的激励循环帮助我持续成长。

  图灵访谈:软件测试的魅力何在?您为什么选择测试一行而不做开发?

  史亮: 2006年,我即将离开校园。在通讯软件MSN Messenger上,大学本科同学尚云飞建议我到北京来工作。当时,他与我的另一位同学宋显祖在微软亚洲工程院工作。在他们的热心帮助下,我获得了去北京面试微软测试开发工程师(Software Development Engineer in Test,简称SDET)的机会。随后就加入微软,并工作至今。回顾往事,当年那次聊天令我的人生发生了改变。在此之前,我从没有仔细考虑过离开家乡到异地工作。李笑来老师(《把时间当作朋友》等书的作者)在演讲中曾说:“改变我们人生的关键事件都是无法预期的偶然事件。”果然如此!

  在工作后,我逐步体会到软件测试所面临的困难,而这些有挑战的问题就是测试魅力的根源。其中,根本性的困难是,随着软件行业的高速发展,“软件的复杂度已经超越了人的理解能力”(我在《软件测试实战》第一章有详细的讨论)。为了应对挑战,测试人员需要综合发展自身能力,以实施有针对性、聚焦风险、丰富多样、注重实用的测试。在此过程中,他需要解决一系列复杂问题,这对他的能力成长很有帮助。

  图灵访谈:您在国内和国外都有相当丰富的测试经验,您能对比一下国内国外两种环境下的测试实践的特点吗?

  史亮:我认同语境驱动测试(Context Driven Testing)的观点:测试实践的价值来自于它的语境。除了测试人员的态度和能力,软件项目和测试团队对测试实践有最大的影响。测试人员需要根据项目语境(项目环境、产品元素、质量标准、产品质量等)选择一组相互支持的测试实践。

  我的切身体会是,国内外的工作风格确实有所差别,但是测试实践主要取决于产品、项目和团队。而且,随着国内大型企业的国际化,其文化氛围和工作方式与国外企业并没有太大的差别。在具体工作中,测试人员总需要研究产品(《软件测试实战》第7章),研究项目(《软件测试实战》第8章)并融入团队(《软件测试实战》第9章)。只要采用积极的态度来面对职业发展,测试人员在各种环境中都可以获得成长。

  图灵访谈:国内有一些企业认为相比于开发者,软件测试人员能力差一些也可以,您认同这种看法吗?这种想法形成的原因是什么?

  史亮:这里,所谓“能力差一些”大多指“编程的能力差一些”。在一些软件项目中(国内外皆有),测试人员的主要工作是手工测试,因此对编程能力没有很高的要求。但是,测试是获取信息的技术调查,需要多种能力,例如:

  交流协作:对于复杂的软件,任何人都不可能掌握全部的信息。为了更好地理解软件,测试人员需要与项目经理、程序员、领域专家、测试同事等协作,还需要研究项目文档、技术资料、领域专著等资料,并通过实际测试去获得第一手知识。

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