漫谈测试技能——初识UI自动化

本文探讨了软件测试中的重复性工作,并提出通过自动化手段解决这些问题的方法。具体介绍了自动化测试的基本步骤及其实现过程。

    人们常说“懒惰是程序员的美德”,因为程序员通常无法忍受重复低效的工作,所以他们通过编写软件程序,帮助人们解决问题,从而达到一劳永逸的效果。与程序员有所不同,测试工程师身上的美德有细心、耐心、可以胜任重复的工作等等。那么,作为测试工程师,我们是否也应该拥有“懒惰”的美德呢?我们是否需要在重复工作的过程中去思考和探索让工作“一劳永逸”的方法?

【发现问题】

    在软件测试工作中,通常会有一个“回归测试”的环节,“回归测试是指程序员修改了旧代码后,测试工程师对项目重新进行测试以确认修改没有引入新的错误的过程。有时我们需要在短时间内回归测试软件系统大量的历史功能,有时我们需要每周回归测试软件系统的核心功能,有时我们还需要在版本发布前进行繁琐的配置,这些工作几乎是我们工作中很常见又很难改变的“痛点”。

【分析问题】

    如图1-1所示,笔者将这些“痛点”归纳为以下三类。第一类,例如软件系统大版本发布前的回归测试,会需要覆盖所有的历史功能,这类工作内容不仅具有重复性,而且工作量还很大。第二类,例如敏捷模式下的项目迭代,可能软件系统每周都需要发布,自然每周也都需要回归测试系统的核心功能,这类工作与第一类工作相比虽然工作量少了,但是工作频率却高了。第三类,例如发布版本前的参数配置、项目打包和部署过程,这类工作操作比较繁琐,且人为操作难免会有误操作。这些“痛点”工作除了有上述特点外,还有一个共同的特点:有规律。不管是重复的回归测试还是繁琐的配置打包工作,它们都有一定的规律:变化中也有不变。不变的内容可以是不变的操作,不变的流程,不变的周期等等。识别和确定问题的规律后,我们就可以尝试让这些“痛点”工作内容“一劳永逸”化。

图1-1 测试“痛点”场景

【解决问题】

    以【爱测角】网站内容为例,每个迭代版本只要开发人员修改了网页的代码,就需要进行基本功能的回归测试工作,而这些测试工作大部分是不变的。

    如图2-1所示,【爱测角】网站的回归测试的操作内容可以归纳为五个步骤。第一步,测试前,打开浏览器;第二步,打开网站后查看和操作页面的元素;第三步,验证页面显示和操作结果是否符合预期;第四步,记录和输出验证结果;第五步,测试后,关闭网页和浏览器。

图2-1 爱测角_测试步骤

         以上五个步骤,也分别对应了自动化测试流程的五个环节,如图2-2所示:首先,测试前需要准备好测试环境;之后,执行测试步骤;紧接着,执行测试断言,也就是判断执行的结果是否符合预期;然后,输出测试报告,显示自动化验证的结果;最后,还原测试环境,释放系统资源,让测试环境回归起始状态。

图2-2 自动化_测试流程

【总结】

    通过上文的介绍,我们已经确定了解决“痛点”工作的步骤,剩下要做的就是让这些步骤自动化。例如,本文【爱测角UI自动化测试案例是基于Python和Selenium实现的,其实现效果见《漫谈测试技能——初识UI自动化》原文底部。本文暂不展开分享基于Python和Selenium如何实现UI自动化,因为“懒惰”的做法可以是不唯一的,你也可以带着问题去寻找适合自己的答案。更多内容,【爱测角】见。

适合人群:【学习前提】 1. 具备python3语言基础 【学习人群】 1. 手工测试人员学习UI自动化测试技能 2. 开发人员转岗测试开发岗位 3. 如具有丰富的自动化测经验,本课程可能并不满足你学习计划:1.下载课程中配套的软件资料 2.结合课件中Demo可完成学习任务课程目标:掌握UI自动化测试框架的设计与实现课程简介:UI自动化框架的设计需储备基础知识,方能完成自动化测试框架的实现,如数据驱动、日志、配置文件等AutoUiTestFrame自动化框架的目录结构初步进行规划,目录结构如下:Config 配置文件的目录v  config.ini 配置文件;v  globalconfig.py 获得日志路径、测试用例路径、测试报告路径、测试数据路径;v  Data 测试数据;v  TestData.xlsx 测试数据。Public 公共文件库v  Common 封装的公共的方法n  Commonconfig.py 公共的参数配置:调试过程中的测试数据等;n  DoExcel.py 操作excel(数据驱动);n  Send_mail.py 发送邮件(html);n  ReadConfigIni.py 读取ini格式的配置文件;n  TestCaseInfo.py  测试用例信息;n  Log.py 日志类。设置日志类,其他模块或文件需要日志类时,调用该文件。v  Pages 使用po模式设计的测试页面n  BasePage.py  基类,对一些测试页面公共方法、属性的封装及webdrive一些方法的二次封装;n  Bing.py 测试页面。Report 测试报告v  Log 日志目录n  *****log日志。v  TestReport 测试报告目录n  ***html测试报告。TestCase 测试用例v  TC_bing.py。Run.py  控制测试用例的运行。
根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱测角

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值