测试之巅—自动化测试!

cemaxueyuan cemaxueyuan     2022-12-04     284

关键词:

这些年,自动驾驶的概念很火。

技术图片

 

美国汽车工程师协会提出了六级(L0-L5)分层模型,用来衡量自动驾驶的能力和水平。许多人对这个分类模型耳熟能详。

 

自动化测试和自动化驾驶一样,也是人类的梦想。如何衡量自动化测试的水平呢?

 

有人就参考自动驾驶的分层方法,对自动化测试也进行了类似的分级(参见《人工智能测试的六个层次》、《测试工程师不懂AI,还有未来吗?》等文章)。

 

仔细看完具体的分类内容后,我发现这些分级方法存在模仿过度的问题。

 

由于忽视了软件测试的本质,由于脱离了自动化测试的实际,而划分出在我看来有些错乱的类型。 例如,将难度最高的测试检查点自动化划分为L1层次。

 

给自动化测试分等级,不能偏离测试的基本原理。软件测试是构造测试输入,作用于被测软件,然后观察其实际输出并与期望输出进行比较的过程。

 

软件测试依赖于(1) 测试输入和(2) 期望输出。其中测试输入与测试数据、测试步骤、测试操作序列等概念等价。

 

在已知测试输入和期望输出的情况下,自动化测试成为一个编程问题。无数通用或专用编程语言,例如Python、Java、Robot Framework等,能够帮助我们解决这个问题。

 

编程需要人工。编程之后,测试就可以实现自动化执行。相比完全手动的L0,这个层次的自动化测试是L1。这也是自动化测试领域当今的主流水平。

 

在L1基础上,要想更进一步,需要突破测试输入和期望输出的自动生成。这是两个问题。

 

1,自动生成测试输入

 

在进行软件测试时,测试人员需要精心构造测试数据和测试步骤,以期实现更高的覆盖,发现更多的bug。

 

业界尝试了许多方法,来自动生成测试数据和步骤。例如随机方法、Fuzzing方法、基于搜索的方法、基于模型的方法、基于机器学习的方法等。

 

这些方法或多或少存在以下问题:(1) 生成的用例数量过多,(2) 生成的用例长度过长,(2) 产生的误报率过高,(4) 测试的覆盖率过低等。除了有成本低的优势之外,它们与人工设计相比,质量还相差甚远。

 

测试输入的生成处于研究阶段,可落地成果还较少。倘若突破了测试输入的自动生成,那么我们可以达到L2级的自动化测试。

 

2,期望输出自动生成

 

写过测试用例的人都知道,用例的相当篇幅是关于检查点的。为了一个个检查点,我们需要对说明文档抠字眼,需要与用户、与产品经理、与开发人员反复核对。即使这样,有时候用例失败报bug,结果由于我们的检查点不合理而被打回。

 

这些现象从侧面反映了测试结果判定的难度。结果判定难,关键在于软件的期望输出获取难。这个难题又叫做oracle难题。这里oracle的意思是预言、神谕。可以说,做预言有多难,生成期望输出就有多难。人工都难,自动化就更难了。

 

oracle自动化之难,难于上青天。

 

过去几十年的研究表明,大家对测试oracle自动化基本还没多少办法。倘若突破了oracle生成的自动化,那么我们就可以实现L3级别的自动化测试。

 

只有用例生成、用例执行和结果判定都自动化了,软件测试才能够实现端到端、一站式的自动化。这是自动化测试的终极目标,是测试之巅,是真正的“解放”。

 

技术图片

 

这张图就是我认为的自动化测试等级模型。这个模型很简单,也比较符合实际。说它符合实际,是因为自动化测试的现状就是:用例执行自动化80分,用例生成自动化20分,oracle自动化5分。

 

基于这个实际,任何的新技术、新工具,例如机器学习、人工智能,只有解决了测试真正的瓶颈问题(用例生成和oracle生成),才能算明显地推动了测试的进步。

 

 

如果你处于想学Python自动化或者正在学习Python自动化,Python自动化的教程不少了吧,但是是最新的吗?说不定你学了可能是一年前人家就学过的内容。

 

干货分享一波:2020最新的Python教程。获取方式:加入爱码小哥(主页获取加入方式)干货群,私信管理员语嫣获取。

 

剑指安全之巅:知识普及之浅谈模糊测试,深入安全漏洞挖掘方法(代码片段)

...字不易,求个关注与点赞。前言:网上关于安全测试的概念与文章都是用深奥的文章一笔带过,今天我们来谈谈关于模糊测试与漏洞挖掘的问题。在学习模糊测试的过程中,博主感到的是自己知识浅,很多疑... 查看详情

性能之巅绪论

...代码进行性能分析(软件整合之前)执行软件非回归性测试(软件发布前或发布后)针对软件发布版本的基准测试目标环境中的概念验证(Proof-of-concept)测试生产环境部署的配置优化监控生产环境中运行的软件9.特... 查看详情

