高品质的音视频能力是怎样的? | Qcon 全球软件开发大会·上海站邀请函 了解详情
写点什么

软件测试自动化的最新趋势

  • 2019-04-04
  • 本文字数:2777 字

    阅读完需:约 9 分钟

软件测试自动化的最新趋势

本文将回顾 2018 年的趋势,并阐述对 2019 年的期望。


过去几年,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 的合并

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)

测试即服务(TaaS)或 QA 管理服务是一种外包模式,其中组织的测试活动由外部团队而非员工来执行。在许多情况下,外部团队是一个离岸团队。但我们也有一些实例,我们为自动化开发和项目移交的初始阶段开发了离岸团队,然后是离岸团队进行 QA 维护。


测试即服务(TaaS)的优势包括:


  • 支持按需测试资源。测试是一种周期性活动,其中,资源利用率并不是恒定的。测试即服务意味着客户只需为测试资源使用的时间支付费用。

  • 离岸资源降低成本:由于与离岸组织相关的劳动力成本较低,

  • 自动化服务包含在内:测试即服务包括测试自动化框架、CI/CD 框架以及性能测试和监控,从而降低了组织的各种成本。




原文链接:


https://medium.com/@priyesh_96398/latest-trends-in-software-test-automation-660af0166724


2019-04-04 08:004603
用户头像

发布了 479 篇内容, 共 177.6 次阅读, 收获喜欢 1435 次。

关注

评论 2 条评论

发布
用户头像
自动化测试除了TDD和可测试性架构设计的深度熟练应用外,其他都是鸡肋...人工智能测试就如以前的基于图形的编程(UML建模自动生成代码),想法很好,但不切实际,工具永远无法代替人的思考,毕竟人使用工具而非工具使用人,社会性属性由人构成而非工具构成。
2019-08-09 14:38
回复
没有更多了
发现更多内容

微服务治理之自适应降载

万俊峰Kevin

微服务 微服务架构 服务治理 go-zero Go 语言

模块四

侠客行

架构实战营 「架构实战营」

极客时间算法训练营Week01

jjn0703

算法训练营

Go语言学习查缺补漏ing Day3

Regan Yue

Go 语言 11月日更

元宇宙:区块链时代的新名字

CECBC

复习第四天

IT蜗壳-Tango

11月日更

模块四:如何设计业务高性能高可用存储架构?-- 学习总结

小鹿

Golang Gin 框架上传介绍(四)

liuzhen007

11月日更

flutter中的列表的性能优化前奏

坚果

flutter 11月日更

主客体建模法

少个分号

区块链和人工智能是否可以保护森林不再被砍伐?

CECBC

千万级考试试卷存储方案

张靖

#架构实战营

用AI走出“沙丘”

白洞计划

hw4-千万级存储方案

WWH

架构实战营

【高并发】深度解析ScheduledThreadPoolExecutor类的源代码

冰河

Java 并发编程 多线程 高并发 异步编程

区块链技术革命才刚刚开始

CECBC

字节跳动面试官:SpringBoot统一接口返回和全局异常处理怎么玩?

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

spring的事务隔离级别是何许人也

卢卡多多

Spring Framework 隔离级别 11月日更

Apache Pulsar 与 Apache Kafka 在金融场景下的性能对比分析

Apache Pulsar

大数据 kafka 架构 云原生 Apache Pulsar

21 K8S之容器存储接口CSI

穿过生命散发芬芳

k8s 11月日更

linux之拖拽上传文件

入门小站

Linux

第四模块总结

张靖

架构训练营

css布局之全屏布局

Augus

CSS 11月日更

模块四作业 千万级学生管理系统的考试试卷存储方案

小朱

架构实战营

[Pulsar] 一个消息的生命历程(一)

Zike Yang

Apache Pulsar 11月日更

Lua-Table

Changing Lin

11月日更

考试试卷存储架构

AHUI

「架构实战营」

在线等比数列求和计算器

入门小站

工具

模块4作业

忘记喝水的猫

架构训练营

架构实战营模块四作业

孙志强

架构实战营

堪称数据库的天花板,极致经典的字节内部MySQL宝典意外流出!

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

软件测试自动化的最新趋势_测试_Priyesh Sanghvi_InfoQ精选文章