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

  过去几年,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://www.cnblogs.com/insane-Mr-Li/p/11227346.html

时间: 2024-10-08 22:57:18

软件测试自动化的最新趋势的相关文章

软件测试自动化的最新趋势对开源测试管理软件ITEST的启示

https://www.infoq.cn/article/c-LHJS2ksuDxp1WkrGl4 理面提到几点,DevOps 的关键原则是开发团队.测试团队和运营团队协作,无缝发布软件.这意味着集中或隔离的 QA 部门现在必须与开发和运营团队合并,以便为各种版本提供按需测试服务.测试变得更加渐进.迭代,并与应用程序开发和部署过程集成. 里面的一理念,和ITEST 后续版本方向有相似的地方,主要下面几个方向 需求管理功能 测试环境管理主要有镜像管理,镜像( docker)实例化,A/B测试环境配

北京软件测试自动化培训学校

不知不觉三个月已经过去了,在北京德润教育这几个月的学习中我从对软件测试不懂到现在的对这个行业有了一个比较好的了解,也学习到了很多的软件测试的知识.北京软件测试自动化培训学校 在北京德润教育学习的一段时间里,我知道了软件,测试的重要性.这个软件测试的学习共有六个学习模块,每个模块又分为阅读.操作.讨论.作业几个小的学习版块.既有逻辑严谨的理论知识,又有实际的教学范例,既有知识的传授,又有实际的操作.让我们在学习当中不知不觉提高了自己的专业知识水平.下面是我这三个月以来的学习体会. 在这三个月中首先

《软件测试自动化之道》读书笔记 之 SQL 存储过程测试

<软件测试自动化之道>读书笔记 之 SQL 存储过程测试 2014-09-28 待测程序测试程序   创建测试用例以及测试结果存储  执行T-SQL脚本  使用BCP工具导入测试用例数据  创建T-SQL 测试套件  当待测存储过程返回行集的时候,如何判断测试结果是否通过  当待测存储过程返回out参数时,如何判断测试结果是否通过  当待测存储过程没有返回值时,如何判断测试结果是否通过 许多基于Windows的系统都使用了SQL Server作为后台组件.待测程序经常通过存储过程来访问数据库.

《软件测试自动化之道》读书笔记 之 目录导航

<软件测试自动化之道>读书笔记 之 目录导航 2014-10-09 源代码 第1章 API测试第2章 基于反射的UI测试第3章 基于Windows的UI测试第4章 测试套件设计模式第5章 请求-响应测试 第6章 基于脚本的Web UI测试第7章 底层的Web UI测试第8章 Web Service测试第9章 SQL存储过程测试 第10章 排列与组合第11章 ADO.NET测试第12章 XML测试

《软件测试自动化之道》读书笔记 之 底层的Web UI 测试

<软件测试自动化之道>读书笔记 之 底层的Web UI 测试 2014-09-28 测试自动化程序的任务待测程序测试程序  启动IE并连接到这个实例  如何判断待测web程序完全加载到浏览器  操纵并检查IE Shell  操作待测Web页面上的HTML元素的值  验证Web页面上HTML元素  示例代码 测试自动化程序的任务 底层技术的核心是,通过直接调用mshtml.dll和shdocvw.dll库来访问并且操纵IE客户区域的HTML对象. 待测程序 新建一个网站“WebAUT”,删除原来

《软件测试自动化之道》读书笔记 之 XML测试

<软件测试自动化之道>读书笔记 之 XML测试 2014-10-07 待测程序测试程序  通过XmlTextReader解析XML  通过XmlDocument解析XML  通过XmlPathDocument解析XML  通过XmlSerializer解析XML  通过DataSet解析XML   通过XSD Schema对XML文件进行验证  通过XSLT对XML文件进行修改  通过XmlTextWrite对XML文件进行写操作  比较两个XML文件是否严格相等  不考虑编码方式,比较两个X

《软件测试自动化之道》读书笔记 之 基于Windows的UI测试

<软件测试自动化之道>读书笔记 之 基于Windows的UI测试 2014-09-25 测试自动化程序的任务待测程序测试程序  启动待测程序  获得待测程序主窗体的句柄  获得有名字控件的句柄  获得无名字控件的句柄  发送字符给控件  鼠标单击一个控件  处理消息对话框  处理菜单  检查应用程序状态  示例程序参考 本章主要讲述如何使用底层的Windows自动化技术通过用户界面来测试应用程序.这些技术涉及Win32 API的调用(比如FindWindow()函数)以及想待测程序发送Wind

《软件测试自动化之道》读书笔记 之 基于反射的UI测试

<软件测试自动化之道>读书笔记 之 基于反射的UI测试 2014-09-24 测试自动化程序的任务待测程序测试程序  启动待测程序  设置窗体的属性  获取窗体的属性  设置控件的属性  获取控件的属性  方法调用  待测程序代码 测试自动化程序的任务 返回 基于反射的ui测试自动化程序,要完成的6项任务: 通过某种方式从测试套件程序中运行待测程序(AUT: Applicaton Under Test),以便于两个程序之间进行通信 操纵应用程序的窗体,从而模拟用户对窗体所实施的moving和r

软件测试自动化…python学习到什么程度?代码好不好学!

软件测试自动化-python学习到什么程度?代码好不好学! 原文地址:https://blog.51cto.com/dotest/2386341