翻译:软件测试的未来五个趋势

Original: https://www.qasymphony.com/blog/5-trends-future-software-testing/

翻译原创,转载请注明出处,谢谢!

=====================================

    我们大家都知道,软件测试正经历着这个行业有史以来最大的变革。

    事实上,这次变革的影响力是整个测试行业前所未见的。那么,变革的背后是什么呢?更重要的是,软件测试行业的前景如何呢?

    为了回答这些问题以及更深层次的讨论,我们邀请了12位备受尊敬的,经验丰富的软件测试行业的领导者,他们是:

    1. Joe Colantonio, TestTalks & GuideConferences的创始人。

    2. Angie Jones, Twitter的测试领域的高级软件工程师。

    3. Bobby Smith, QASymphony的研发总监。

    4. Keith Klain, 执行董事,Tekmark Global Solutions软件质量管理主管。

    5. Paul Merrill, Beaufort FairMont的首席软件测试工程师以及创始人。

    6. Kevin Dunne, QASymphony业务发展与战略副总裁

    7. Brandon Cipes, CPrime DevOps副总裁

    8. Joseph Ours, Centric Consulting的国家软件质量保证和测试实践主管。

    9. Ryan Yackel, QASymphony产品营销总监。

    10. Mush Honda, KMS Technology的测试副总裁。

    11. Suma Daniel, Forty8fifty的质量测试分析师。

    12. Sunil Sehgal, TechArcis Solutions的管理合伙人。

    从与这些领导者的交流中,我们学到了下面的内容,如果你对全部的访谈内容感兴趣,可以购买我们的电子书:The Future of Software Testing: 12 Experts Share Their Predictions.

为什么是现在: 软件测试变革的背后

    软件测试领域目前正在进行的变革是由外部环境因素以及内部的行业驱动因素共同推动的。

    外因对软件测试变革的影响

    在外部因素方面,影响软件测试行业的最显著的趋势包括:

    消费者和商业用户的日常生活中,越来越多地使用技术。根据App Annie 2017年的报告, 平均每天我们要用9个应用程序,这还仅仅是在我们的智能手机上——可以想象一下,如果我们把所有其他使用技术的方式都算在内,这个数字又是多少。

    用户对于软件的预期越来越高。例如, TechBeacon发现49%的用户希望应用的响应时间能在2s内,80%的用户如果超过3次发现应用有问题,就不会再尝试去使用这个app。

    快速发布新软件的需求以及现有软件的改进。亚马逊每年5000万次代码发布——以及DevOps模式,使得代码发布频率是以前的30倍。

    内因对软件测试变革的影响

    外因的影响,迫使软件测试团队必须帮助团队能够更快,更高质量地发布产品,与此同时,内部的一些因素,也正改变着完成任务的方式。这些因素包括:

    首先,日新月异的技术发展,贯穿着整个软件开发的生命周期。根据我们2017年的SDLC(Software development lifecycle)的格局图,整个软件开发生命周期中,有来自数百家不同公司的1500种工具可供测试人员选择,如果对这些工具的处理不当,可能会使开发和测试的工作更加错综复杂。

    其次,敏捷和开发运维的兴起,改变着测试人员什么时候,怎样以及和谁一起工作,同时对测试团队文化也产生着巨大的影响。越来越多的公司都采用着这新兴的模式,VersionOne发现,截至到2016年,95%的公司至少在部分团队中实施着敏捷模式,同时RightScale报告称,截至到2016年,74%的公司采用的DevOps的方式。面对这一改变,测试人员必须学习如何适应。

    与此同时,手动测试向自动化测试的转变,需要测试人员去学习一整套全新的技能。自动化正迅速地成为许多测试情况下的默认方式,不过测试人员需要小心地找到自动化和手动测试合适的平衡点。因为即使技术运用越来越多,但是人与人之间的交流仍然重要。

