描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121363207
★ 十多年自动化软件测试一线实战摸爬滚打快速成长经验分享
★ 涵盖绝大部分自动化测试知识,内容充实、逻辑严密、语言生动
★ 后端、Web端、Android端、iOS端、H5端、小程序端实战演练
★ 快速掌握接口自动化、Web UI自动化、移动端自动化等主流技术
★ 实用性很强,是一本面向新时代测试人员不可多得的实战类好书
★ 读者可知其然且知其所以然,同时掌握自动化测试思想和工具
★ 提高综合技术能力、扩展知识体系,完成从小工到专家的蜕变
★ 既可作为测试开发实战指导书,又可作为日常测试开发工具书
互联网行业的工程师就好比运动员,要想在竞技场上获胜,需要在训练场里长期刻苦地练习技巧,想要成为一个不被时代抛弃的技术人,就需要不断地更新迭代自己的知识体系。加油,读者们,共勉!
《自动化测试实战宝典:Robot Framework Python从小工到专家》以自动化测试技术为主线,循序渐进地介绍了自动化测试所涉及的知识体系,通过不同端的实战项目,综合运用了所介绍的技术,旨在提高测试人员的综合技术能力并扩展知识体系。
《自动化测试实战宝典:Robot Framework Python从小工到专家》从对测试行业现状及未来几年趋势的分析开始,呼吁大家在时不我待的当今社会中,找准定位并建立自身的职场核心竞争力。然后围绕自动化测试技术应用结合多端(后端、Web端、Android端、iOS端、H5端、小程序端)实例来引导读者快速上手。本书涵盖了绝大部分自动化测试知识,不但内容充实、逻辑严密,且图文并茂、语言生动。对Robot Framework使用者来说,本书更是一部难得的工具宝典。
《自动化测试实战宝典:Robot Framework Python从小工到专家》适合对测试技术感兴趣或者正在从事测试工作的人(不限于手工测试、自动化测试、测试开发、测试管理等)阅读。希望读者在学习完本书的内容后能提高综合的技术水平,成为一名新时代的优秀测试工程师。
第1部分 入门篇
第1章 大话测试行业 2
1.1 测试行业现状分析 2
1.2 未来发展趋势 4
1.3 测试工程师的核心竞争力 8
1.4 测试知识体系 12
1.5 测试发展能力图谱及推荐书单 23
1.6 本章总结 25
第2章 认识自动化测试 26
2.1 为什么自动化测试是必要的 26
2.2 手工测试与自动化测试的区别 28
2.3 自动化测试常见误区 29
2.4 自动化测试的优劣分析 31
2.5 提倡分层自动化测试 32
2.6 什么项目适合做自动化测试 33
2.6.1 什么样的项目或团队适合做自动化测试 34
2.6.2 不适合做自动化测试的项目有什么特点 35
2.7 做好自动化测试需要具备哪些能力 36
2.8 自动化测试引入时机和适用场景 37
2.9 常用主流工具有哪些 38
2.10 自动化测试面临的挑战 41
2.11 本章总结 41
第2部分 基础学习篇
第3章 ROBOT FRAMEWORK框架准备 44
3.1 ROBOT FRAMEWORK框架介绍 44
3.1.1 优势和亮点 44
3.1.2 不足 45
3.1.3 Robot Framework生态系统 45
3.2 WINDOWS平台环境搭建 47
3.2.1 Python的安装与配置 47
3.2.2 pip的安装与升级 49
3.2.3 Robot Framework框架的安装 50
3.2.4 wxPython框架的安装 50
3.2.5 Robot Framework RIDE的安装 51
3.3 MAC平台环境搭建 52
3.3.1 Python的安装与配置 52
3.3.2 pip的安装 53
3.3.3 Robot Framework框架的安装 54
3.3.4 Mac OS X无法启动RIDE的解决方案 54
3.4 LINUX平台环境搭建 57
3.4.1 Python的安装与配置 57
3.4.2 pip的安装与配置 58
3.4.3 Robot Framework框架的安装 58
3.4.4 wxPython框架的安装 59
3.5 ROBOT FRAMEWORK RIDE支持PYTHON 3 59
3.5.1 Robot Framework RIDE 1.7.3的新特性 59
3.5.2 Robot Framework RIDE 1.7.3的安装与升级 60
3.6 本章总结 60
第4章 PYTHON测试编程 62
4.1 语法规范 62
4.1.1 代码编排 63
4.1.2 文档编排 63
4.1.3 空格的使用 64
4.1.4 注释及文档描述 64
4.1.5 命名规范 65
4.1.6 编码建议 66
4.2 PYTHON 2和PYTHON 3如何选择 67
4.2.1 为什么Python 2和Python 3都要学 67
4.2.2 Python 2和Python 3的主要特性区别 68
4.2.3 Python 2和Python 3同时兼容的技巧 73
4.3 快速入门 75
4.3.1 Python变量和赋值 75
4.3.2 Python字符串 77
4.3.3 Python列表和元组 78
4.3.4 Python字典 79
4.3.5 Python if分支条件 80
4.3.6 Python while循环 81
4.3.7 Python for循环 81
4.3.8 Python range内建函数 82
4.3.9 Python列表解析 83
4.3.10 Python open函数 85
4.3.11 Python错误和异常 88
4.3.12 Python函数 93
4.3.13 Python类 102
4.3.14 Python模块与包 110
4.3.15 Python常用内置函数 115
4.4 PYTHON编程常用技巧 116
4.4.1 Python拼接字符串的7种方式 116
4.4.2 Python列表推导、字典推导、集合推导 118
4.4.3 Python三元操作符用来进行条件赋值 119
4.4.4 Python同时迭代两个列表 120
4.4.5 Python带索引的列表迭代 120
4.4.6 Python 迭代列表组合 120
4.4.7 Python 统计元素出现次数 121
4.4.8 Python 找出列表中出现次数最多的元素 121
4.4.9 Python一键启用文件服务器 122
4.4.10 Python 快速拼接构造列表 122
4.4.11 Python 一行代码搜索字符串的多个前后缀 122
4.4.12 Python实现真正的switch-case语句 123
4.4.13 Python实例方法、静态方法、类方法 123
4.4.14 Python求集合并集、交集、差集 124
4.4.15 Python去除列表重复元素的几种方法 125
第5章 ROBOT FRAMEWORK功能的使用 127
5.1 RIDE两种启动方式 127
5.2 RIDE功能介绍 128
5.2.1 菜单栏 128
5.2.2 工具栏 131
5.2.3 案例区 131
5.2.4 工作区 131
5.2.5 常用快捷键 132
5.3 常用ROBOT FRAMEWORK编辑器工具 133
5.3.1 PyCharm 133
5.3.2 Sublime Text 138
5.3.3 其他工具 140
5.4 测试项目、测试套件和测试用例 141
5.4.1 测试项目 141
5.4.2 测试套件 141
5.4.3 测试用例 142
5.5 资源文件 143
5.5.1 内部资源文件 143
5.5.2 外部资源文件 143
5.6 常量和变量 144
5.6.1 变量与常量介绍 144
5.6.2 变量作用域 145
5.6.3 Robot Framework内置变量 146
5.6.4 标量变量的定义和使用 147
5.6.5 列表变量的定义和使用 149
5.6.6 字典变量的定义和使用 151
5.6.7 变量知识补充 153
5.7 用户关键字 153
5.7.1 关键字Arguments 154
5.7.2 关键字Teardown 160
5.7.3 关键字Return 161
5.8 EDIT选项卡 162
5.8.1 测试项目Edit选项卡 162
5.8.2 测试套件Edit选项卡 163
5.8.3 测试用例Edit选项卡 165
5.8.4 小结 166
5.9 TEXT EDIT选项卡 167
5.10 RUN选项卡 168
5.10.1 自动保存 168
5.10.2 失败暂停 168
5.10.3 Arguments参数配置 169
5.10.4 Only run tests with these tags 170
5.10.5 Skip tests with these tags 171
5.10.6 查看测试报告和测试日志 172
5.11 ROBOT FRAMEWORK常用技巧 173
5.11.1 If分支结构 173
5.11.2 For循环结构 174
5.11.3 列表变量的用法和元素获取 176
5.11.4 变量使用方法补充 177
5.11.5 搜索关键字 178
5.11.6 测试用例执行六大技巧 179
5.11.7 测试标签技巧 181
5.11.8 Setup和Teardown 183
5.11.9 Pybot和Robot命令 183
5.11.10 Jybot模式安装与运行 185
第6章 ROBOT FRAMEWORK常用函数库 189
6.1 内置库介绍 189
6.1.1 标准库 189
6.1.2 扩展库 190
6.2 EVALUATE万能关键字 191
6.3 类型转换 194
6.3.1 Convert To String:转换成字符串 194
6.3.2 Convert To Integer:转换成整数 194
6.3.3 Convert To Number:转换成符点数 194
6.3.4 Convert To Boolean:转换成布尔值 195
6.3.5 Encode String To Bytes:字符编码 196
6.4 变量操作 196
6.4.1 Log Variables:打印变量 196
6.4.2 Import Variables:导入变量 196
6.4.3 Set Variable:设置变量 197
6.4.4 Set Global Variable:设置全局变量 197
6.4.5 Set Suite Variable:设置测试套件变量 198
6.4.6 Set Test Variable:设置测试用例变量 198
6.4.7 Set Variable If:当条件满足时设置变量 199
6.4.8 Get Variables:获取所有变量 199
6.4.9 Get Variable Value:获取变量值 199
6.4.10 Get Environment Variables:获取所有环境变量 200
6.4.11 Get Environment Variable:获取环境变量值 200
6.4.12 Set Environment Variable:设置环境变量 200
6.5 关键字操作 201
6.5.1 Run Keyword:运行关键字 201
6.5.2 Run Keyword If:当条件满足时运行关键字 201
6.5.3 Run Keyword Unless:当条件不满足时运行关键字 201
6.5.4 Repeat Keyword:重复运行某关键字 202
6.5.5 Run Keywords:运行多个关键字 202
6.5.6 Run Keyword And Return:运行关键字并返回结果 202
6.5.7 Run Keyword And Return If:当条件满足时运行关键字并返回结果 203
6.5.8 Run Keyword And Continue On Failure:失败后仍运行指定关键字 203
6.5.9 Run Keyword And Ignore Error:运行关键字并忽略错误 203
6.5.10 Run Keyword If All Tests Passed:所有测试用例通过后运行关键字 203
6.5.11 Run Keyword If Any Tests Failed:任一测试用例失败后运行关键字 204
6.5.12 Run Keyword If Test Passed:测试用例通过后运行关键字 204
6.5.13 Run Keyword If Test Failed:测试用例失败后运行关键字 204
6.5.14 Run Keyword If Timeout Occurred:测试用例超时后运行关键字 204
6.6 条件与循环 205
6.6.1 Continue For Loop:直接继续下一次循环 205
6.6.2 Continue For Loop If:当条件满足时继续下一次循环 205
6.6.3 Exit For Loop:立即退出循环 205
6.6.4 Exit For Loop If:当条件满足时退出循环 206
6.7 断言操作 206
6.7.1 Should (Not) Be Empty:断言是否为空 206
6.7.2 Should (Not) Be Equal:断言是否相等 207
6.7.3 Should (Not) Be Equal As Strings:断言作为字符串是否相等 207
6.7.4 Should (Not) Be Equal As Integers:断言作为整数是否相等 208
6.7.5 Should (Not) Be True:断言是否为真 208
6.7.6 Should (Not) Contain:断言是否包含某元素 209
6.7.7 Should (Not) Contain Any:断言是否包含任一元素 210
6.7.8 Should Contain X Times:断言某元素是否被包含指定次数 210
6.7.9 Should (Not) Start With:断言是否以某某开头 210
6.7.10 Should (Not) End With:断言是否以某某结尾 211
6.7.11 Should (Not) Match Regexp:断言是否匹配正则表达式 211
6.7.12 Length Should Be:断言长度是否相等 212
6.7.13 Keyword Should Exist:断言关键字是否存在 213
6.7.14 List Should (Not) Contain Value:断言列表是否包含某值 213
6.7.15 Lists Should Be Equal:断言两个列表是否相等 213
6.7.16 List Should Not Contain Duplicates:断言列表不包含重复项 214
在当今高速发展的移动互联网 云优先的时代,到处都有不可预知的变化,有的来自客户需求的变化,有的来自市场环境的变化,这些变化给企业的市场、渠道、产品、服务等各方面都带来了一系列新的挑战,每个成功的企业都在培养和打造快速适应这种变化的能力。对于企业的产品研发部门来说,面对着愈发不确定的客户需求,快速并高质量地完成开发工作,早日上线,尽早收集市场反馈,优化产品和服务,是研发响应市场变化的基本原则。但在追求产品快速交付上线的同时,质量底线是每一个成功的产品都必须要坚守的,这意味着研发团队在提高产品交付效率的同时要保证产品质量,而要实现这一目标,引入自动化测试是一种行之有效的手段。
准备写本书之前,其实我的内心还是挺纠结和矛盾的,毕竟最近两年一直从事研发管理的工作,对技术的钻研已经无法全身心投入了。最近几年感受到越来越明显的一个行业不良现状:“测试人员能力的两极分化太过于严重。”一类是行业小白,这里说的小白,并不一定指的就是刚毕业或刚跨入这个行业的同学,更多的是指测试思维和测试技术一直处于小白状态的人。即便是有些工作了很多年的同学,仍然有很多人一直处于手工测试“点点点”的工作状态,他们不主动或者不愿意去理解业务架构、技术架构,甚至根本没有想过通过提升自己来改变这种工作状态。我面试过很多人,这类不求变或者说不求突破的做纯手工功能测试的人不在少数。另外一类则是行业大师,这类人是极为稀缺的,也是软件行业最抢手的一类人。这类人无论从知识的广度还是深度来说,都可以媲美开发架构师,甚至有些还会超过开发架构师的水平,因为测试工程师作为一个“高危职业”,需要比产品经理(或需求分析师)想得更全面,比开发人员更懂需求,能读懂甚至能修改开发人员的代码。这个观点和《Google测试之道》一书中提到的一条理念很相似,Google对测试工程师的定位是这样的:“如果一个测试人员的业务能力不比产品经理强,编码能力没有研发工程师牛,你怎么能发现他们的问题呢?”这也足以说明,产品的质量保障和测试工作,绝对不是随随便便就能做好或者谁都可以胜任的。
写作本书的目的并不是简单地告诉读者如何使用一个自动化测试工具,我希望读者在学习完本书的内容后能提高综合的技术水平(高度与宽度),从而摆脱简单的手工测试,成为一名新时代的优秀测试工程师。如今移动互联网的技术和知识迭代都是非常快的,技术栈也比较广,建议读者在学习本书内容的同时要自己学会搜索相关技术的官方文档,构建一个属于自己的知识体系,从而系统、全面地理解它,千万不要指望在书中找到所有答案,这在移动互联网时代是不现实的。
正所谓:“授人以鱼,不如授人以渔。”互联网行业的工程师就好比运动员,要想在竞技场上获胜,需要在训练场里长期刻苦地练习技巧,想要成为一个不被时代抛弃的技术人,就需要不断地更新迭代自己的知识体系。加油,读者们,共勉!
本书的目标读者——我适合读这本书吗?
本书适合的人群很广,基本上对测试技术感兴趣或者正在从事测试工作的同学(不限于手工测试、自动化测试、测试开发、测试管理等)都可以阅读。本书从对测试行业现状及未来几年趋势的分析开始,呼吁大家在时不我待的当今社会中,找准定位并建立自身的职场核心竞争力。然后围绕自动化测试技术应用结合多端(后端、Web端、Android端、iOS端、H5端、小程序端)实例来引导读者快速上手。本书涵盖了绝大部分自动化测试知识,不但内容充实、逻辑严密,且图文并茂、语言生动。对Robot Framework使用者来说,本书更是一部难得的工具宝典。
本书的内容组织——这本书讲了什么内容?
全书以自动化测试技术为主线,以Robot Framework框架作为切入点,共分成4部分。
第1部分 入门篇
第1章:从测试行业发展历程开始,分析了作者近几年感受到的测试行业的现状及问题,以及在移动互联网快速发展和AI、大数据、IoT的冲击下,测试行业未来几年可能的发展趋势。系统性地介绍了测试工程师的核心竞争力的三项基本功和七大核心力,并列举了测试工程师能力发展图谱和推荐阅读书单。
第2章:从团队开展自动化测试的必要性,到开展自动化测试过程中常见的误区,以及什么样的项目或团队适合开展自动化测试、在什么时机引入。最后分享了开展自动化测试需要具备哪些能力、自动化测试常用的工具有哪些及自动化测试接下来几年还有哪些机遇和挑战。
第2部分 基础学习篇
第3章:主要介绍Robot Framework框架,包括Robot Framework框架在各个不同的操作系统(Windows、Mac、Linux)上如何进行安装,以及RIDE 1.7.3的一些新特性。
第4章:通过对Python编码规范、Python版本选择、Python快速入门学习、Python编程常用技巧等一系列知识点的介绍,让读者在短时间内快速掌握Python编程基础,也为本书后面Robot Framework自动化测试实战(基于Python)打好编程语言基础。
第5章:主要是对Robot Framework框架基本功能使用的学习,从RIDE编辑器的功能介绍开始,到Robot Framework常用编程器推荐。最后介绍了一系列Robot Framework常用技巧,包括如何合理运用标签策略、如何通过Pybot命令行来灵活控制执行测试用例、如何使用Jybot来运行Robot Framework测试用例等。
第6章:介绍Robot Framework中常用的一些函数库,包含内置的标准库、第三方扩展库,涉及针对变量的操作、类型转换的操作、元素集合的操作、条件语句的操作及断言校验的操作等。
第3部分 项目实战篇
第7章:从接口测试的基本概念开始介绍,到如何从多维度来对接口测试进行用例设计,接着介绍接口测试项目在设计过程需要注意的事项,以及推荐的最佳工程实践约定。最后结合具体的实战案例介绍不同类型接口如何开展测试,并在章节的末尾分享了一系列接口测试的实战技巧,包括如何开发系统关键字、如何与GitLab和Jenkins CI集成管理。
第8章:主要介绍基于Robot Framework Selenium框架如何开展Web UI自动化测试,在整个章节中,从Selenium是什么、Robot Framework与Selenium之间的关系说起,到开展Web UI自动化测试常用的关键字、Web元素定位方法,以及Web UI多浏览器兼容。最后通过具体的项目实战介绍了如何基于Robot Framework框架来设计Web UI自动化测试项目。
第9章:主要介绍基于Robot Framework Appium框架如何开展移动端App自动化测试,在整个章节中,从Appium是什么及它的常见概念和工作原理说起,到自动化测试所需环境的搭建,包括Appium相关环境、Android相关环境、iOS相关环境。最后通过具体的实战案例,分别介绍Android(模拟器、真机)、iOS(模拟器、真机)、H5、小程序等自动化测试实践。
第4部分 扩展篇
第10章:对Robot Framework框架的部分源码和目录结构进行剖析,首先分析整个Robot Framework源码结构、各目录对应的职责功能,然后通过源码跟踪分析来梳理Robot Framework框架执行测试用例的过程,最后通过二次开发增加监听器的形式来扩展命令行实时显示日志。
本书的特色——这本书能带来什么价值?
1. 这本书主要讲了什么内容?
全书以自动化测试技术为主线,循序渐进地介绍了自动化测试所涉及的知识体系,通过不同端的实战项目,综合运用了所介绍的技术,旨在提高测试人员的综合技术能力和扩展知识体系。
2. 通过这本书能学到什么?
为了帮助读者提高测试技术水平,本书不仅介绍了测试方面的知识和自动化测试实战,还介绍了Python编程与应用、持续集成,以及Android、iOS、H5、小程序等相关知识。
3. 这本书有什么特色?
不仅是一本工具书,更是一本测试知识体系的参考书籍。
涵盖多端自动化测试应用,包括后端、Web端、Android端、iOS端、H5端、小程序端等。
实战性强,各端知识介绍均从点到面逐层递进展开,并用大量的实战案例来说明自动化测试的最佳实践与分层设计原则。
★本书作者周金剑很早就开始接触自动化测试,并在企业级项目中广泛实践,积累了非常丰富的一线实战经验,同时积极参与自动化测试框架和平台的设计与开发,真正做到了“知其然且知其所以然”,本书是他多年工作经验的总结与升华。本书从Python语言和Robot Framework基础讲起,逐渐过渡到目前主流的Web UI、API和Mobile测试,同时介绍了持续集成的相关知识。纵览全书,内容循序渐进,条理清晰,理论联系实际,知识讲述由点到面,具有很强的实用性,是一本面向测试从业者不可多得的实战类好书。
——茹炳晟 Dell EMC中国研发集团,资深架构师
★通过此书读者可以掌握Robot Framework Python的各项基础知识,书中的实战案例凝聚了作者多年的经验,可以帮助我们找到经常遇到的多用例管理、动态构造测试数据等场景的解决方案,并让其顺利落地。读者可借此机会不断实践总结,掌握自动化测试的思想和工具,*终完成从小工到专家的蜕变!
——陈恒捷 PPmoney测试架构师
★某一天,狂师找我私聊,告诉我他想出一本书,也是写Robot Framework框架的。回想当初Robot Framework在国内并没有太多资料,我在自学的空余整理了一些资料,也在博客上写了些文章,出版了《Robot Framework自动化测试修炼宝典》。虽然叫宝典,但是我知道其实内容还是有很多不足的。现在再看这本书,由于已经出版了好几年,部分内容有些过时,虽然我想尝试重新更新一下,却一直苦于没有太多时间和精力,心有余而力不足。值得高兴的是,吾道不孤!现在有狂师的这本新书,我认为这本书比我的书内容更完善,也更深入一些,可以让大家在学习Robot Framework框架的时候更方便一些。等他的书出版后,我一定要再买一本细细品读,也希望大家早日修炼得道。
——齐涛(道长) 南方基金互联网金融部测试负责人
★本书既是一本测试开发的实战性指导书,也适合作为日常测试开发的工具书,特别是,本书对Robot Framework自动化测试框架做了深入的剖析,结合了作者众多我已经看到成果的*佳实践,是测试人员能力升级不可多得的宝典。
——李朝明 金蝶医疗 研发中心总经理
★金剑非常用心,以自动化测试技术为主线,结合实战项目详尽且全面地讲解了Robot Framework在接口自动化、Web UI自动化、移动端自动化的*佳测试实践,让读者充分理解并掌握Robot Framework。毫不夸张地说,对于Robot Framework用户来说,这是一本人人必备的工具书。
——李隆(debugtalk) HttpRunner 作者
1.1 测试行业现状分析
在互联网新趋势和新要求的推动下,测试行业也在不知不觉中发生着非常大的改变,从早些年的懵懂发展,到大多数高校设立软件测试专业,再到近几年各种测试培训盛行。如果说早期软件测试行业还是一个风口,随着转行人员及毕业的大学生疯狂地涌入,目前软件测试行业的“缺口”已经基本饱和,最基础的功能测试的岗位需求已经越来越少。软件测试行业的门槛,也从真正的零基础,到现在的要求具备计算机专业能力(包括但不限于编程能力),软件测试在企业中,特别是在互联网行业的企业中,也从可有可无发展到不可或缺。
如果把测试行业按照发展时期来分,2010年以前,在绝大多数企业中,测试实践的重心都放在系统功能的验收阶段,测试人员的主要工作基本都围绕着基于业务的黑盒测试,对编码能力、系统理解能力要求不多。而2010年后,随着互联网产品的快速发展,各行各业对软件质量的强需求,以及大数据、云计算、AI人工智能等前沿技术的涌入,传统的测试工作模式和工作范围越来越无法满足行业的需要和产品的质量要求。
这一点在企业的用人招聘上表现得尤为突出,如今对于一二线互联网企业的测试招聘者而言,想找到一个合适的人选非常艰难。同样,对于测试求职者而言,会发现应聘要求也越来越严苛,除了学历(现在基本都要求211或985)、年龄、项目经验,还需要具备代码设计能力、软件架构能力、学习创新能力、较强的沟通能力、解决问题能力等。但即便如此,仍有大量的测试人员依旧处在石器时代,过着茹毛饮血、敲敲打打(停留在功能测试的“点点点”)的日子,最终导致人才供求难以实现平衡,这从侧面也反映出国内大部分测试人员存在的问题。
1. 功能测试关注面比较窄
从产品质量来讲,不管测试的是PC端、Web端、还是App端的产品,功能测试都是基础。虽然也会有相关的测试流程,如需求分析、测试用例编写、用例评审、提测验收、功能测试、Bug回归等,但是很多测试人员只关注自己的需求,而不关注这个需求在产品的整个生命周期中的作用,缺乏产品的整体考量,导致在参与大型产品项目开发或与多部门进行合作时,不知如何应对。例如,在对一款App产品进行测试时,测试人员可能只会考虑App的功能本身,而对接口调用传递、服务组件的测试及后端数据的校验缺乏有效的关注。
2. 过于追求测试工具的使用
最近几年,随着开源社区的流行,绝大部分行业中共存的问题,在开源社区中都能找到相应的解决方案或处理问题的工具。所以很多测试人员抱着只要学会了这些测试工具,就能解决测试工作中所有问题的想法。在测试工具的应用上缺乏尝试和创新,要么只了解公司现有的框架,要么只在公司现在的框架上编写用例,而不去了解整体框架的工作原理。或者盲目选择市面上现有的开源测试工具,仅仅满足于使用,而不去了解为什么要这么用、还有没有其他相关的工具、这个工具是如何解决我们的问题的、这个工具背后的实现原理又是什么。
在提及这个问题时笔者不禁联想到,很早之前华为在推行IPD组织变革时的一些思想,原文是这样说的:“华为靠IBM的咨询,成功推进了IPD的组织变革。不仅仅靠任正非要求的对IPD的‘先僵化、后优化、再固化’,更重要的是华为掌握了咨询公司提供管理解决方案背后的管理本质,管理本质不是咨询公司提供的管理解决方案,而是管理解决方案背后的优秀经营思维,通过掌握优秀管理模式背后的优秀经营思维,然后根据自己企业的实际情况再次设计出相应的管理解决方案。”
在我们借用测试工具、测试框架来解决实际的工作问题时,虽然具备工具化、工程化思维固然重要,但是更重要的是要掌握工具解决问题背后的本质和思想。
3. 企业人员空缺仍较多,但求职者能力达标少
这个点可能会刺痛一些读者,但正因如此我们才更应该直面当前的不足。从近几年各行各业企业的招聘情况来看,企业对测试人员的要求越来越高,仅仅响应需求的功能测试人员基本饱和。对于通过社招渠道找工作的人,基本都要求其具有一定的自动化测试或编写代码经验,能解决在工作过程中遇到的问题。换句话说,企业更需要编码能力较强、能参与公司相关测试开发的人员。
不少测试人员在面试过程中会被要求做编程题,例如单链表逆序、二叉树遍历、日志过滤等。这一方面是看面试者的编码能力如何,另一方面也能从编码习惯来看面试者有没有参加过大型的项目开发。再者还会给一个具体的问题,让面试者来给出解决方案。例如,现在有一个全新的App,如果让你负责测试,你会实施哪些测试方案?不像以前那样做个逻辑题或写个测试用例就行了。这个变化也预示着企业现在越来越偏爱那些能帮助团队解决实际问题、多方位发展的复合型测试人才。
4. 资深测试开发人员、测试架构师稀缺
测试行业不断发展,已经呈现出严重的两极分化势态。一边是资深的测试大牛,属于全栈复合型人才,这一类人员在行业中较为稀少。一是由于行业原因,代码能力强、有架构经验的人员一般都在开发部门;二是要求高,资深测试开发工程师、测试架构师不仅要精通测试相关的技能,还要会前端设计、服务端开发等,几乎是全栈工程师。另一边是测试小白,即便有些在测试行业中已经摸爬滚打了几年,但仍然还是停留在只会业务功能测试的这个阶段。而针对这类测试人员,除了一些安于现状的人,大多数人其实都还是想学习、想进步的,只是不知道学习方向、学习方法。
但不管是哪种情况,对于企业而言,想快速发展自己的业务,必须有一个强大的测试团队,通过一系列的质量保障手段,如引入CI、CD及其他的手段来促进项目的快速迭代与交付。这就要求相关的测试工程师要能从多方面来考虑并解决问题,不仅要考虑项目的实施成本,还要考虑测试、开发、产品甚至用户等,同时要与公司的发展前景及方向相切合,并能很好地为之服务。拥有这些能力的测试人才在公司都是较为吃香的,每年招聘季也就那么几个人会进入人才市场流通,而且很快就能找到工作,这是每个测试人员的努力方向,只有具备了相应的实力,才有资格向企业要求你期望的回报。
上面四点只是测试行业大部分现状的一个缩影,并不全面,从另一个角度看,测试行业正在进入一个全新的阶段,表现出全新的特点。
1. 纯功能测试人员正在退出舞台
从测试行业被广泛认可时起,不论是通过自学,还是通过培训机构培训,大量测试人员最后都进入互联网的各个行业中,刚开始的情况一片大好,经过几年快速发展后,企业对测试人员的要求越来越高。不管工作了几年,如果你仅仅只会功能测试、测试工具的使用,或者只会在公司现有的平台、框架下写写自动化测试用例,则几乎是无法适应大部分企业的需求的。
2. 对测试能力要求越来越综合
随着功能测试人员逐渐退出测试行业,企业对测试人员的能力要求也越来越偏向全方位化,在测试技术方面,随着互联网新技术越来越多,对测试人员的技术要求也越来越精、越来越广。
先前的测试工程师、测试开发工程师,能搭建自动化测试框架、持续集成框架、使用开源的框架解决工作中遇到的问题就合格了。而现在很多企业在招聘面试的时候,特别是针对测试开发岗位,要求应聘者不仅要掌握常用的测试框架的使用,而且还要具有一点开发技术、数据库技术和架构能力。越来越接近开发岗位的要求,有的甚至要求更高。
评论
还没有评论。