专项测试怎样才“好玩”

news/2024/5/1 23:04:39/文章来源:https://www.cnblogs.com/ceshi2016/p/16800328.html


01 关于测试分层

 

 

为什么我不吐槽那位产品经理呢?实际上,很多测试人员也没搞清楚在UI测试层我们应该做些什么。如上图,对于左边的测试金字塔,我相信很多测试人员都很清楚,也很向往自己的团队真的能够做到。但是呢,对于每一层的目标是否清楚?我见过很多人,在单接口测试时,断言做得很简单,而在多接口的场景测试中,加入了大量的非业务断言。在UI自动化中,去做很多数据校验,导致代码臃肿,变得难以维护。如上述两种情况,怎么能算是做好“分层”呢?所以应该对齐下右边的目标是什么。单元测试:在笔者接触的团队中,做好单元测试的人非常少,所以这方面的实践也比较少。简单而言,对于单元测试,其实和业务的关联性并不太大。在这一层,主要验证的是代码的逻辑是否存在问题,关注语句覆盖、判定覆盖、条件覆盖、路径覆盖等内容。(如有不对,请指教,这方面确实经验少。)接口测试:接口测试主要分两类:单接口测试及多接口场景测试。先说第一种,对于单接口的验证,主要集中在接口的返回结构是否与文档定义是否相一致,是否能满足业务需求。同时也关注异常入参、非法入参时,接口是否能正常捕获异常,返回业务可接受的信息(直接抛出代码异常非常不可取,用户体验极差,还有安全风险)。最多,再校验下数据是否正确(理论上数据返回的正确与否应该在数据层做验证,考虑到实际情况,可以放到单接口用例中去做验证)。再说说第二种:多接口场景测试,在这类测试中,我们应该更关注于接口间的数据传递、数据状态是否正常,数据流转是否正常。断言应该更集中于那些和业务形态相关的字段上,而不是过多地去校验一些没有变化的数据。为什么呢?因为数据结构等问题应该在单接口中被验证,而不是耦合到这里来。这样做的好处是,当接口发生变更后,我们只需要更新单接口的用例即可,如果影响到接口间的调用,再更新场景接口即可,(通常接口的变更不应该影响到已有业务的调用。即使有影响到,我们也能够快速分析出来,而不是混合在一起,不知道是哪里出了问题)脚本的可维护性会大大的增强。UI测试:等到了UI层,我们已经不再需要关注业务数据的正确性了,因为在接口层已经做了保证,如果发现问题,应该去补充接口用例,而不是在UI层去校验这些内容。在UI层,我们应该关注的是页面元素是否正常展示,按钮是否可用,交互是否能够正常跳转等体验性的问题。

 

02 做好专项测试