未来软件测试行业的5个预测

    总体来说,这些外部和内部的原因,使得软件测试行业处于不断动荡中,虽然已经有了很多变化,但是未来还会有更多。那么软件测试的未来会是怎样的呢?测试人员如何才能为未来的变化做好准备呢?下面是跟专家们的谈话中总结出来的前五个预测。

    自动化是测试的未来

    所有的专家都同意自动化是未来软件测试的重要组成部分,有所争议的是,自动化将扮演的角色的重要程度。

    例如,Cipes预言“软件测试的未来几乎完全是自动化测试用例”。在未来,他相信会有越来越多的自动化测试用例,但是测试人员并不是要一直去跑所有的测试用例,而是根据新的改变来决定跑哪些。同时,他也警告说,要达到这种水平的自动化需要非常的小心谨慎。他补充道:“要实现这个水平的自动化,时间可以权衡,同时你需要非常了解你所采取的方向。质量是最重要的,如果你花过多的精力在自动化上而忽视了测试,或许你会遭遇很糟糕的一天。自动化非常棒,但是如果你自动化了错误的东西,那么问题会更多”

    另外一方面,其他的专家比如Yachel, Dunne, Ours 以及Honda觉得我们必须要谨慎过度自动化。事实上,Yackel说目前我们就过于强调自动化的重要性了,Yachel解释道:“所有的声音都在说,我们要自动化一切,但是你不得不承认,不是每个任务都是可以自动化的,你仍然需要手动测试,尤其是关于用户体验。自动化的好处非常多,比如说步骤自动化,但是现在我们对自动化赋予了很多不切实际的期望,我们需要调整这种期望”。

    Dunne也觉得测试人员需要注意不要过度自动化,让自己陷入一些错觉。第一个不切实际的想法就是,认为你可以自动化所有的事情,第二个就是觉得你的自动化测试用例越多,你的测试就做的越好。而实际上,这种过度的自动化会因为高昂的维护成本而降低效率。反过来说,如果自动化测试用例本身就不是非常值得信任,也会导致产品的质量不高。

    同时,Ours觉得我们需要打破自动化和手动测试的对立面,因为它们是相辅相成的。他说:“没有一个软件是可以100%自动化的,同时,也没有一个不需要任何自动化,手动测试是100%最有效率的软件,所以你需要一个平衡点,用正确的方式去使用这些工具。”

    最后,本田预测,更简单、偏向于软件管理方面的测试的自动化程度会越来越高,但是自动化所带来的成本节约,是为了让测试人员能够花更多的精力在更有意义的测试上,比如说探索性测试(Exploratory testing)。Honda总结道:“更合理地运用工具去完成简单的工作,从而让测试人员能够集中时间和精力在更有效的测试上。”

新兴技术尤其是人工智能和机器学习将带来巨大的影响

    软件测试领域涌现出许多新技术,尤其是人工智能和机器学习。几乎我们所有的专家都毫不例外地以某种形式提及了人工智能和机器学习。

    根据Sehgal的说法,尽管人工智能和机器学习还不够成熟,但是从测试的角度来看,他们肯定成为现实,并且会来的比我们想象的要快。他说,“最终,这些技术将让我们的自动化上升到另一个层次,它们(自动化脚本)会规范化,并且能够自适应地调整脚本。”

    Merrill也认为虽然这些技术还没有完全成熟,但是因为这些技术的引入,让测试工作变得更加复杂,并且这些影响会越来越大。“目前最主要的挑战是,整合了人工智能和机器学习后,需要一起工作的系统的数量”他补充道:“我们开始看到越来越多的软件产品涉及到人工智能和机器学习,这些技术有可能会给我们带来令人惊叹的改变。”

    与Merrill的想法类似,Jones发现人工智能和机器学习给测试领域带来了完全不同的复杂性,但是她也觉得这些技术不会像我们想象的那样快地去影响到我们具体的工作。 Jones说:“随着软件变得越来越复杂, 以及与其他软件的交互的增多,我们需要改变传统的测试方法。在由物联网,人工智能以及机器学习主宰的技术世界,测试行业将持续保持其核心基础,但是用到的工具、技术以及方法都需要与时俱进。”

测试人员必须能够拥抱变化并学习新的技能

   面对这些改变,所有专家都强调,测试人员需要以开放的姿态,拥抱变化,并认真积极地去学习新技能。

   例如, Colantonio认为测试人员需要更努力地通过与不同的人以及一些测试社区的讨论,去了解其他的组织正在做什么,以此来了解行业的趋势。他说,幸运的是,现在我们有很多的机会去接触各种社团,参加一些会议,以及和尽可能多的人交流,从而了解正在发生的事情和一些新的变化。虽然他承认接受改变以及尝试一些新的工具对每个人来说,都是非常具有挑战性的,但是,技术在发展,测试人员必须得不断更新自己的知识库,才不至于被时代所遗弃。

    Smith对此表示赞同,他给测试人员最大的建议就是接受改变。

    那么测试人员究竟要做些什么来让自己跟上变化呢?Dunne说,测试人员必须掌握编码技能,或者更多地了解所测试的软件是怎样构建的,这都是一个很好的方向。Dunne还说道:“测试人员应该重新考虑他们是怎样做测试的。我们都知道,开发人员总是会考虑他们如何开发新的或者更好的东西,但是测试人员一般不会这样想。但是测试领域在不断变化着,如果你不进步,就有可能被行业所遗弃。”

    Daniel则觉得测试人员需要学习新的测试方法以及对系统要有一个全局的理解。他认为:“为了以后更好的发展,测试人员需要主动去适应改变,学习新技术,并接受更流畅的开发周期模式,比如说DevOps。对于测试人员来说,对客户或者雇主所处的市场的了解也非常重要,因为如果他们了解公司面临的风险,知道竞争产品以及挑战所在,才能更好地根据这些来计划如何测试。”

    Klain补充了新的观点,我们在接受改变的时候,要能够区分对错。他解释道:“有许多的‘思想家’或所谓的‘专家’,往往会局限于一些理论,专注于非常具体的实践,并为此期许太多。对于各路专家的建议,你需要自己去研究,提问和不断的尝试,并根据这些去总结经验。当然你应该吸取经验丰富的专业人士的经验和建议,但是不要把你听到的看到的当作不容置疑的事实。”

    Honda觉得这一切的底线是,变革的步伐会很快,测试人员需要愿意不断学习并掌握新的工具和流程。你不需要知道每一种工具,但是你需要知道哪些工具能让你的测试工作更简单。他最大的建议是,“要始终通过学习新的技能,接受新流程,并且不管的尝试、尝试、尝试,让自己能一直站在行业的前沿。我知道这个过程会很有挑战性,但是你需要通过这些挑战来规划你的职业生涯。”

