转:对UI自动化测试的一些感悟
不断发掘自动化测试对各个团队的附加价值,这样才能得到来自四面八方的支持,没有将自动化加入项目过程的自动化都达不到预期的效果。
UI自动化框架
把UI自动化框架设计成一个拼图性质的架构。把每个特性都设计成一个独立的部分,然后组装成UI自动化框架:
(appium/webdriver)底层操作封装特性
Page Object特性
测试用例管理特性
测试执行引擎特性
测试报告管理特性
测试数据管理特性
keyword特性
自动化原则:
1.选择重点业务
2.选择较稳定的版本业务
3.目标是保证主要功能业务完整正常,而不是为了发现更多的bug
4.并不能减少人力成本,主要作用是加快测试反馈,提高测试质量
5.录制回放,关键字驱动,可视化等一般不是好的选择,因为他们会增加6.脚本维护的难度,增加维护成本
7.任何增加维护成本的自动化工作都是在耍流氓
如何减少自动化维护成本?
1、清晰、方便的日志查看
2、清晰整洁的测试报告
3、快速的脚本调试
4、快速的错误定位方式:如截图、错误日志、录屏
5、严格的脚本规范
6、在策略上,脚本慢慢上,要非常稳定了才能上线到正式环境
7、定时开展培训分享工作,提升大家的能力。写UI自动化不只是工作任务,更是自我提升的过程
8、要有稳定的环境、稳定网络,可以进行网络监控、定时重启等等
UI自动化框架优化方案:(在不增加维护成本前提下)
1.UI自动化框架加入录屏模块
2.UI自动化框架加入接口请求报错模块
3.UI自动化框架加入接口流程对比模块
4.UI自动化框架加入用例成功率、用例增长率等图表展示度量模块
5.UI自动化框架加入web平台支持,如用例集管理,异步执行
6.UI自动化框架加入监控核心场景的性能,如网络、启动速度、内存消耗等
7.UI自动化框架加入报错时取内存快照、报错堆栈等信息
8.自动化测试环境一键搭建部署
UI自动化脚本可分为3种:
1、监控脚本,监控服务器是否正常,监控每个页面是否能正常显示
2、主流程脚本,监控主流程是否能正常运行
3、模块脚本,优先级较低,一般也是重点业务模块先做
已经实现自动化的模块可以不做手工测试了吗?
为了不做手工测试,就要多加很多验证点,特别是UI的验证点。验证点越多,就会导致自动化越不稳定,自动化的维护成本就会越高,
你对自动化的信心就会越低,自动化的成效也会越低。所以已经实现自动化的模块还是可能需要做手工测试。
那么自动化测试的意义何在呢?
- 自动化用执行次数来增加价值,执行次数越多,自动化价值越大。比如执行5次刚好成本和价值等价,那么每多执行一次,自动化的价值就越多。
- 特别是那些需要重复进行UI操作,比如适配测试,需要适配几十个机型,是自动化去执行好呢还是一个个的手工执行好呢。
- 我们不使用自动化去保证UI的准确性,而是去进行逻辑功能的测试。比如QQ的登录功能,我们只要验证点击登录后打开了好友列表,就说明登录成功了。就是要怎么稳定怎么弄。
- UI自动化主要作用是保证业务流程的贯通
- UI自动化能够帮助我们确保不会出现一些死人的问题,比如登录不成功,页面打不开等等。
UI自动化公式:
自动化收益 = 有效迭代次数 x 手工测试成本
自动化成本 = 脚本创建成本 + 维护次数 x 维护调试成本 + 脚本失败次数 x 脚本排错成本
其他
1.测试工具、框架和自动化测试脚本本身的质量是最需要保证的,需要对测试工具、框架做单元测试
2.自动化可以模拟用户真实的场景,如让用户在一个页面等待10分钟或锁屏、解锁,该app是否还生存
3.把手工用例与脚本生成的用例文档进行对比,提示当前有哪些用例需要维护
4.在代码集成到主干之前或之后先执行自动化,只要用例失败(可以设阈值),则不能集成或回滚
5.持续集成并不能消除bug,而是让它们非常容易被发现和修复
6.自动化要集成到持续集成过程中,目的是加快测试反馈,降低测试引入、发现到修复之间的时间间隔
7.速度是评估测试价值的最重要考虑因素之一
转:对UI自动化测试的一些感悟的更多相关文章
- 【转】 UI自动化测试的关注点
我发现了,大家极度关心自动化测试,尤其是UI自动化测试,虽然现在作为专项测试,离开这些越来越远了,但总能遥想以前,我总能想起自己做nokia的WindowsLive的ui自动化,做web的自动化测试, ...
- 腾讯优测优分享 | 游戏的UI自动化测试可以这样开展
腾讯优测是专业的自动化测试平台,提供自动化测试-全面兼容性测试,云真机-远程真机租用,漏洞分析等多维度的测试服务,让测试更简单! 对于目前的两大游戏引擎cocos-2dx.unity3D,其UI自动化 ...
- 使用WatiN进行UI自动化测试
Watin是一个UI自动化测试工具,支持ie/firefox,官方网站:http://watin.org/. 主要有以下特点: 支持主要的html元素,见:http://watin.org/docum ...
- 如何正确选择UI自动化测试
近年流行一个词-UI,和UI搭边好像都那么高大上,软件测试行业也不例外,比如UI自动化测试. 常见的UI自动化测试程序有哪些呢? l 带UI的Unit Test,比如mock掉底层代码,仅仅测试UI ...
- UI自动化测试框架(项目实战)python、Selenium(日志、邮件、pageobject)
其实百度UI自动化测试框架,会出来很多相关的信息,不过就没有找到纯项目的,无法拿来使用的:所以我最近就写了一个简单,不过可以拿来在真正项目中可以使用的测试框架. 项目的地址:https://githu ...
- 【转】Web UI自动化测试原理
目前市面上有很多Web UI自动化测试框架,比如WatiN, Selinimu,WebDriver,还有VS2010中的Coded UI等等. 这些框架都可以操作Web中的控件,模拟用户输入,点击等 ...
- 关于去哪儿网的UI自动化测试脚本(Python实现)
UI自动化测试Qunar机票搜索场景访问Qunar机票首页http://flight.qunar.com,选择“单程”,输入出发.到达城市,选择today+7日后的日期,点“搜索”,跳转到机票单程搜索 ...
- UI自动化测试(三)对页面中定位到的元素对象做相应操作
前两天分别讲述了UI自动化测试基础以及对页面元素该如何进行定位,这一篇自然就是对定位到的页面元素对象进行相应操作啦. 阅读目录 1.常用操作元素对象的方法 2.鼠标事件操作 3.键盘事件操作 4.We ...
- Selenide UI 自动化测试
我没有拼写错误,确实不是 Selenium ,但是,只要是 Web UI 自动化测试框架,基本上都是基于Selenium 的.Selenide 也不例外.那为啥不直接用Selenium呢? 因为 ...
随机推荐
- vs2017创建.net core 应用程序,发布到Linux
1.打开vs2017,创建.net core 应用程序 压缩上传到linux
- JAVA工程师-蚂蚁金服电话面试
今天5点半接到一个杭州的电话,是蚂蚁金服打来的,当时心里一阵发慌,由于还在上班,就和面试官约定6点下班之后再来.挂完电话,心里忐忑的不行,感觉自己这也没准备好,那也没准备好.剩下半个小时完全没有心思再 ...
- 5行代码实现微信小程序图片上传与腾讯免费5G存储空间的使用
本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频 ...
- python的设计原则及设计模式
python的设计原则及设计模式 七大设计原则 单一职责原则 [SINGLE RESPONSIBILITY PRINCIPLE] 一个类负责一项职责. 里氏替换原则 [LISKOV SUBSTITUT ...
- LODOP批量打印多页模版进行维护
批量打印的时候,可以循环多任务,也可以循环多页,很多的时候也可以分页分任务,分组打印.如果是一个任务里的多页相同的模版,一个任务中会有很多打印项,这些打印项在每页中的位置是相同的,如果要调整,调整结果 ...
- react-navigation 简介
StackNavigator: 原理和浏览器相似但又有局限,浏览器的方式是开放性的,通过点击一个链接可以跳转到任何页面(push),点击浏览器后退按钮,返回到前一个页面(pop).StackNavig ...
- 作业二:Git的安装与使用
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 分布式版本控制系统Git的安装与使用 1.下载安装配置用户名 ...
- [十二省联考2019]字符串问题——后缀自动机+parent树优化建图+拓扑序DP+倍增
题目链接: [十二省联考2019]字符串问题 首先考虑最暴力的做法就是对于每个$B$串存一下它是哪些$A$串的前缀,然后按每组支配关系连边,做一遍拓扑序DP即可. 但即使忽略判断前缀的时间,光是连边的 ...
- 小程序运行报错:errMsg: "request:fail url not in domain list"
错误原因: 报错提示说请求的url不在域名列表里,应该是还没有配置服务器域名 解决方法: 可点击开发者工具右上角 详情-项目设置-不校验合法域名.web-view(业务域名).TLS 版本以及 HTT ...
- luogu3346 诸神眷顾的幻想乡 (广义SAM)
首先,让每一个叶节点做一次树根的话,每个路径一定至少有一次会变成直上直下的 于是对于每个叶节点作为根产生的20个trie树,把它们建到同一个广义SAM里 建法是对每个trie dfs去建,last就是 ...