python自动化教程jmeter性能测试

参考技术Apython自动化教程Jmeter性能测试25套高级软件测试,性能测试,功能测试,自动化测试,接口测试,移动端测试,手机测试,WEB测试,渗透测试,测试用例设计,黑盒测试,白盒测试,UFT高级测试,Android测试,Selenium3自... 查看详情

浅谈自动化测试

...,对提高软件质量起着重要作用。随着软件测试的发展,自动化测试技术也得到了很大提高。本文首先介绍了自动化测试的概念、分类和现状,并分别对不同端上的自动化测试实现原理进行了详细地分析和阐述,通过对目前主流... 查看详情

30个接口自动化测试面试题,赶紧收藏

2.为什么要进行接口自动化测试?答:接口自动化测试可以提高测试效率,减少人工测试的工作量,同时可以更快地发现和解决问题,提高软件质量。3.接口自动化测试的优点是什么?答:接口自动化测试可以提高测试效率、减... 查看详情

·自动化测试_测试流程-1

1.分析自动化测试需求当测试项目满足了自动化的前提条件,并确定在该项目中需要使用自动化测试时,便可以开始进行自动化需求分析。此过程需要确定自动化测试的范围,以便建立自动化测试框架。 2.制定自动化测试计... 查看详情

web自动化测试---xpath

参考技术A1.1什么是自动化测试首先比较一下手动和自动:1.1什么是自动化测试自动化测试的概念:软件自动化测试就是通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动化测试,他是软件测试的一个重要... 查看详情

自动化测试

自动化测试和性能测试不一样,性能测试主要是对服务器的性能做测试,而自动化测试是从前端考虑,其目的旨在于替代部分手工测试、考量客户端长时间运行的稳定性。不管学习哪一个终端的自动化测试,熟练掌握一门编程语... 查看详情

自动化测试

这几年自动化测试比较火,对于初学者,啥叫自动化测试?自动化测试分为:UI自动化测试、接口自动化测试(可以是手工的/postman--chrome插件)、性能测试(自动化测试)、单元测试(自动化测试)最重要的是分层测试(分层金... 查看详情

自动化测试——何为自动化测试,为何自动化测试

概述我们主要就接口功能自动化测试从两个方面做一些交流,一是何为自动化测试,二是为何自动化测试,同时包含关于下面三个问题自己的一些认识:明确自动化测试开展原由明确自动化测试开展方式明确自动化测... 查看详情

自动化测试——何为自动化测试,为何自动化测试

概述我们主要就接口功能自动化测试从两个方面做一些交流,一是何为自动化测试,二是为何自动化测试,同时包含关于下面三个问题自己的一些认识:明确自动化测试开展原由明确自动化测试开展方式明确自动化测... 查看详情

持续测试破解自动化测试的行业谜题

谁说自动化测试发现不了BUG?每一个质量保障团队对自动化的投入都会面领着管理者价值拷问,例如自动化测试发现了多少BUG,自动化测试能不能发现BUG等一系列的问题。虽然任何一个内行人都知道自动化测试是必不可少的环节... 查看详情

自动化测试用例设计

一、了解自动化测试的目的和作用  自动化测试是为了让测试人员从繁琐重复的机械式测试过程中解脱出来,把时间和精力投入到更有价值的地方,从而挖掘更多的产品缺陷。目前自动化测试更多的是定位在冒烟测试和回归测... 查看详情

自动化测试用例设计

一、了解自动化测试的目的和作用  自动化测试是为了让测试人员从繁琐重复的机械式测试过程中解脱出来,把时间和精力投入到更有价值的地方,从而挖掘更多的产品缺陷。目前自动化测试更多的是定位在冒烟测试和回归测... 查看详情

如何做自动化测试?什么是自动化测试?

自动化测试究竟能给我们带来什么好处?更节省成本?测试更快?彻底取代手工测试?带着这些问题,我们一起来学习自动化测试怎么做。什么是自动化测试?自动化测试,是指软件测试的自动化,软件测试就是在预设条件下运... 查看详情

测试自动化

测试自动化的目标是降低测试成本自动化测试的目标是1.迅速检测出新版本中的不稳定的变更2.尽可能迅速暴露回归程序错误3.快速报告问题,因而这会使程序错误修改更容易自动化测试比手工测试拓展的测试范围:负载测试:200... 查看详情

新手如何开始学习自动化测试?

对于测试人员来说,不管进行功能测试还是自动化测试,还是性能测试,都是需要编写测试用例,所以我们必须先要了解清楚手工测试用例与自动化测试用例的一些特点,才能更好的开展自动化测试工作。  1.1手工测试用例和... 查看详情

测试行业是该选择手动测试还是自动化测试?

...行业中,争议最大的话题是“更好的是手动测试还是自动化测试”。尽管自动化测试最常谈论流行语,并且正在慢慢主导测试领域,手动测试的重要性不可忽视。在本文中,将探讨手动测试和自动化测试之间的更深差异。&... 查看详情