不同职能间的分界线会越来越模糊

    如果说DevOps的兴起意味着什么,那就是不同职能间的分界线越来越模糊。

    Dunne认为,软件测试的未来是通过改变团队的组织方式来消除“测试孤岛”。他表示,与由专门的测试人员组成的的大型测试团队相比,各公司将会转向更小、包含整条业务线所需的所有角色的团队。Dunne说,为了适应测试这样的改变,“测试人员需要了解团队里的其他职能,从而对问题有比较全面的理解,这就要求不断的学习,尤其是编程能力。” 

    测试人员会跟不同的职能部门打交道,了解不同的人的不同需求非常重要,通过了解这些,我们可以提供相应的信息,让他们能够作出正确的决定。这也是怎样体现测试人员价值的一种途径。

    同时,Daniel强调让QA团队从项目的一开始就参与进来是非常重要的,整个团队需要更好的规划和执行,以便能够在较短的时间内交付优质的产品。

    Colantonio认为,除了让测试人员更早地参与到项目中来之外(shift left),我们也要监控产品发布后的质量(shift right)。当我们发布软件的时候,我们需要更多的更智能的分析监控,能够及时提醒我们所出现的问题,并在遇到问题后能够自动回滚。

    总体而言,Smith表示,目前各个职能界线越来越模糊的情况下,取得成功的关键在于和产品以及业务部门间的紧密合作。找出当前存在的瓶颈以及沟通代沟,比希望团队能够跟上未来的步伐更重要。在开发运维这个模式下,测试人员应该在这方面做更多的工作。

很多方法(包括技术)的本质是永恒的

    不管软件测试行业经历着怎样的变革,对于测试人员来说,有很多技能都是必备的。

    正如所有的专家所说,测试人员应该接受各种变化,并不管地学习新技术,这是任何时候都是至关重要的。 

    Ours说:“一般来说,很多东西从测试角度来看是永恒的,比如说测试的本质——试图去质疑、检查、发现以及收集我们正在测的产品的信息,这些是永恒的,只是底层的技术实现在不断改变。”

    Honda则认为,软件测试的将来都是关于解决问题相关,这并不是最近才出现的,关键在于测试人员是否能够有创造性地解决问题。Honda还认为测试人员本身就是软件测试行业的一个永恒领域,“我们不能忽视测试中的人性化,今后发生巨大变化的不是测试本身,而是测试过程中,测试人员所提供的价值。”

    Klain说,事实上,最好的测试方法从未改变,批判性思维,沟通以及专业知识的学习,对于业务以及风险管理发挥着至关重要的作用。


    上面阐述的5个趋势只是众多预言中讨论的最多的,讨论中,我们也提到下面一些变化。

    随着软件发布周期的加快,软件的安全将会变得越来越重要。如今软件快速地进入市场,安全性往往会被忽略。但是测试人员应该时刻警惕着安全测试。对于一些社交应用比如说Facebook、Instagram,即使有一些问题,可能也不会太严重。但是,如果是涉及财务或者是医疗软件时,对bug就不会有那么高的容忍度。

    测试Leader需要学习如何管理日益增长的越来越复杂的SDLC技术。 新技术会带来很多好处,但是也会让事情变得越来越复杂,所以测试Leader不得不决定用什么样的技术,以及他们要如何用。

    质量将成为每个人的责任,但是测试人员仍将是不可或缺的。尽管现在开发们会做一些测试相关的工作,但是测试人员会依赖于以往经验和不同的视角,能够想到开发们所想不到的测试用例。在将来,测试人员不仅负责产品的质量,同时也需要指导其他人如何确保产品符合一定的质量标准。

    测试人员的机会会越来越多。最后但同等重要的是,每个专家都表示,他们对软件测试的未来感到兴奋,因为测试人员的机遇只会越来越多,并且这些机遇会变得更有吸引力,测试也会变得更有挑战性。

没有更多推荐了,返回首页