在梳理清楚了分层测试的基本思路后,我们再来聊聊专项测试,专项测试一般是指基于某些特别明确的目标而进行的测试。从这个角度上讲,接口和UI也算是专项测试,一些常见的专项测试还包含:性能测试、安全测试、弱网测试、兼容性测试、健壮性测试等等。接口专项测试:接口测试是测试人员接触、练习代码能力很好的一个入口。关于接口测试,可以参考笔者之前的文章(接口测试平台演进思考、你写的接口脚本合理么)。这里再说一点。接口测试是练习代码能力的一个入口,但现在大家好像都停在这个口子上了,各类接口平台层出不穷(某个200人群,据说基本上人手一个接口平台,吓得我差点退群),都在这里卷,并不是个好现象。测试环节中,还有很多痛点值得大家去解决的。比如测试数据管理、测试环境治理等,期待有新的东西出来。UI专项测试:关于UI自动化测试的工具,可参考朱老师的文章(https://mp.weixin.qq.com/s/U769tMdt2dvrSccb5br1GA)。工具并不是主要的,希望大家还记得上文提到的分层思路,做UI层做该做的事。从收益最大化模块入手,优先级:稳定模块 > 有影响风险的旧模块 > 新模块。并做好对于UI自动化测试的预期管理,它并不能一键傻瓜式地解决问题,需要有较好的前端规范,否则脚本维护会是个大问题。性能专项测试:这些专项测试中,其实性能笔者是做得最久的,现在性能也得到了大家的关注。但是很多人对性能的基本概念理解存在偏差。例如,大家对“并发数”这个指标特别关注,动不动就上百万的并发(双11 才多少),太吓人了。实际上,除了某些特定的场景(抢红包、秒杀等活动),并发的意义并不大,持续压测的过程中,并没有严格意义上的并发(实际的业务中,大多数业务也没有严格的并发,而是持续不断产出压力),我们更多考虑的是TPS或者QPS能达到多少,这就又涉及到业务模型和测试策略的问题了。大家有兴趣可以看看老张的公众号(文末推荐)。安全专项测试:安全测试需要更专业的技能和知识,一般是由专门安全团队定期进行验证的,这个已经脱离了一般的测试范畴了,简单地使用工具扫一扫,并不能算安全测试。笔者也没有深入了解过,有机会找个大牛写一篇。弱网专项测试:虽然现在网络的速度在不断地提升,WIFI的覆盖率也在增加。大家似乎都很少遇到弱网的情况。但是在一些特别的场景下,比如人多的地方,比如车库等,还是会存在弱网的情况。所以弱网的专项测试还是非常有必要的。目前在测试移动设备上进行弱网络专项测试的方案主要有3种:

  1. Fiddler等通过设备连接到PC上进行弱网络测试

  2. ATC、Wetest-WiFi等在专有服务器上构建弱网络WiFi,移动设备连接该WiFi进行弱网络测试

  3. 还有一种就是以APP独立存在,提供弱网络模拟服务,如弱网测试工具QNET。

其他专项测试:还有诸如兼容性测试、兼容性测试、健壮性测试等等,就不展开介绍了。

小 结

基于分层测试思路,我们在做专项测试时,需要有针对性地去做验证。其实每个专项展开来讲,都会有很多的内容,本文篇幅有限,主要思考的还是如何去开展这些专项测试,至于工具的使用,现在有太多的工具可选择了。以终为始,希望测试同行们在提升代码能力的同时,不忘初心,记住我们是为了什么目标而开展专项测试,不要让技术偏离业务,而成为炫耀的存在。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_24874.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LAXCUS授权开源协议 第2版

LAXCUS公共许可证 第2版 Laxcus Public License version 2 本许可证是第1版本的延续,仅针对LAXCUS分布式操作系统及其衍生子版本,围绕LAXCUS分布式操作系统设计开发的硬件、硬件驱动程序、应用软件不受本许可证约束。 相比第1版本,第2版本更…

php宝塔搭建MineAdminVue开源基于Hyperf框架后台权限管理系统源码

大家好啊,我是测评君,欢迎来到web测评。 有个朋友前几天发消息给我,让我录制一个开源基于Swoole的后台管理系统搭建教程视频,所以抽时间研究了一下搭建部署流程,现在分享给大家。 系统介绍 这是一套基于Hyperf框架开发…

vmware workstation虚拟机无法连接网络

vmware workstation虚拟机无法连接网络 问题描述:在vmware workstation虚拟机上安装了Debian系统,打开Debian系统后却发现系统无法连接到网络(或者是电脑插入网线虚拟机可以访问网络,但是不插入网线连接WiFi虚拟机无法连接网络&a…

神经网络现状综述,神经网络现状分析

bp神经网络研究现状 BP网络的误差逆传播算法因有中间隐含层和相应的学习规则,使得它具有很强的非线性映射能力,而且网络的中间层数、各层神经元个数及网络的学习系数等参数可以根据实际情况设定,有很大的灵活性,且能够识别含有噪…

保姆教程系列二:国产数据库达梦无缝迁移

系列文章目录 保姆教程系列一、国产达梦数据库安装教程 保姆教程系列二、国产数据库达梦无缝迁移 保姆教程系列三、国产数据库整合Spring boot 文章目录系列文章目录前言简介一、登录达梦监控系统二、新建用户三、开始迁移四、下篇预告总结前言 请各大网友尊重本人原创知识分享…

04流程控制

本文仅作为个人纪录 流程控制 流程控制的作用: 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块 控制语句的分类: 控制语句分为三类:顺序、选择和循环。 “顺序结构” 代表 “先执…

linux服务器如何查看硬盘序列号

命令: hdparm -I 硬盘绝对路径 --其中参数可以使用 “I”也可以使用 “i” ,只是大写的参数展示的数据更详细; 注:这个命令普通用户无法使用,需要使用管理员权限;

网易云ncm,QQ音乐qmc,mgg,mflac,酷狗kgm解锁转换为flac格式

酷狗音乐怎么转换mp3格式?使用酷狗音乐听歌的人比较多,通常我们都是在手机、电脑等有联网的情况听的,而一旦想下载下来在其他设备上听的话,就会碰到问题了。 在酷狗上下歌曲的时候,发现下的是kgm、kgma格式&#xff0c…

ICML 2020 Work shop 图对比GRACE

talk 这篇文章还是有可读的必要性。 关注点: 1. 丢弃边 丢弃节点的 视图增强方法。 2. 不同于原来的 dgi gmi mvgrl 采用 JS散度 或者 Infomax的目标函数,本文采用 infonce。 3. Pubmed数据集引发的 对 评价指标 和 评价方法的 讨论 缺点: …

14天阅读挑战赛(学习建议)

14天阅读挑战赛努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于…

Inductive Entity Representations from Text via Link Prediction

研究问题 使用文本信息完成inductive KGC任务,并在inductive场景下提出了一些新的评估协议 背景动机 现有的基于结构的KGE模型无法处理动态图中新加入的实体,而这在现实生活中非常常见(inductive 场景定义:关系已知、实体未见&…

A-Level真题每期一练(11)

上期真题答案:1.D 2.B 3.D 4.C 5.A 接下来是今天的真题,一起练起来呀~ 1. An indirect tax on the production of a good will have no effect on price if demand is A inversely related to price. B of unitary elasticity. C perfectly elastic. D p…

OpenCV-Python学习(8)—— OpenCV 颜色表操作

1. 知识点 学习查找表 cv.LUT()【look up table】;颜色查找表;函数 cv.applyColorMap() 的使用。 2. cv.LUT() 函数说明 2.1 函数使用 cv.LUT(src, lut, dst)2.2 参数说明 参数说明src表示原始图像。lut表示查找表的地址,对于多通道图像…

mybatis-plus 代码生成工具报错:java.lang.NoSuchFieldError: GAUSS

目录 一、背景 二、问题 三、解决方案 1、网上的答案: 2、自己的方案: 四、总结: 一、背景 框架:springboot2.2.4.RELEASE、mybatis-plus3.3.1版本 二、问题 使用mybatis-plus已集成的自动生成代码框架生成代码 我当时查…

kubernets集群升级

1、环境介绍 操作系统:centos 7.9 kubernetes版本:v1.23 kubelet kubeadm kubectl版本:1.23.4 containerd版本:1.4.13 升级版本:v1.24.6–>v1.25.2 注意:使用kubeadm config升级失败,随改成逐级升级 网络…

系统分析师 - 纲要章节汇总

个人总结,仅供参考,欢迎加好友一起讨论 上午题 - 综合知识 章节考察内容分值计算机组成与体系结构 CISC、局部性原理、流水线、多级存储(Cache,内存,磁盘)、校验码、Flynn多处理机5 - 6操作系统PV操作与前趋图、虚拟存储、位示图…

C++类和对象(三)

文章目录前言1. 再谈构造函数🍑 构造函数体赋值🍑 初始化列表🍑 特性🍅 特性一🍅 特性二🍅 特性三🍅 特性四🍑 explicit 关键字2. static成员🍑 概念🍑 特性&…

推荐有礼 | 京东云推荐返利活动说明

京东云云推客是京东云推出的服务于代理商群体的交易服务平台。为代理商提供可代理产品、分销获客工具、渠道管理工具、对账结算工具等,赋能代理商数字化升级,实现降本增效。京东云云推客是京东云推出的服务于代理商群体的交易服务平台。为代理商提供可代理产品、分销获客工具…

java学习第18步——Docker镜像

Docker管理镜像的一个工具软件1 简介(3个小时搞定)1.1 Docker介绍1.2 解决2个问题(开发时依赖的包版本不一致,软件不一致)2 Docker和虚拟机3 Docker镜像和容器(镜像就是1个压缩文件,Docker软件可以来操作它&#xff0c…

API接口名称(item_search - 按关键字搜索淘宝商品)[item_search,item_get,item_search_shop等]

请求参数:q女装&start_price0&end_price0&page1&cat0&discount_only&sort&page_size&seller_info&nick&ppath&imgid&filter 参数说明:q:搜索关键字 cat:分类ID start_price:开始价格 end_price:结束价…