过去几年,QA 行业的一个持续趋势是测试自动化和持续测试。这一趋势也将在 2019 年继续下去。虽然 CI/CD、DevOps 和测试框架在将来一年仍将是突出的主题,但一些新技术正在影响咱们测试的内容和测试方法。算法
人们期待在 JavaScript 领域看到更多的开源测试框架,在使用的工具中嵌入更多的人工智能功能,以及来自商业工具供应商的更多创新。另外一个持续的趋势是功能测试和性能测试的结合(你能够将其看作 Selenium 与 JMeter 测试相结合)。此外,人们还指望看到更多行为驱动开发(Behavior Driven Development,BDD 测试)的发展,以及在敏捷组织中如何采用它。自动测试场景生成是咱们与几个客户合做的另外一个领域。数据库
如下是目前软件测试自动化水平的完整概述。编程
物联网(Internet of Things,IoT)正对测试领域产生显著的影响。像 Selenium 这样的传统自动化方法在嵌入式环境中变得毫无用处。咱们已经看到愈来愈多的基于 Python 和 C/C++ 的测试框架执行单元测试、集成测试和系统测试。大多数测试框架都是测试由这些嵌入式库导出的 API,其中至关多的框架调用嵌入式代码来执行单元测试。这须要具备重要软件开发经验的专业测试工程师,但咱们看到更多的软件开发人员将被部署到自动化测试的角色。Python 多是物联网测试框架开发的首选语言,由于它可以直接使用 ctypes 包来调用 C 代码。架构
另外一个新趋势就是物联网的 DevOps 环境开始标准化。到目前为止,咱们看到的大可能是 CI 环境的 Ad-hoc 实现。咱们已经预先构建了解决方案,用于构建管理、测试管理、镜像加载、物联网镜像在不一样设备上的部署、不一样构建物联网设备的 A/B 测试等。框架
持续测试是从去年至今仍在继续的另外一个趋势。咱们在过去已经看到了 DevOps 和 CI/CD 框架的爆炸式增加,而今年这种趋势,将随着新的框架(如 Nevercode 和 Codefresh)的出现而继续。微服务
持续测试的另外一个趋势是对每一个版本进行基于人工智能的风险评估。之前,这种操做是手工执行的,以肯定能为应用程序部署哪些版本。咱们已经实现了几个 CI/CD 平台,它们执行应用程序基于人工智能的自动 A/B 部署。工具
基于人工智能的测试方法已不只仅是时髦语,如今已经进入了主流测试实践。人工智能和自动化是测试的两个并行方面:自动化用于功能测试,而人工智能则用于视觉测试。基于人工智能的视觉测试,包括视觉测试和感受测试,并快速浏览每一个构建版本的视觉变动,是一个很是有用的发布验证方法。咱们已经在 Denver 的不一样客户中实施了基于 Applitools 的视觉测试解决方案。性能
虽然严格来讲,视觉测试目前并非基于人工智能的。图像比较算法是基于传统的梯度分类。单元测试
咱们所使用的其余几个独特的工具不多可以智能地自动化许多任务。测试
测试套件优化:咱们开发了一些工具来分析日志模式,并肯定哪些测试用例是重复的。
使用日志分析进行缺陷识别:根据日志分析突出显示软件缺陷。
自动测试场景生成相似于 Swagger。
在过去的几年里,咱们看到的不断增加趋势之一是,从传统的企业测试解决方案(如 HP QC、ALM、UFT、IBM 等)迁移出来。咱们看到各类规模的组织愈来愈多地采用开源测试平台。咱们亲自将客户的几个测试框架从 HP QC/UFT 迁移到其余开源解决方案。尽管这些开源解决方案涉及到编码,但从长远来看,它们具备高度可定制性和可维护性。咱们预计,随着 2019 年的到来,这些开源解决方案将继续得到更大的吸引力。
DevOps 的关键原则是开发团队、测试团队和运营团队协做,无缝发布软件。这意味着集中或隔离的 QA 部门如今必须与开发和运营团队合并,以便为各类版本提供按需测试服务。测试变得更加渐进、迭代,并与应用程序开发和部署过程集成。
译注:行为驱动开发(英语:Behavior-driven development,缩写 BDD)是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA 和非技术人员或商业参与者之间的协做。BDD 最初是由 Dan North 在 2003 年命名,它包括验收测试和客户测试驱动等的极限编程的实践,做为对测试驱动开发的回应。在过去数年里,它获得了很大的发展。
2009 年,在伦敦发表的“敏捷规格,BDD 和极限测试交流”中,Dan North 对 BDD 给出了以下定义:
BDD 是第二代的、由外及内的、基于拉 (pull) 的、多方利益相关者的 (stakeholder)、多种可扩展的、高自动化的敏捷方法。它描述了一个交互循环,能够具备带有良好定义的输出(即工做中交付的结果):已测试过的软件。
咱们如今已看到基于 BDD 的测试机制的采用,它容许在 sprint 周期中开发的新功能进行迭代测试。BDD 表明行为驱动开发(Behavior Driven Development),它自己源自验收测试驱动开发(Acceptance Test Driven Development,ATDD)。BDD 迫使团队在收集需求的同时提出测试场景。测试场景被当即记录下来并签入 CI 系统,以强制 CI 系统显示这些场景的故障。在 Sprint 期间,开发和 QA 团队的目标如今变成了这些场景。这种测试框架开发机制在方法上是新颖的,很是适合敏捷环境。咱们看到不少客户在敏捷实践中转向基于 BDD 的测试开发。
测试的关键趋势之一是将性能测试角色不断转变为成熟的性能工程角色。性能工程如今不只包括测试方面,还包括监控系统性能。资源的自动伸缩、A/B 测试、ELB、数据库优化、瓶颈识别和监控。如今已有集中基于云端的工具能够准确地监控不一样云资源上的各类性能参数,而且经过警报对全部资源进行仪表板监控是咱们在各类客户端上工做的主要部分之一。
随着愈来愈多的应用程序转向微服务模型,测试架构也朝着微服务测试模型发展。之前,产品的 QA 遵循黑盒测试模型,但如今,经过微服务测试,咱们正朝着灰盒测试模型迈进。
微服务测试包括 API 测试、数据库测试、身份验证服务 / 搜索服务测试等。咱们能够将这个测试模型称为更多的组件测试模型,而不是测试集成产品。
微服务测试容许咱们在全部变动进行大爆炸式的集成以前发现问题。 它仍然高于单元测试,由于组件必须彻底定义,而且测试基于这些组件的外部 API。
测试即服务(TaaS)或 QA 管理服务是一种外包模式,其中组织的测试活动由外部团队而非员工来执行。在许多状况下,外部团队是一个离岸团队。但咱们也有一些实例,咱们为自动化开发和项目移交的初始阶段开发了离岸团队,而后是离岸团队进行 QA 维护。
测试即服务(TaaS)的优点包括:
支持按需测试资源。测试是一种周期性活动,其中,资源利用率并非恒定的。测试即服务意味着客户只需为测试资源使用的时间支付费用。
离岸资源下降成本:因为与离岸组织相关的劳动力成本较低,
自动化服务包含在内:测试即服务包括测试自动化框架、CI/CD 框架以及性能测试和监控,从而下降了组织的各类成本。