浅谈UI自动化测试

??1.浅谈自动化
自动化测试的价值
传统的商业模式以业务驱动产品,而现在则以技术驱动产品
。特别是在敏捷模式下,产品迭代速度快,市场不断调整,客户需求不断变化。单纯的手工测试越来越无法适应整个变化的过程。QA人员如何快速响应并保证产品在上线后质量能够满足市场要求(简单说,如何在上线一个新功能的同时快速对老功能进行回归测试,保证老功能不被新功能影响而出现严重的Bug),如何通过技术手段提高测试效率?
显然,对于这些问题,采用自动化测试无疑是一个不错的选择。能够做到在保证产品质量
的同时提升测试效率
。
岗位要求
如今,对于软件测试工程师来说,仅仅会手工测试已经无法满足岗位要求,我们从招聘网上相应的岗位要求中可以看到,很多都需要要求懂自动化测试、有自动化测试的经验,我们在面试的过程中也会经常碰到相关的面试题,比如:你会自动化测试吗?在以往的工作经历中有自动化测试的经历吗?自动化测试如何落地?你们是怎么做自动化测试的呢?等一系列问题。
??2.UI自动化的本质
UI:User Interface 用户界面
把手动测试的一系列动作转化成机器自动执行。
- 打开网站(比如:打开淘宝网站)
定位元素
(比如:定位到搜索输入框)操作元素
(比如:在搜索框中输入秋装,点击搜索)模拟页面动作
(比如:下拉、上滑等)断言结果
:预期结果与实际结果比对,判断是否通过测试。生成报告
场景:打开淘宝网站,在搜索框中输入内容,点击搜索,查看搜索结果和预期要搜索的结果是否一致。
??PS:做自动化不能跨步走,要一步一步的执行,手工怎么执行自动化就怎么执行。
??3.适合自动化测试场景
-
需求不会频繁变动
:因为需求频繁变动,页面的功能就会频繁变动。(比如敏捷迭代项目,V1.0版本已经上线了,后面只是在V1.0的基础上加一些新的功能,就可以对V1.0版本的老功能进行自动化测试) -
UI比较稳定
:因为UI自动化就是基于UI。 -
项目周期较长
-
大量的回归测试任务
:大量的重复的回归的测试任务,不断的迭代,需要回归老功能。 -
冒烟测试:针对本次迭代的新功能(核心的、主干的功能,大概10%~20%)进行冒烟测试。如果冒烟不通过就不接受这个版本的测试。
冒烟测试知识点补充: ①冒烟测试指软件经过修改后,对其关键功能进行测试。 ②为防止出现时间、人力资源的浪费,只有在通过冒烟测试后,系统方可进入全面测试阶段。 ③冒烟测试用于确认是否让测试人员进入到对新版本的测试工作中。 ④进行冒烟测试时,不需要返测上一版本中所有已知的缺陷。
-
回归测试:对老功能进行回归测试。
??4.不适合自动化测试的场景
- 交互性太强的
- 视频播放器(无法判断正在播放的是什么、无法分析是蓝屏还是黑屏)
- 音频播放器
- 打电话
??5.UI自动化测试设计原则
一个case完成一个功能点测试
:一个自动化测试用例对应一条手工测试用例。一个脚本是一个完整的场景
(比如:打开淘宝网站,选择分类,添加某一个商品到购物车,支付,查看订单详情。)脚本之间独立,不能有依赖
(比如:有10个脚本,第1个脚本是登录,后面9个脚本依赖于登录,若第1个脚本失败,后面9个脚本就无法执行。)设置合适的检查点
:断言结果,检查预期结果与实际结果是否一致。设计良好的框架
(比如:unittest框架)