最近的一年主要精力都放在自动化测试上了。前半年是手机客户端的自动化测试,主要是冒烟测试,一个平台大概200条用例的量,平均一个平台3个人力,在完成日常的系统测试之余,花了半年时间做起来的。接下来的半年是维护,比较大的问题是测试平台的支持不够及时,以及真机的损耗很大。而且客户端测试的一个短板在于测试覆盖度很小,冒烟测试,简单说就是最基本的功能测试,一般都是正常的用例,很少涉及异常的用例。对于一个仍然不断增加新功能的APP应用而言,大部分的工作还是要依靠测试人员手工完成。如果是一个很稳定的APP,类似QQ这种的,大量的客户端测试还是有相当客观的收益的。
后半年在研究后台自动化测试。几年前也做过一个Web项目的CGI接口测试,用Jmeter做的,http协议的,门槛是要学习Jmeter的使用,不算复杂,应用效果也是不错的,不仅可以用于日常测试,也可以用于线上监控。现在的这个APP是一款直播类应用,后台分为接入层和逻辑层,接入层是TCP协议,负责鉴权和转发,逻辑层是自定义的UDP协议,负责大部分的逻辑处理,且内容是二进制的。因此并不适合用Jmeter来做。这里选择自己写基于Python的测试脚本。Python有丰富的第三方库,对于收发包,组包和解包都能实现。而且还能自由得根据自己业务特点进行个性化定制。缺点是有一定的编程门槛,自研的框架没有成熟的框架那么简单好用。
说了这么多,本文并不是介绍自动化测试经验的。而是要给那些认为实施了自动化测试就能解决问题的测试人员提一个醒:
1、自动化测试非常的劳民伤财(本人的经验,基本需要半年以上时间才能看到成效),是否要做自动化测试要考虑很多因素:产品的发展阶段,团队能力,ROI等。最最重要的是能否解决痛点问题。自动化测试本质上还是工具辅助测试,部分或全部得替代一种手工测试,其目的是让测试人员可以有更多时间去解决工具解决不了的问题。
建议:明确自动化测试的目标,增量得推进自动化测试。
2、后台测试一般会分为接入层的测试和逻辑层的测试。自动化测试实施在接入层,还是逻辑层,或者都需要,是测试人员需要考虑的问题。后台架构比较简单,且很少依赖第三方的产品,做接入层的自动化测试比较常见;对于后台架构比较复杂,有较多第三方依赖的产品,做逻辑层的自动化要更容易一些。原因和单元测试能够带给我们更多好处类似:
a、速度更快:使用一小部分代码就能运行起来的测试,比要调用多个组件甚至整个应用程序要快得多
b、有良好的可伸缩性:逻辑层的测试比较独立,能随着应用的规模线性伸缩,接入层的测试中,多个组件之间会有依赖关系,会遇到伸缩问题,导致测试用例的维护成本非线性增加。
c、逻辑层的测试用例,跟具体的代码块相关,可以让只针对变更代码进行测试变得很容易,更能为开发提供快速反馈
(ps: 单元测试的好处参考来源http://www.infoq.com/cn/articles/design-for-testability)
3、不要为了自动化而自动化。自动化测试有时候并不是最优的解决方案。
举个最近几天发生的例子:有一个线上运营的产品,商家会不定期进行一些更新(平均每月不到1次),由于更新时没有遵循规范,导致页面打开出问题。针对这个问题,PM提出这里应该增加监控措施,开发和运维讨论后觉得只能采用基于UI的自动化测试方案(因为需要登录态)。该产品的测试人员首先考虑的是这个解决方案自己有没有技术能力实现,以及有没有时间去做这件事。事情发展到这里,有问题么? 有!想想UNPHAT原则(我的另一篇博客里有解释http://sharley.iteye.com/admin/blogs/2382789):在彻底了解你的问题之前,不要急着去寻找解决方案。我提醒该测试人员进一步挖掘问题的根源,从而把思考问题的解决方案从监控结果转移到监控变更,因此有了候选方案,监控配置变更+人工检测页面,在频率极低的情况下,这不失为一个低成本的解决方案,更进一步的,可以增加智能化的自动检测,后者也要看ROI。前者虽然需要部分人工介入,但是人工成本基本可以忽略,最好让非测试人员去验证(只是看页面是否正常显示,没有任何逻辑,非测试人员也可以做得很好)。
相关推荐
QTP感悟初学测试自动化工具的一点感悟及教你认识自动化测试工具QTP初学自动化测试工具,总结了几点应该注意的重点问题:1、首先必须进行完善的用例设计和测试过程设计使用测试工具进行测试工作的第一步并不是录制...
对于测试帖,可以使用 Sandbox 机制:带有 Sandbox 标签的帖子将视为测试帖,不会显示在首页或是某领域内,只会展现在发帖者自己的帖子列表中。 人性化的回帖交互 实时呈现:回帖提交后其他浏览者可以不刷新...
2023-04-06-项目笔记-第四百三十七阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.435局变量的作用域_435- 2025-03-14
X810基于MATLAB的森林生物声音分析系统
荜拔检验表格(食品香辛料质量验收记录表)检验表格(食品香辛料质量验收记录表).docx
统计数据主要包括全球的4G(LET)、3G(UMTS)、2G(GSM)、2G(CDMA)的基站数据,我国5G基站数据并没有统计到。SHP格式,大小有126M,记录了474万多个点,数据可以直接在GIS软件中打开。
核心内容与优势: 一站式知识体系:覆盖SpringBoot核心功能(自动配置、Starter依赖)、Web开发(RESTful API设计)、数据库集成(MyBatis/JPA)、安全框架(Spring Security)及企业级实战项目搭建。 深度项目驱动:通过电商后台系统案例,分步拆解环境配置、多模块工程架构、日志监控、单元测试等关键环节,附带可运行的源码模板。 效率提升工具:提供Maven/Gradle依赖冲突解决方案、整合IDEA高效插件配置、包含常见报错排查手册 适用人群: Java后端入门者快速掌握SpringBoot技术栈 需要完善知识体系的进阶开发者 毕业设计/企业级项目搭建参考
C++数据结构与STL容器总结
该项目背后的想法是为视频创建一个标签,它完全基于 Python + OpenCV,因此非常易于定制。可以很容易地更换整个贴标管道,或者可以更换或添加部件
蓝色简约大学生职业生涯规划PPT模板.pptx
基于单片机的音乐律动播放器音乐盒串口远程控制(LCD1286 1100056-基于单片机的音乐律动播放器音乐盒串口远程控制(LCD12864、六首音乐、PWM调频、音频编码、源代码、仿真、流程图、物料清单、Proteus) 功能描述:基于单片机的音乐律动播放器音乐盒实现的功能有:在单片机内提前对音乐编码后,选择需要播放的音乐,使用蜂鸣器实现音乐的播放。 根据不同的音频信号输入软解码实现音乐律动,通过LED灯展示出来。 可通过串口实现远程控制,通过输入1-8的数字即可对应1-8号按键的功能控制系统的功能运行。 使用按键和串口均可直接控制音乐播放器进行音乐播放的功能。 有哪些资料: 1、仿真工程文件 2、源代码工程文件 3、原理图工程文件 4、流程图 5、元器件清单 6、汉字字模提取软件 7、简谱编码教程 8、流程图(visio版本与word版本) ,核心关键词:单片机;音乐律动播放器;串口远程控制;LCD12864;六首音乐;PWM调频;音频编码;仿真;流程图;物料清单;Proteus;按键控制;音乐播放。,单片机电控音乐盒:串口远程控制与音乐律动展示
岩石裂缝渗透过程模拟 地下中的水受高压的影响,进入岩层中裂缝向侧边渗透,在此过程中由于温度及液体与岩土层的作用导致岩层的性质改变,内应力增加,可以通过仿真分析此过程中岩层的应力、应变、温度等分布情况 《长期寻找仿真技能的大神加入工作室》 #comsol#仿真模拟#岩层#岩石裂缝#渗透#模型 ,关键词:岩石裂缝;渗透过程;模拟;高压;温度;内应力;仿真分析;岩层应力;岩层应变;温度分布;Comsol仿真。,《岩石裂缝渗透过程仿真模拟与岩层性质变化分析》
泡萝卜检验表格(食品企业农副产品质量验收记录表).docx
固定翼无人机行业剖析:中无人机占最大的中国市场份额,约为29%.pdf
13届蓝桥杯嵌入式省赛真题2+代码.zip
内容概要:本文介绍了一种新的端到端可训练方法——局部自适应变形模型(LAMM),用于直接操纵3D网格形状并进行高效重建。通过对稀疏控顶点的置换输入来转换几何编码器,LAMM能够在一次前向传播过程中同时实现局部细节的精细控制与整体外观保持一致。实验表明LAMM在人脸3D头部和手部数据集上均展示了卓越的空间解缠能力和高效推理性能,在内存占用和运行速度上大幅优于现有方法。此外,该架构支持高分辨率3D网格建模,实现了高效的单线程CPU推理。它还提供了一系列高级编辑操作,如对象区域的互换和样本抽取等功能。最后作者开放了源代码供未来研究使用。 适合人群:从事计算机视觉领域的研究人员和技术人员;特别是关注3D物体生成与编辑方向的人群。 使用场景及目标:可用于面部雕刻应用中的表情增强以及数字人物动画的制作工具。此外还可应用于医学影像生成、影视特效等领域内的虚拟人偶建模任务当中,以提高工作效率并降低成本。由于LAMM能够在普通CPU上快速运行,因此可以广泛适用于不同硬件配置环境下的高性能3D模型开发需求。 其他说明:本项目已开源,感兴趣的开发者可以在GitHub上获取更多资料并参与到后续工作中去。
HTCC陶瓷基板市场剖析:HTCC陶瓷外壳是最大的细分市场.pdf
复配着色剂(柠檬黄)检验表格(食品添加剂食用香精质量验收记录表).docx
三相异步电机矢量控制调速系统,附赠参考文献 1)采用转速、转矩、磁链、电流4+闭环控制; 2)转速环采用PI控制; 3)转矩环采用PI控制; 4)磁链环采用PI控制; 5)电流环采用PI控制; 6)采用SVPWM矢量控制; 7)跟踪性能良好,当转矩发生变化时能够快速跟踪稳定转速; 8)各个模块功能分类明确,容易理解 ,三相异步电机; 矢量控制调速系统; 4+闭环控制; PI控制; SVPWM矢量控制; 跟踪性能; 模块功能分类