关键点
- 了解刚刚发布的 2017 测试行业状况年度报告
- 观察软件测试行业的走向
- 解读持续被采纳的敏捷与 DevOps 如何影响测试人员的角色定位
- 了解最新的测试行业趋势、测试技术和测试工具
- 了解测试人员面临的挑战以及他们如何来应对这些挑战
2017 测试行业状况报告提供了多方位视角来观察测试行业现状,包括测试技术、测试实践、测试自动化以及测试人员面临的挑战,分享了 2017 年度测试行业调查的调查结果。这次调查由来自 PriactiTest 的 Joel Montveilsky 和来自 Tea-Time with Testers 的 Lalit Bhamare 组织。
根据 2017 测试行业状况报告:
测试行业状况调查是最大的全世界范围的测试行业调查。根据 1600 多名来自 60 多个国家的参与者的反馈,这次调查希望提供最精准的测试行业信息和全球的测试社区信息。由于每年都会举行,这项调查也掌握着测试行业当下和未来的趋势。
这已经是第四次测试行业状况调查。大部分问题都和之前的调查问题类似,这样可以从中观察测试行业的发展趋势。当然也有一些新的关于测试人员的职业发展的问题,一些已有的问题新增或修改了选项,以便于掌握最近几年来越来越普遍的行业趋势。
InfoQ 对这次测试行业状况调查的组织者进行了一次采访。
InfoQ:2017 测试行业状况报告与之前的报告相比,主要的改变是什么?
Montvelisky:对我个人而言,最有趣的发现是,测试行业的改变是一次演化性的改变而不是一次革命性的改变。我们可以看到,DevOps 慢慢被更多组织采纳,测试人员更多地参与到持续集成与持续交付,并且测试人员在影响开发生态的整体趋势上扮演更重要的角色。
Bhamare:除了 Joel 已经提到的,我觉得测试行业拥抱新挑战的开放性和积极性与之前相比更明显了。测试人员灵活和开放地拥抱新的想法,来找出在不同环境中都有良好表现的方法。测试人员期望变得比过去更有技术性,同时他们也期望拥有非常好的思维能力,成为富有探索与思维能力的测试人员。
2017 测试行业状况报告,揭示了测试领域在不久的将来会发生的更大的改变趋势,因为我们正处在人工智能、机器学习、可穿戴设备、虚拟现实和其它 Joel 已经提到的技术方面的前沿。
InfoQ:测试职业如何紧跟新技术的发展,例如测试人工智能系统与虚拟现实?
Bhamare:我认为,要想高效地测试人工智能或虚拟现实,测试人员需要透彻理解这些技术本身。他们对技术地理解越全面,测试工作完成的会越好。
测试人员能够剖析人工智能或虚拟现实产品,将十分有助于他们设计更多的测试思路。我个人会逐步尝试一些我了解的技术,例如 SFDIPOT、I SLICED UP FUN、FCC CUTS VIDS 等等,来更好地理解产品。为了紧跟这些惊人的发展,我建议实践批判性思维并更深度地理解人机关系。
对于那些严阵以待这次挑战的人,我推荐从 Weinberg 的 An Introduction to General Systems Thinking这本书开始学习,除此之外,我想不到更好的方式作为开端了。
Montvelisky:我也认同,测试人员除了测试技术,也需要去了解他们测试的事物本身。
如今,有许多途径来获取这些知识,例如,互联网上庞大的数据、在线培训、互联网上不断更新的人们发表评论的社区等。
我觉得对于人们,特别是测试人员来说,非常重要的一点是,在进行诸如虚拟现实和人工智能相关的工作时,最好像一个用户一样来看待这些产品,实际使用并第一时间体验用户会如何使用你正在测试的产品。当你遵循用户现实场景下的使用行为,探索项目并查找重要 bug 时,这些第一手的体验是至关重要的。
InfoQ:报告中指出,测试功能越来越多地由项目经理承担,而由 QA 部门 VP 或经理承担的越来越少。您认为,导致这种现象的原因是什么?这种现象又意味着什么?
Bhamare:我认为,这是最近方法论、投入 / 收益模型、技术革新和软件构建方法等改变驱动的综合结果。测试人员的期望已经发生了改变,项目团队也明显期望他们发挥出超出单纯的质量保证的作用。
其中一个好处就是,测试人员可以得到明显的职权提升,如果他们能够与其它部门紧密协作,例如编程部门、人事部门、用户关怀部门、用户与市场团队等。这有利于团队交流并能够作出更快速的反馈,同时还可以让测试人员与程序部门协作,作出超过传统工作职能的贡献(例如,代码分析或缺陷分析、结对测试、执行部署、产品监控等)。
另外一层影响就是,测试人员可能会感觉疏离甚至被迫服从项目团队的质量期望,这些期望有时又与会测试人员在团队中感受到的期望不同。如果项目团队不精通“有意义的测试需要做些什么”,那么就会给团队中孤立的测试人员带来无休止的争执。Anne-Marie Charrett 已经在她的博客 _ leave the testing to the experts _ 中,非常完美地阐释了这一影响。
这一般也会影响测试人员的职业发展路线。如果项目中没有测试团队的推动,或者没有测试项目来管理,或者没有集中的测试职能来授予,那么测试人员会成长为什么样子呢?这也许会是团队组织在不久的将来需要解决的难题。
Montvelisky:我认为,测试团队习惯的是按层次从研究与开发部门分离的集中的测试职能,现在正逐渐被集成到原有的职能团队中,而这正对测试人员的日常工作产生非常巨大的改变。
面对这些变化,我曾问过自己许多问题,其中少许是这些变化对测试人员有什么影响,更多的则是“质量管理部门的 VP 或经理的未来会如何?”。现在,我的答案是,这更多的取决于团队组织施行的政策和实践基于的方法论,而不是取决于测试人员自身。
InfoQ:报告中的变化如何影响测试人员的独立性?
Montvelisky:我不认为这影响了我们的独立性,但是会需要我们在过程中以另外一种方式来组织我们提供的信息。
如果你汇报的对象是测试部门 VP,一个能够理解你在说什么以及你所陈述的问题的人,那么这个人就可以作为一个代理或者翻译,以组织的负责人能够明白的方式,来将你提供的信息展示给他们。每个人都会基于自身的知识和经验来理解信息,因此一个非测试人员,例如一个项目的管理者 CTO,需要一些额外的针对报告结果的解释来让他们明白。
当我们取消了这个“中间人”,那么测试人员需要投入一些时间,来向他们交流的负责人以有效的方式提供信息。
这种情况下,我们其实并没有放松我们的独立性,但是我们确实需要更努力来让我们的信息传达到位。
Bhamare:这有点复杂,我认为需要看情况而定。如果测试人员汇报的团队或管理人员有实际的测试经验或者能够很好理解如何进行有意义的测试,那么这会明显帮助测试人员甚至可以使测试人员在项目中作出更好的贡献。
相反,如果测试人员的最终汇报对象是一个认为“测试无非就是执行一些完全可以自动化完成的检查”的人,那么将会导致每个人都感觉很糟糕。关于这个话题,我曾在一篇专门的博客 _ No Testing, No Agile and No Software Delivery _ 中表达了我的个人感受和看法。
当然,多年来一直存在的这种普通测试在一定程度上让人们形成了这样的看法。但是,观察测试人员的调查结果和评论,我认为事情正变得比过去好很多。除了报告的结构,测试人员正担负起他们的工作职责并热衷于做那些更有意义的测试,我非常高兴看到这样的情况。
InfoQ:敏捷和 DevOps 的持续采纳对于测试人员有什么影响?
Montvelisky:我认为,在敏捷和 DevOps 团队工作的测试人员的日常生活更充满激情,也更令人兴奋。我们被要求有更高的执行力,提供更快的反馈,引导职能团队,有时开发人员突然需要成为测试人员,有时又反过来测试人员需要成为开发人员。
这里我认为最大的挑战是,掌握职业化测试所需的水平,来交付一款好的产品。在处于开发过程中的时候,提出打断和严重的质疑会非常困难,但我认为这是我们能够向团队提供的最大的额外价值(以我们产品的用户的视角)。
Bhamare:正如之前提到的,我认为“协作和更快速的反馈”是在敏捷或 DevOps 团队的测试人员的最大优势。敏捷或 DevOps 的采纳需要测试人员具有一些确实有帮助的更好的技术技能。
同时,这也保证了测试人员成为更严谨的思考者,并具有更清晰地交流风险或信息的能力,而不会成为产品发布中的瓶颈。也就是说,对于大部分项目团队而言,敏捷和 DevOps 的采用保证了测试人员成为“许多技能的支柱”和大师。
InfoQ:测试团队面对的主要挑战是什么?他们如何来应对这些挑战?
Bhamare:在更短时间内的处理高频率的测试一直都是测试团队面临的最大挑战。其它主要的挑战可以概括为一句话,“应付不断变化的期望”。编程人员和测试人员之间较高的人数比、增加的超出传统测试任务的职责、增加的学习曲线、缺乏明确的方向和职业发展路径都让测试人员感到很有挑战。
智能的自动化测试确实会对测试人员的工作有所帮助。测试人员知道合适的工具,可以用来加快普通的任务。要让项目团队明白,“质量”是整个团队的责任而不是仅仅靠团队中测试人员就能够明显改善的。在敏捷或 Scrum 团队中实现执行中任务数量限制(WIP limits),可以激发团队中的非测试成员加入并帮助测试。在我看来,和编程人员结对是教导他们如何进行测试的最好方法,同时测试人员也可以从编程人员那里学习到更多技术知识。这也许有助于测试人员学习需求的扩展,并且可以让他们在项目团队中有更多产出。
Montvelisky:我们作为测试人员最大的挑战,始终是处理项目紧促的时间线,并且随着敏捷和 DevOps 的采用变得更加紧促,同时,用来发布产品到各领域或者部署产品到云端的日历期限也更短。
应对挑战的唯一方法就是不断改进和适应。自动化测试不再是奢侈品,而是我们必须掌握的技能,这样做是为了处理重复任务以及能够将工作中心放在更需要探索性的新功能测试上。
团队处理这种情况的另外一种方法是,确保开发人员更多地意识到他们需要交付的产品质量,并且教会他们更好地进行自我测试。是的,这可以做到,只要你真的需要去这么做。
InfoQ:测试人员都吸收了哪些新的技术?这些技术又如何影响着测试职业?
Montvelisky:我认为,如今对测试人员帮助最大的技术就是云计算以及在线创建测试环境来执行测试用例的能力。
有一些团队直接使用这项技术,在各自的 AWS 或 Azure 的环境中工作,但是也有一些团队没有直接使用云计算技术,而是通过一些使用了云计算技术的工具来从中受益。无论你是在讨论自动化测试、负载测试还是一般测试管理,云计算和托管系统都让测试人员的生活更加美好。
Bhamare:除了 Joel 提到的云计算技术,我认为,其它技术例如增强现实(Augmented Reality)、虚拟现实、可穿戴设备和各种形式的移动端技术都是测试人员如今工作中使用的新潮技术。这些技术的性质,鞭策测试人员去想象产品的不同场景和不同元素(参照 James Bach 的 _Heuristic Test Strategy Model_ ),来保证产品质量的评定有更广的覆盖率。虽然这听起来非常有挑战性,但是我认为这让测试人员的工作更令人兴奋,同时也给他们提供了成为新时代软件开发的核心的机会。
InfoQ:测试人员需要了解的新的或者即将成为主流的技能有那些?他们如何掌握这些技能?
Bhamare:除了更多的技术和科学意识,我不认为测试人员需要了解任何更多的技能。他们只不过是需要在不同的环境下来施展他们已有的技能。为了更高效地施展他们的技能,测试人员必须了解他们的角色在如何变化,以及如何在不同的环境中施展他们的聪明才智。这才是测试人员自身必须掌握的核心技能。
为了掌握这一核心技能,我建议多做测试实践(更偏向探索性的测试)、从实验和观察中学习、保持开放性思维并持续学习。Fiona Charles 在 InfoQ 最近对她的采访 _ testing challeges and essential skills for testers _ 中非常漂亮的阐述了这一点。如果有人对这点感兴趣,我建议他们去看看这篇采访。
Montvelisky:调查显示,对测试人员来说最重要的技能,仍然是“过去的那些技能”,例如交流能力、功能测试、web 技术等等。但是我们也可以看到越来越多的人掌握新技术例如云端测试、物联网测试(IOT testing)以及大数据测试。
我坚信新技术会在将来不断变得更加重要。
关于采访嘉宾
Lalitkumar Bhamare目前在 XING AG 任职高级软件测试工程师。他是著名的测试杂志“ Tea-time with Testers ”的主编和合伙人、 www.tvfortesters.com 的创办人以及 Techno-talks with Lalit 的主持人。在测试工作之余,Lalit 会作为 AST 的 BBST 基础课程的策划负责人来教授软件测试知识,并且经常在 James Bach 的 RSTA 在线课程上进行协助。他偶尔还会出席大会演讲和参与公共研讨会。
Joel Montvelisky是 PractiTest 的首席方案架构师和 QA 经理。过去 20 年中,他曾在以色列和美国的一些公司任职 QA 经理、咨询师和培训师。你也可以在 http://qablog.practitest.com/ 以及一些他在 PractiTest 举办的围绕测试相关话题的在线研讨会( https://www.practitest.com/qa-learningcenter/#webinars )上了解他的想法。
查看英文原文: 2017 State of Testing Report
感谢张卫滨对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论