要点
- 放眼世界,成熟的数字时代已经来临,这就要求传统的敏捷模式做出改变,DevOps 实践工作也要能跟上脚步并且需要向数字转型的的下一个阶段演进,转型的方向包括采用聊天机器人、AI 或者其他诸如家庭或者车载设备等用户参与渠道的高阶能力。
- 在应对这场数字巨变时,测试行业显得尤为艰难,因为其对于如何全面覆盖自动化所需新能力上还没有找到正确的应对方式。
- 在走向更加成熟的 DevOps 工作流程之路时,若借助于具备服务可视化的云服务以及支持所有数字平台的公司,会得到更多的帮助。
- 把大量测试用例嵌入到每次代码变更的构建中,可以在开发人员和测试人员间建立起快速反馈机制和缺陷修改方案,并能取得更快的处理速度。
- 测试工程师应使开发人员能在持续集成中运行正确和稳定的测试,从而在 Devops 模式切换中起到积极的作用。
《数字质量手册》探索了测试模型和Web 应用中遇到的挑战,给出了使用敏捷模式快速提高质量的方法。话题涉及了测试自动化,制定移动测试实验室标准、定位测试片段、众包测试以及性能测试等,并搭配相应的DevOps 实践进行了讲解。这本书的作者Eran Kinsbruner 是Perfecto 的移动测试技术布道者,书中有测试专家撰写的试读章节供读者下载。
InfoQ 读者可以在这里下载: chapter 12 of the Digital Quality Handbook on using smart object locators for robust test automation
InfoQ 针对读者关心的问题对 Eran Kinsbruner 进行了采访,例如究竟什么是数字质量和为什么我们需要关注数字质量、移动应用测试的最大挑战是什么以及该如何应对、推荐的移动测试敏捷实践是什么、聊天机器人怎么测试、如何更早的发现缺陷以及如何在测试人员和开发人员间建立频繁有效的协作关系等。
InfoQ:写作这本书的目的是什么?
Eran Kinsbruner:我个人经历较丰富,我感觉很有必要把这些经历以书的形式与大家分享。虽然移动设备是品牌拓展的首选方式,但很多公司仍对一些事束手无策,例如企业在各种用户情况下如何确保 app 的质量和度量性能,通过自动化持续集成的内部工作和预生产方式加快版本发布,等等。我可以成立一个专家组,和我自己一起开发一个 DevOps 指导,以此帮助企业实现“持续测试”过程,帮助公司把尽可能多的测试放入构建环节。
InfoQ:这本书面向的读者有哪些?
Eran Kinsbruner:这本书的面向的读者有开发、人员、自动化测试工程师、质量部主管、商务人士以及在 DevOps 中承担活跃角色的人员。当要向市场发布一个数字产品的版本时,究竟是需要开发一个移动 app,还是交互式的 Web,或者二者都要发布,这个问题要先搞清楚。
InfoQ:什么是数字质量?为什么我们要关心数字质量?
Eran Kinsbruner:用户选择和一个品牌交互的因素包括用户体验和功能,而数字质量可以保证这两个方面不出问题。它可以是聊天机器人、移动设备上的原生 app、Web app、响应式 app 或者是 IOT 设备。当建立一个数字质量策略时,企业需要考虑各个方面,例如使用 app 的用户群体,以及用户的喜好特征,如地理位置、后台 app 以及网络条件等等。而且,考虑到覆盖率是数字质量的必要条件(即有多少向设备、OS 互联、桌面浏览器、IOT 设备这样的数字平台,以及有多少语音接口等),这些问题处理好就可以确保 app 稳定部署了。
InfoQ:测试移动端应用的最大挑战是什么?
Eran Kinsbruner:最大的挑战如下:
市场已经被 iOS 和 Android 设备瓜分了,不同的地理位置则使市场更加复杂,身处不同地理位置的用户习惯于使用不同的设备,使用不同的 OS 版本。
上述情况导致了用户频繁更换新设备或者 OS,这就要求持续测试和恰当的自动化测试了。
自动化测试框架,尤其是开源的框架,依然很难弥补新 OS 版本引入的新特性所带来的差异,例如,即使在领先的 Appium 框架中都还没有支持可视化测试、位置、指纹等。声音和音频质量也是如此。
本地化方式管理设备机房对开发和测试团队来说是巨大的挑战,因此一般都使用云服务。
模拟真实用户以及理解最终用户的喜好也是一大挑战,团队需要在准确的最终用户条件下测试,这样才能确保 app 流畅运行。
InfoQ:测试工作者要如何应对呢?
Eran Kinsbruner:今天的测试团队正在适应云服务,云服务缓解了管理本地设备和桌面浏览器等机房的痛点。而且,测试团队要么在诸如 Appium 和 Protractor 等消除自动化测试覆盖率问题的开源框架上进行开发,要么把混合工具作为他们工具栈的一部分以具备相应的测试能力。而且,测试人员要时刻注意分析市场趋势,这样可以了解市场动向、了解设备的使用是呈上升趋势还是下降趋势,这些是会有所帮助的。只要把分析思维常备心中,就能从以前的执行情况学习到结构良好的测试策略, 也可以帮助团队分析出需要如何才能把精力集中在最有价值的测试上。例如,识别出在每个平台上都可以测出最多缺陷的测试用例,或者说,app 中经常出缺陷的问题区域,这种地方就应该在早期投入更多精力。
InfoQ:你推荐在移动设备测试中采用哪种类型的敏捷实践?
Eran Kinsbruner:我如今看到很多移动测试团队选择以下的实践方式,这些方式让团队更加敏捷:
把多个工具 (多是开源框架) 连接起来,为 Dev-QA-Ops 流程服务,以满足 SDLC 过程中的每一步遇到的不同需求,也可以和不同的技能组匹配上。我在不同公司中看到,像 Espresso 和 XCUItest 这样的工具已经被开发者们联合使用来进行 UI 单元测试和快速反馈,而 Appium/Selenium 则被测试团队用来做大型回归测试和不能被上述工具覆盖到的附加测试。
改变 SDLC 工作流为 BDD/ATDD 工作流,也会让公司快速发布版本,并且在团队间得到更快速的反馈。转向 BDD 工作流要求在心态、工具和过程处理上做出整体的系统的调整。BDD 依托于业务和产品经理、责任人和开发者以及测试人员之间流畅的沟通,这种沟通能促成精准产品孵化,这里说的精准产品是指能精确匹配由业务和产品负责人驱动的最终用户需求。
在 CI 和构建过程中尽可能全面地加入有价值的测试,是驱动快速反馈和加快版本节奏的关键因素,同时也能更快地发现和解决版本缺陷。要达到这一目标,需要确保在消除偶现测试时,构建环节的测试总能全部通过。
InfoQ:测试聊天机器人有可能吗?怎么测试呢?
Eran Kinsbruner:当然可以。可以用多种方式测试聊天机器人。实现自动化需要具备使用 VST/STV(Voice-to-speech/Speech-to-voice) 技术的能力,再结合数据驱动即可结构化此类测试了。例如,在使用 Siri 或者谷歌语音助手时,团队需要记录下来被“注入”到机器人中的音频,然后通过自动化翻译成文本,反之亦然。请看如下示例代码片段:
(点击放大图像)
InfoQ:怎么及早发现缺陷?
Eran Kinsbruner:及早发现缺陷作为驱动更敏捷的过程的一个关键因素,可以通过健壮的自动化来实现。自动化开发人员提交上次代码更新以来的整个构建过程,可以促使团队及时发现这些更新带来的影响。 如果每次代码提交,都会触发一套测试运行,那么后续过程就不会再有“惊喜”蹦出来,这是显而易见的。测试套件越全面,对之后测试团队顺利完成的回归测试也就更有信心。但这并不是一个万无一失的方法,是有风险的,这取决于分析型测试的选择,比如为开发人员带来最大的价值。 把之前在不同领域的测试进行整合,例如功能测试、UI 测试、非功能测试以及 UX 等,就能覆盖大多数在周期测试中增加的重大和重要特性。其余测试不在这个周期内,要补充它们并使其在额外的设备或 OS 版本上运行,这些就是基于风险的要素,即选择可以在这个周期之外覆盖的测试和目标平台。
InfoQ:在测试人员和开发人员间怎么建立起频繁有效的协作?
Eran Kinsbruner:协作的形成基于的是信任关系,是开发与测试人员所采用的共同的工具,它是“DevOps/Agile”团队的代表性特征。为了建立信任,测试人员需要支持开发过程,构建健壮、成熟、能够带来价值的测试用例。一旦信任建立起来,测试人员就可以把测试用例放入上述构建周期中了,将其作为开发周期的一部分。这样做会减少交流的成本,加快版本发布,当然也会提高产品质量。使用联合的测试工具,也可以增强协作能力,因为当尝试解决问题和执行快速回归时,测试和开发人员将会使用相同的基础源码库。最后,应像对待源代码那样对待测试用例,这样测试用例才能保持更新和健壮,也可以被多个团队复用。
关于本书作者
Eran Kinsbruner就职于 Perfecto,是移动技术的布道者,《数字质量手册》新书的作者。他有近 20 年的软件工程师经历,先后在 Matrix、Qulicke&Soffa、Sun Microsystems、通用电器、德州仪器和 NeuStar 工作过。他具有众多业界认证,例如 ISTQB、CMMI 等。Kinsbruner 在移动测试领域的影响力举世公认。他也申请了多项专利(test exclusion automated mechanism for mobile J2ME testing),他还是一个演说家和研究者,也经常撰写博客。在 Facebook 、 Twitter (@ek121268) 、 LinkedIn 等这些社交媒体上都可以找到 Kinsbruner,这是他的专业移动测试博客。
查看英文原文: Q&A on The Digital Quality Handbook
感谢冬雨对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论