在最近举行的 Agile2016 会议上,InfoQ 与 Kyle McMeekin 谈到了在敏捷开发中软件测试所面临的现实挑战。推动更多的自动化测试,以及与人工脚本测试相比,探索性测试有什么不同和为什么更有效。
infoQ:Kyle,请跟我们介绍一下你和 QASymphony 这家公司。
Kyle:QASymphony 是一家软件公司,旨在帮助一些团队构建高质量的软件产品。我们正在帮助那些准备采用敏捷方法或正在向敏捷转型的团队、组织和公司。我们会提供一个软件来协助 QA 部门实现他们的敏捷计划。在 QASymphony 内部,我是一名高级产品工程师;我实际上负责掌管公司拥有的不同产品间的供给需求,提供产品展示,并与一些团队和组织合作,调整他们的业务流程与计划,使他们的工作流程能够与我们的工具相适应。
InfoQ:你在市场上看到的一些现实挑战都有什么?
我认为向敏捷转型这种想法只是一个笼统的概念。因此我经常看到很多团队正在行动,并且他们声称自己已经变得敏捷,但这是什么意思?我每个月大概会和数百个客户聊天,经常会听到他们对于“敏捷”的不同定义。因此,我看到的一些挑战是需要为团队提供有一种能力和工具,来帮助他们的敏捷计划取得成功。通常,当我们与一些组织合作时,他们的开发团队变得越来越敏捷。他们会采用一些敏捷软件开发的 ALM(生命周期管理软件),如 JIRA,Rally,VersionOne,但 QA 测试人员却像被困在了孤岛上一样无助,充满了疑问,“我们到底应该怎样做才能变得更加敏捷?”。
通常,会有一个巨大的推动力迫使你的测试过程变得自动化。这些团队不想让他们的人工测试方法成为影响测试效率的瓶颈,他们正在寻找可以进行自动化测试的方法。团队都主动的希望能够将测试流程变得更加自动化。除此之外,在大部分时间里我所听说到的另一件事是关于“基于探索性的测试”。基于探索性的测试实际上是没有预先定义好的步骤来给你的测试人员和质量管理人员执行的。因此,从一个基于瀑布模型的架构来看,你可能会通过手动的方式来运行测试脚本,并且你会声称,“我们正要完成第一个测试步骤,并且期望看到这样的结果”。而实际上你只是执行了运行测试脚本这个动作而已。
对于探索性测试,你不需要测试一个完整固定的用户流程,而是要像用户与产品交互那样,在测试的过程中随机应变,一边测试、一边计划,他们使用在测试中收集到的信息,影响自己进行测试的实际方式。你要用你自己对产品的理解来对应用进行测试。而不是漫无目的的在屏幕上随意点击。在进行探索性测试前,你需要根据用户类型来制定测试的目标。这里给出一个例子,“我作为一个管理员,想要去测试一个端对端的用例。因此,我们要去 Amazon 上检查想要选购的商品条目,并且把它添加到我的购物车里,输入我的付款信息等”。实际上,这整个用例测试流程对你来说并不是固定不变的。有很多不同的方案可以对这个用例进行测试。
所以,我认为从测试角度来看,测试人员在一个冲刺阶段内的测试能够覆盖整个应用功能的多少,是可以通过这种“基于探索性测试”的改进帮助他们加快测试进度的。他们不会被曾经使用的手动测试所限制。基于探索性的测试已经被证明能够发现更多的漏洞,这样便可以将这些漏洞在测试阶段就进行修复,而不是等到上线之后才发现。
InfoQ:如果探索性测试不是漫无目的的在屏幕上随意点击,那又是什么呢?你如何设置探索性测试的测试流程?
在进行基于探索性的测试之前,你通常会与团队讨论并且制定一个测试计划,指定一个测试目标。比如:我想要测试什么?我该担任什么角色?有什么类型的前提条件需要设置吗?讨论结束后,你会有一个简短的总结。你认为讨论在什么程度时可以结束?你在测试时会采用的一个与你同事所不一样的测试方法是什么?
我喜欢的一种方式是考虑并计划测试的方向。我的意思是,如果你熟悉 Waze 或 Google 地图,你可能会在你的起始位置 A 点插入一个标记,接下来你可能想要到达 B 点的位置,但这些应用会提供不同的线路。我们可以选择第一条线路来避开那些正在施工的区域。或者选择第二条线路,虽然这条线路会比第一条线路长五公里,但是却可以欣赏到独特的风景。
因此,有不同的路线可以让你到达最终的目的地,这是我认为的使用基于探索性的测试的最简单的方式。在你从 A 点到 B 点的那段路上并不总是会有铁路轨道,但是在行进的过程中你却不会偏离这条线路。所以有很多不同的方法来测试一个用户是如何测试一个应用程序的。并不会总是采用这种规定好的直截了当的方法。我认为去发现这些细节是非常重要的,制定一个着手去做的计划,计划里记录你想要在开会时处理的事情。最终,这将使测试人员时刻保持他们的紧迫感。这将允许他们使用自己的思考来创建不同的测试用例,而非他们现在正在做的事情————“定义基于指定脚本的测试,比如一个手动测试的用例”。
InfoQ:你曾声称探索性测试已经被证明可以找到更多的漏洞。你能给我们介绍下相关的背景吗?
我们的公司,QASymphony,曾经举办过一个关于“探索性测试”的网络研讨会。我们总结了一些幻灯片资料,并且我们曾经也与客户做过一些案例研究,在研究过程中允许他们使用我们公司开发的一个基于“探索性测试”的测试工具。从整体满意度、测试工作的满意度、价值的增加程度上来说,他们完全可以走出去,在跟自己人或者他人合作的时候展示他们曾经做过的这些成果。在这项研究背后涉及到的细节可以在这里找到。这个调查是非常有影响力的,在这个领域中有很多不同的领军人物。 David Cummings 是这个领域里的一位重要的领军人物,他提及到了很多关于探索性测试可以带来的附加价值。
InfoQ:非常感谢您抽出时间与我们交流。
不用客气。
关于受访者:
Kyle McMeekin 是 QASymphony 的高级产品专家,专注于提供客户演示产品和相关技术的支持。他之前曾在 Cognizant 技术解决方案公司担任测试人员,并在公司扩张后从华盛顿特区附近搬到了亚特兰大。他是一个狂热的技术爱好者,同时他也是密歇根大学狼獾队的铁杆粉丝。
查看英文原文: Kyle McMeekin on Real World Testing Challenges
感谢足下对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论