文章目录
鉴于过去的大形势变化,尤其是近几年的特殊情况,不懂技术的测试工程师会逐渐被淘汰出局。一波测试工程师的失业潮是在所难免的。
虽然在早几年前我也呼吁身边的测试小伙赶紧脱离落后的业务体系, 脱离落后的测试技能, 但是看到很多人无动于衷,且生活变得越来越艰难, 也是挺痛心的…
2022已近尾声,软件测试这个行业将如何发展?个人愚见,与君共享。至于对不对,相信处在这个行业的小伙伴,一定能体会的到。
❤️???? 软件测试的现状
进入到移动互联网时代的风口后,在新趋势和新要求的推动下。测试行业也在近十几年间发生着非常大的改变,从早些年的懵懂发展,到大多数高校设立软件测试专业,再到前几年各种测试培训的盛行…
早期阶段的测试行业确实是一个风口,甚至有段时间风头无两。但随着转行人员、毕业的大学生、甚至各种培训机构的填鸭式的疯狂地涌入,目前软件测试行业的 “缺口” 已经基本饱和,这里的饱和指的是最基础的功能测试的岗位需求已经越来越少。软件测试行业的门槛,也从真正的零基础,到现在的要求具备计算机专业能力(包括但不限于编程能力)。虽然软件测试在企业中,特别是在互联网行业的企业中发展成了不可或缺的形态,与之对应的任职要求也越来越高、越来越严格。
这一点在企业的用人招聘上表现得尤为突出,如今对于一线互联网企业的测试招聘者而言,想找到一个合适的人选非常艰难。同样,对于测试求职者而言,会发现应聘要求也越来越严苛,除了学历(现在基本都要求 211 或 985)、年龄、项目经验,还需要具备代码设计能力、软件架构能力、学习创新能力、较强的沟通能力、解决问题能力等。
但即便如此,仍有大量的测试人员依旧处在石器时代,过着停留在功能测试的 “点点点” 的日子,最终导致人才供求难以实现平衡,这从侧面也反映出国内大部分测试人员存在的问题。
❣️ 功能测试的短板
从整个产品的头脑风暴、产品调研、需求评审、项目立项、产品研发、测试迭代、最终上线。测试人员的任务参与度可以说是贯穿了整个产品研发周期的,质量来讲,如需求分析、测试用例编写、用例评审、提测验收、功能测试、Bug 回归等。不管测试的是 PC 端、Web 端、还是 App 端的产品,功能测试都是基本功。
但是很多测试人员只关注自己的需求,而不关注这个需求在产品的整个生命周期中的作用,缺乏产品的整体考量,导致在参与大型产品项目开发或与多部门进行合作时,不知如何应对。
例如,在对一款 APP 产品进行测试时,测试人员可能只会考虑 APP 的功能本身,而对接口调用传递、服务组件的测试及后端数据的校验缺乏有效的关注。其实这也是大部分技术人员抱这 “技术思维” 不妨,所受到的局限所致,就像是处于一个信息茧房一样。
❣️ 过于的依赖工具
有段时间随着开源社区的流行,绝大部分行业*存的问题,在开源社区中都能找到相应的解决方案或处理问题的工具。测试行业也是一样,所以很多测试人员抱着只要学会了这些测试工具,就能解决测试工作中所有问题的想法。
要么只了解公司现有的框架,要么只在公司现在的框架上编写用例,而不去了解整体框架的工作原理。或者盲目选择市面上现有的开源测试工具,仅仅满足于使用,而不去了解为什么要这么用、还有没有其他相关的工具、这个工具是如何解决我们的问题的、这个工具背后的实现原理又是什么,最后变成了名副其实的 “工具人” 。
我一直都认为在我们借用测试工具、测试框架来解决实际的工作问题时,虽然具备工具化、工程化思维固然重要,但是更重要的是要掌握工具解决问题背后的本质和思想。
测试小伙伴一定要记住,业务空间与技术天花板的上限决定着 QA 的生存空间, 这是所有行业都通行的道理。如果你不能满足业务需求, 就会被淘汰出局, 要么选择退守防御要么选择勇于接受挑战。
既然说到了这里,肯定会有小伙伴会问:那测试行业的未来是什么样的?我个人还是比较持乐观态度的,这个且听后面的分析。
❤️???? 测试行业的两极分化
接下来我们要说的内容可能会刺痛一些读者,但正是因为如此,所以我们才更应该直面自己的不足。
从近几年的招聘情况来看,企业对于测试人员的要求越来越高,仅仅响应需求的功能测试人员基本饱和。对于通过社招渠道找工作的人,基本都要求其具有一定的自动化测试或编写代码经验,能解决在工作过程中遇到的问题。换句话说,企业更需要编码能力较强、能参与公司相关测试开发的人员。
不少测试人员在面试过程中会被要求做编程题,例如单链表逆序、二叉树遍历、日志过滤等。这一方面是看面试者的编码能力如何,另一方面也能从编码习惯来看面试者有没有参加过大型的项目开发。再者还会给一个具体的问题,让面试者来给出解决方案。
例如,曾经就有小伙伴在笔试环节被提问 "请结合测试工作中的实际内容,说明利用代码实现完成了哪些替代性工作,效果如何?如果涉及框架,请说明如何选型以及选择的框架优势是什么?你会实施哪些测试方案?"
这不像以前那样做个逻辑题或写个测试用例就行了,这个变化也预示着企业现在越来越偏爱那些能帮助团队解决实际问题、多方位发展的复合型测试人才。
回到我们说的两极分化的问题,一边是资深的测试大牛,属于全栈复合型人才,这一类人员在行业中较为稀少。一是由于行业原因,代码能力强、有架构经验的人员一般都在研发部门;二是要求高,资深测试开发工程师、测试架构师不仅要精通测试相关的技能,还要会前端设计、服务端开发等,几乎是全栈工程师。
另一边是测试小白,即便有些在测试行业中已经摸爬滚打了几年,但仍然还是停留在只会业务功能测试的这个阶段。而针对这类测试人员,除了一些安于现状的人,大多数人其实都还是想学习、想进步的,只是不知道学习方向、学习方法。
但不管是哪种情况,对于企业而言,想快速发展自己的业务,必须有一个强大的测试团队,通过一系列的质量保障手段,如引入 CI、CD 及其他的手段来促进项目的快速迭代与交付。这就要求相关的测试工程师要能从多方面来考虑并解决问题,不仅要考虑项目的实施成本,还要考虑测试、开发、产品甚至用户等,同时要与公司的发展前景及方向相切合,并能很好地为之服务。
拥有这些能力的测试人才在公司都是较为吃香的,每年招聘季也就那么几个人会进入人才市场流通,而且很快就能找到工作,这是每个测试人员的努力方向,只有具备了相应的实力,才有资格向企业要求你期望的回报。
关于这一点,也仅是我个人的一家之言并不全面,不过从另一个角度看,测试行业也确实正在进入一个全新的阶段,表现出全新的特点。
❤️???? 纯功能测试人员应该如何破局
相信从事软件测试的小伙伴都知道,一个纯功能测试人员即使业务掌握的再熟练、工具玩出花,他的行业天花板也非常有限。而尝试去通过学习编程提高自己的脚本编写能力、提高产品的回归测试效率,都是需要花费大量的时间作为学习成本的。
那么有没有这样一款工具,无需花费大量的学习时间成本,可以让测试小伙伴快速的上手自动化任务,从而提高回归测试的效率呢?也许有的人就会说 “我长这么大,还没见过这么嚣张的工具。” 那我就肯定会回复你 “哎?今天你就见到了!” 那就是接下来我们要介绍的 一站式通用软件自动化测试平台 - AI TestOps 云平台
❣️ 龙测 AI TestOps 云平台
龙测 AI-TestOps 云平台
是 一直深耕于软件自动化测试领域,怀揣着彻底改变劳动密集型的测试行业,让测试越来越智能的使命的 “龙测科技” 自主研发的一款一站式通用软件自动化测试平台。
其核心理念是利用现代AI技术及先进测试算法彻底改变目前手工及自动化软件测试形态。在ARM技术的支持下,龙测科技拥有着能够涵盖市面绝大部分软硬件系统的UI功能产品体系,加上全球领先的测试代码生成器技术,测试代码一键自动生成等能力,为行业客户提供高效、可维护、低成本的自动化测试工具,为产品质量保驾护航。
这里插一句题外话,龙测科技的创始人&CEO - 师江帆博士是美国內布拉斯加大学林肯分校计算机科学与工程系软件测试方向的博士,其所在的测试实验室ESQuaReD是全美Top5的软件工程实验室。据Google Scholar统计,其论文被引用超过1000次,并收录于多个国际顶尖软件测试会议及杂志。其拥有二十多年国内外大型知名软件公司(中国长城集团、美国IBM、美国微软和Expedia)的软件测试开发及管理经验。其创办的龙测科技,先后获得美国Top3种子孵化器Plug-and-Play种子轮、创谷资本千万元Pre-A轮风险投资以及浙大系基金领头的数千万元A轮风险投资。其本人是浙江大学客座教授和研究员,于2017年荣获苏州工业园区科技领军称号,2019年荣获杭州5213领军称号,2020年荣获苏州姑苏领军称号等荣誉。
❣️ AI TestOps 亮相 TICA
一周前,阿里巴巴质量创新大会(Test Innovation Conference of Alibaba,简称TICA)成功举办。本次大会是阿里巴巴第四届质量大会,龙测科技在本次大会中和阿里云合作,新设数字化转型分会场,分享数字化转型经验。
从TICA提出至今,在历届大会上,不仅有阿里内部关于质量和研发效能相关的干货分享,也有很多来自业内大厂(像华为、字节、小米等)**的大咖,以及细分领域的优秀公司或个人参与分享。
龙测科技创始人师江帆博士作为分享嘉宾的其中一员,进行题为《基于模型和AI的高效自动化测试用例创建方法实践》
的分享。
在会上,师江帆博士分享的内容焦于四个方面,基于UI流的功能测试痛点、基于纯模型和混合模型场景下的探索、基于强化学习的复杂控件操作的自动化构建以及对行业的展望。
龙测 AI TestOps 云平台通过 AI + Robot + Model技术
,可以完成市面上绝大部分软(硬)件系统的UI自动化测试,解决测试痛点,提高测试效率。
在产品实践过程中以流程图和积木图为核心模型,将录制引擎、积木图、测试报告、线上设备集群等在内的多项特色或者独家功能串联起来,构建了自动化创建测试用例的完整业务闭环。除了展示已经商业化落地的案例外,师博士还展示了已经实现但尚未商业化的混合模型解决方案,引得观众的一致好评,也是众多与会人员、测试小伙伴非常期待的行业解决方案。
❣️ AI TestOps 所实现的混合模型解决方案
对于UI自动化测试,AI TestOps 云平台创造性的提出 AI+机器人+模型(ARM)
技术来构建稳定快速的测试工具。即AI学习生成业务流程图,测试用户通过组合流程图形成积木图,机器人通过视觉和机械化方式稳定执行。
因此我们能够快速、高效、低成本地完成 .exe应用、Web应用、iOS、Android、小程序、混合应用
的UI自动化测试。
基于页面元素的识别和定位来模拟用户行为,凭借精细化的AI图像学习能力,通过OCR、OpenCV等技术进行UI元素定位 —> 自动执行任务 —> 生成可视化测试报告。
优势:
- APP手机多型号兼容,可满足一套测试用例在不同型号手机上执行。
- 浏览器兼容 - 兼容Chrome/IE/Edge等多种浏览器,可满足一套测试用例在不同浏览器上执行。
- 可视化报告通过步骤+截图+视频的方式展示,准确定位缺陷,易于BUG追踪。
- 智能定位 - 支持Appium、Selenium等控件定位及OCR、OpenCV视觉定位。多种定位方式可组合录制,精准定位页面元素。
- 积木图流程图 - 测试用例以流程图的方式展现,流程图组合成积木图,产生大量测试用例。后续修改流程图,积木图将自动更新。
解决问题:
- 私有化部署,工程师现场支持、培训,测试人员轻松上手,结合客户现有的自动化管理过程,一周即可实现自动化测试。
- 回归测试量大,维护成本高。基于OCR和AI图像识别技术,自动化用例覆盖率高,大大降低后期脚本编写成本及维护成本。
- 用例及报告可读性差,特有的流程图和积木图功能,将测试用例以图形的方式展现,测试报告提供视频回放和步骤截图,让BUG一目了然。
- 龙测机器人系统
- 龙测机器人系统由视觉传感器、机械臂系统及主控计算机组成。
- 通过手眼标定方案,将手(机械臂)和眼(视觉传感器)的坐标系统联系在一起,解决摄像头和机械臂之间的坐标转换关系,让机械臂精确的定位目标。最终,龙测机器人系统将帮助用户实现利用机械臂模拟人工进行测试的操作。
- 使用场景:模拟用户真实点击的各种情况
- 解决问题:①、银行账户、手机钱包、用户密码输入等黑屏录制问题;②、触摸屏等需要非虚拟操作的情况
- NLP
- NLP是计算机科学领域以及人工智能领域的一个重要的研究方向,用计算机来处理人类的自然语言。
- 龙测NLP通过搭建国内外通用自然语言处理库,凭借单词序列分配概率模型等能力来实现精准的强语义解析能力,做到 “书写” 即 “操作”,大幅度降低录制门槛,让测试更高效、更智能。
- 使用场景:①、阅读理解—语义解析;②、自然语言语法可覆盖90%测试场景
- 解决问题:①、降低自动化学习成本;②、增强脚本可读性
❤️???? AI TestOps 录制新突破
目前,大家录制功能测试用例,应该要么是纯手工录制,要么通过代码录制,要么借助自动化方式脚本录制或者利用自动化测试工具点击UI元素录制。这几种方式的优缺点都很明显,大家都是这方面的专家了,我也就不多说了。
而龙测的新功能和以上这些大相径庭,但在某些点上,又奇妙的与我一直以来的某些想法不谋而合,算是实现了一个我期待已久的设想。
这次开发出来的新功能,名字叫“视频AI转流程图”。该功能可以把人工录制的实际操作视频通过AI识别、分析、转化为对应步骤的流程图,通俗一点讲,就是手工录制视频,然后上传系统,AI识别分析后,自动给你生成对应的流程图。
这个功能的学习难度很低,基本上看一遍就没问题了,我在自己的手机上随便录了几步,点击、左滑、右滑,随机组合。录制好的视频,上传系统,等待AI分析完,点开看了一下生成的测试用例,和刚刚实际所操作的步骤完全相同。
我个人觉得该功能具有划时代的意义,有很大可能成为功能测试用例录制的新方法,成为除手工录制、代码录制、脚本录制和UI录制以外的全新方法,甚至有望超过这四个方式,成为功能测试中最常见的录制方式。
这功能背后的技术思路还是挺让人感兴趣的。我询问了一下师博士,师博士很大方的说了出来,就是利用手机自带的触摸识别,平台获取触摸信号坐标、图像信息,首先利用AI模型对照触摸信号的坐标变化,得出操作的动作和距离;其次利用触摸信号的图像信息确定操作点,多次动作、多次识别,最终组合完成整体测试用例。
新功能的优势很明显,一方面可以解决手工测试用例无法直接转化成线上测试用例的问题;另一方面,实打实的0代码录制用例,没有测试经验的用户也可以直接拿来用,即使是高级测试们,也希望有人能帮助他们节省基本操作时间。
劣势也很容易猜到,单靠触摸信号坐标点的变化如何判断真人操作的轻重并在测试用例里复现操作,这将是一个需要投入更长时间去攻克的方向。
总体来说,瑕不掩瑜,该功能确实能帮助使用者更快更方便的完成测试用例的录制
❤️???? 测试小伙伴的福利日
为了让大家更加直观的感受这个新功能,我也让师博士给我发了一个他们录制的demo,方便大家看一下(可惜视频卡在了审核状态,等审核通过后我再贴上来)。感兴趣的朋友们可以直接去他们的平台体验 - https://prod.dragontesting.com/login?source=13,或者扫描下方二维码,添加客服的联系方式了解一下。