史亮简介:
史亮,男,毕业于东南大学,获得计算机软件与理论专业博士学位,研究领域为软件分析与测试。于2006年加入微软(中国)有限公司,任职软件开发测试工程师,负责微软在线服务与商业智能产品的测试工作。于2011年工作调动至微软总部,从事下一代Microsoft Office产品的测试工作。
探索式测试的概念与现状
51Testing:最近主要在从事哪方面的工作?
史亮:我正在测试下一代Microsoft Office产品,测试对象是Windows桌面应用。
我与高翔合著了《探索式测试实践之路》一书,由电子工业出版出版发行,即将在2012年8月上市。该书针对测试人员对探索式测试的困惑与误解,分享了作者们在探索式测试领域的实战经验和反思总结,并介绍了业界专家的相关见解。希望读者不吝赐教。
51Testing:随着敏捷测试的推广,探索式测试逐渐受到测试人员关注和重视的同时也感到相当的困惑。那么到底什么是探索式测试?
史亮:作为一个技术术语,“探索式测试”是测试专家Cem Kaner博士在1983年提出的,并受到了语境驱动测试思想的指导。目前,影响力最大的定义是Cem Kaner的论述:
探索式测试是一种软件测试风格,它强调独立测试人员的个人自由和职责,为了持续优化其工作的价值,将测试相关学习、测试设计、测试执行和测试结果分析作为相互支持的活动,在整个项目过程中并行地执行。
该定义包含三个方面的内容。
第一,探索式测试是一种软件测试风格,而不是一种具体的软件测试技术(如等价类划分、边界值分析等)。作为一种思维方法,探索式测试强调依据当前语境选择合适的测试技术,而不局限于特定的测试技术。测试人员可以在探索式测试中使用任何一种测试技术,也可以将探索式风格应用于任何测试活动。
第二,探索式测试强调独立测试人员的自由和责任。测试人员应该为个人和团队负责,调动所有能量,发挥人的灵活性,在整体上持续优化个人和团队的产出。
第三,探索式测试建议在整个项目过程中,将测试相关学习、测试设计、测试执行和测试结果分析作为相互支持的活动,并行地执行。实际上,人脑难以并行地执行多项任务。探索式测试旨在将测试学习、测试设计、测试执行和测试结果分析作为一个循环快速地迭代,以不断收集反馈、调整测试、优化价值。
史亮:我认为目前主要的问题是一些测试人员对探索式测试存在较多的误解,例如:
● 探索式测试就是即兴测试(Ad-hoc Testing)。
● 探索式测试不编写文档。
● 探索式测试的测试设计只发生在测试执行的时候。
● 探索式测试的应用领域是手工的功能性测试。
● 探索式测试的过程是不透明的,难以追踪、解释和度量。
● 探索式测试只是脚本测试(Scripted Testing)的补充。
● 探索式测试比脚本测试有更高的风险。
● 探索式测试只适合测试专家,不适合测试新手。
我发现一些很优秀的测试文献在此产生了不好的影响。例如,《敏捷软件测试》将探索式测试置于测试四象限的第3象限(如下图),而该象限的特征是:以手工测试为主、面向业务领域、评价产品。这种观点严重局限了探索式测试的应用范围。