字节2面,原来我对自动化测试的理解太浅了...
如果你入职一家新的公司,领导让你开展自动化测试,作为一个新人,你肯定会手忙脚乱,你会如何落地自动化测试呢?资深测试架构师沉醉将告诉你如何落地自动kan化测试,本次话题主要分为如下几部分内容:
-
什么是自动化?
-
分层自动化又是什么?
-
如何使用Python实现自动化测试?
-
RobotFramework自动化是不是适合你的境遇?
-
自动化落地成功,怎样日常维护?
01、什么是自动化
有很多人做了很长时间的自动化但却连自动化的概念都不清楚,这样的人也是很悲哀,做这样的职业,却连最基本的概念都不清楚。我给大家列举出来如下(引自《软件评测师第69页》):
自动化测试的定义:
-
自动化测试就是通过测试工具或者其他手段,按照测试工程师的预定计划对软件产品进行的自动的测试,它是软件测试的一个重要组成部分,它能够完成许多手工无法完成或者难以实现的一些测试工作。正确、合理地实施自动化测试,能够快速、全面地对软件进行测试,从而提高软件质量,节省经费,缩短产品发布周期。
如上就是自动化测试标准概念,概括而言,无非就是使用自动化的手段代替人工,但是不是完全代替人工,在这里我不得不指出一个误区,有的人不了解自动化的含义,尤其是一些领导层,认为自动化是万能的,只要自动化做出来,功能测试就可以完全解放了,即使自动化脚本写的再智能,也不可能完全代替手工,并且自动化所耗费的人力也是对于整个项目组很大的开支。所以自动化测试不是万能。
自动化测试的概念引出后,咱们也要介绍一下自动化所包含的种类,在市面上最流行的自动化包括如下种类:
-
UI自动化
-
接口自动化
-
app 自动化
-
单元自动化
-
自动化测试工具(测试开发辅助工具)
种类很多,是不是所有的自动化种类都要在项目开展,这就引出我们新的观点,什么是分层自动化?
02、分层自动化又是什么
先上张图
先来谈谈我在工作中看到的自动化测试的误区:
1、自动化测试脚本在完成后因为产品更新导致大量测试用例失效,由于团队忙于新功能开发,当失效的用例积累越来越多时,这些测试用例就慢慢失去维护。如果开发这些用例同学在的时候可能还好办。
2、大量的自动化测试脚本没有发现问题,上线后仍然问题不断。在测试中我们主要针对正常流程进行测试,但是在线上出故障的都是非正常流程。
3、代码质量问题严重。很多人写的单元测试只是构造一个输入然后检查返回值,结果是测试通过了但是问题却遗漏了。
4、重复轮子制造。大量的团队都在开发自己的自动化测试框架,实际上只是对各种开源框架进行裁剪完善。
分层测试包含如下几个层次:
-
单元测试:开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
-
集成测试:也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。在这里我们可以认为就是接口测试。
-
系统测试:将需测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素及环境结合在一起测试。在这里我们就可以理解为是UI测试。另外还要个综合规律发现得越早修复成本越低。
03、如何使用
如何使用Python实现自动化测试?
就语言而言Python实现自动化无非就是调用对应封装好API
在众多自动化测试框架中,针对语言都有对应的封装。但是林林总总,自动化测试无非就要是分为这几大类型,我分别指出对应的自动化测试框架:
-
UI自动化
web自动化:selenium
GUI自动化:autoit
-
接口自动化
urllib2
requests
-
app 自动化
appium
-
单元自动化
和语言有关
看到如上框架,大家肯定会感觉学习自动化,你不仅要熟悉基本的框架内容知识也要对语言有相当的了解,才能真正的实现自动化测试。所以就引出今天要介绍的自动化测试框架RobotFramework。
04、是否适合
RobotFramework自动化是不是适合你的境遇?自动化测试开发面临的问题:
-
版本迭代的速度很快,迭代的时间很短,自动化测试开发是时间太短。自动化测试开发框架开发代价太大。尤其是针对初创团队,开发框架人力成本太高。
-
实际的项目,特别是大型项目,功能通常都是非常复杂的,对构建自动化测试用例也是一种挑战。
综上而论,针对部门规模也是有一定界限的,真正实现自动化测试方式和方法。
对于大型测试部门,有较强的开发能力可以考虑做一套自动化测试框架,但是针对小的团队,还是要选择轻量级的成熟的自动化测试框架。
RF特点:
-
易于使用,采用表格式语法,统一测试用例格式
-
可以使用关键字驱动(keyword-driven)、数据驱动(data- driven)和行为驱动开发 (BDD) 完成
-
重用性好,可以利用现有关键字来组合新关键字;结果报告和日志
-
采集HTML格式,易于阅读。平台和应用性关联性
-
易于集成,提供了命令行接口和基于XML的输出文件
-
易于与版本管理集成
-
关键字单词化,容易理解
RF实现的架构图:
RF代码示例:
自动化测试只要用RF一个框架都能够解决
RF自动化测试框架是一个融合关键字驱动和数据驱动的自动化测试框架,本身在自动化角度上这种融合化自动化测试框架,是当前自动化框架发现的整体趋势。尤其是在工作当中简简单单使用一种框架,不能够满足工作遇到的需求。
01、怎样日常维护
在实际的工作中自动化测试如何落地这个问题也是很大的痛点,往往自动化做了一大堆,却解决不了在工作中实际问题,自动化存在的价值无非就是两个方面:
-
一是辅助功能做测试数据
-
二是做冒烟测试和回归测试
如果这两点都没有做到,自动化测试是不可能实现真正意义上应用,也谈不了节省人工。在实际工作过程中。还有一点也是很重要的一个问题,自动化刚开始做的时候,很重要的一点就是打地基,如果地基打不好,整个框架到后期会发现很多问题暴露出来,往往到最后就会舍弃这个框架。框架的选择和框架的开发很重要的,要求短期内自动化测试一定要做出来,可想而知自动化是不可能短期内做出来,架构设计不好,到后期返工可能性会更大。所以这也就决定了自动化前期不是盲目性的,要做好地基。
同样这样也引出咱们今天的重点,RobotFramework 自动化测试框架,一个成熟的自动化测试框架,而且这个框架背后有Python语言作为扩展,所有Python能够实现的东西,在这个框架都可以实现。框架很多,在选择的角度上而言,找一个成熟的框架,把工作的重心放到管理测试用例上,这个才是做自动化的最高层次。也是最贴切工作的价值和意义。一切推崇高技术含量的东西没有一点贴近工作的框架都是浪费时间。
最后
绵薄之力
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助....
相关文章
- 【Java字节码】Idea中查看Java字节码的插件jclasslib Bytecode viewer
- java中三种方式获得类的字节码文件对象
- [置顶] 什么是C语言结构体字节对齐,为什么要对齐?
- 反编译 字节码 Javassist Javac 修改jar包 [MD]
- Atitti 编程语言高级 api 与高级知识 堆栈api 异常api Meta anno注解元数据api Ref 反射api Database meta api 字节码库如果你正在编写一个框架或者
- Mock服务设计与实现:MySQL驱动字节码修改增强
- Linux以百万兆字节显示内存大小
- 【字节面试题】牛客刷题偶遇字节后端笔试面经 撸它
- Python编程:设置Python解释器不生成字节码pyc文件
- 【Groovy】Groovy 扩展方法 ( 静态扩展方法配置 | 扩展方法示例 | 编译静态扩展类 | 打包静态扩展类字节码到 jar 包中 | 测试使用 Thread 静态扩展类 )
- Windows - Windows的文件名的全路径(Fully Qualified File Name)的最大长度为260字节
- 如何将一个字节数组转换为System.String
- 字节面试官心声:个个都说会自动化,结果面试一问细节全露馅了
- 一年功能测试,磕磕绊绊自学入了字节!!!记录一下我自学自动化测试经历...
- 字节跳动测试面试题:如何定位一头条bug根因?
- 字节测试总监8年测试路,如何从功能测试转成自动化测试——愿测试人不再迷茫
- 字节面试官:Rocketmq如何测试?看看我的回答能拿几分?
- “行业寒冬”,字节10年测试工程师给在座的测试人一些涨薪建议
- 手工测试如何转向自动化测试?字节5年自动化经验浅谈一下...
- 没项目经验,拿下了字节测试岗40万offer....
- 字节上岸成功,整理一波测试开发岗的基础知识,含答案
- 字节大佬8年经验2000字真言!送给还在测试路上迷茫的你
- 太可惜了,4面字节跳动,我的软件测试工程师Offer竟被一道App测试“送分题”给拦截了