麻了,当我们还在用录入测试用例的时候,转转单测+流量录制,美团直接ui录制...

10,448 阅读5分钟

“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第n篇文章,点击查看活动详情

闲聊


  1. 最近听说虾皮向社会输出人才了,在疫情这几年,大环境确实不容乐观。我蛮多朋友在虾皮上班的,大部分业务是golang,金融类是java,妥妥的福利公司。薪资也高,不要问我怎么知道的。一个应届生薪资比大厂的高。
  2. 上次跟着一位上海叮咚的朋友在聊,他也是当面试官的,据他透露,一个岗位挂出去会有很多大厂的人投简历,就问你说竞争大不大。

image.png

  1. 当然也有在金融公司当产品的,这福利杠杠的,难怪人家炒股几十万的本,基金也是几十万

image.png

前言


我一有时间就逛掘金关注的列表,转转最近发的很勤的就是QA的转型,从单元测试的对比到流量录制实现测试回归,可以看到一直在这方面做很多成果,直到前几天下班我看到美团ui录制,我整个人呆住了,原来我们跟大厂的差别是辣么的大~

自动化测试必要性


为什么很多公司都在搞自动化测试呢?

那是因为当修改代码的时候,如果保证代码的质量,然后以往逻辑不被改崩,这个测试回归的成本非常大。举个例子,一个比较大的项目,涉及3个团队协作,后端前端开发,大概4-5天,测试时间也是一周,然后回归大概占据了2天。

如果遇到那种测试很严谨的同学还好说,如果像我之前遇到的测试,上线前点一点,没有问题就丢上去,然后出现坑,开发背锅,好家伙我上去就一jio~

image.png

所以测试成本跟项目质量在整个项目占的分量可想而知~

阶段一:单元测试


这是一个艰难的开始,因为对于大部分创业团队,你的kpi就疯狂的写业务代码,居然还要让我写单元测试?

当项目稳定或者项目规模达到一定程度,需要追求项目质量

单元测试或者说开发完之后,自己用postman调一调,应该是一个合格开发者的必备技能,要避免那些低级的问题。当我采访一个阿里系的朋友,他讲以前没有写单测上去就是p3事故,现在比较少写了。

确实,从代码质量上来讲,你的代码修改如何保证是没有问题的呢,人为的测试是有遗漏的,所以单元测试是有必要的。

image.png

上面是转转给出的增量代码的覆盖率,保证每个方法都有单测来保证质量。

阶段二:测试用例录入


我们现在就是这个阶段,通过测试同学编写接口,然后进行功能编排,用postman进行执行,断言判断执行结果是否跟实际一致。

当然这种好处是简单暴力,疯狂录入测试用例,但是缺点也很多,比如说接口变更的时候,用例得改变;人工录入成本;

它的好处,比单元测试,多了流程,整个功能是连贯性的。比如说下单,会设计几个系统那种,单测当然解决不了,

阶段三:流量录制


这可以解决人工手动录制的成本,比如说下单,首先供应商得有商品吧,然后用户搜索,再下单,结算,整个流程可以进行api接口录制,包括请求参数、响应的参数。他们会保存到用例库,当然如果是无序的也可以进行编排,然后是降噪,比如说有一些并发,那些流量并不是我们想要的,可以将它干掉,最后是播放,对比响应结果是否跟预期一致,然后进行预警。

如果是接口变更呢,那我们重新录制,然后进行编排,最后播放,对比结果。

这手段也经常用在线上问题的排查,它前提是需要基础数据导出,才能进行播放。

阶段四: ui录制


当我看到美团的演示的时候,我整个人麻了,自动化测试居然还能这么玩。

通过前端的点一点,录制对应的用户操作,埋点数据上报,记录对应页面返回数据,录入到测试用例里头。当播放的时候,通过ocr来识别图片是否一致,也就是返回结果是否一样。看完我整个人麻了,太强了吧。

其实我最近在搞rpa,就是模拟人点击页面,它会记录点击手机、界面某个位置,某个图标,或者某个输入框,然后模拟人输入信息,也能校验数据,也有ocr,好家伙,是不是就是通过这个去实现的?

image.png

自动化测试优点


人为的动作,很多依靠多年踩坑的经验出来的,而机器的自动化才是王道。

比如说美团,当你改动一串代码,影响的范围没有跟测试同学讲清楚,那测试就会遗漏,这时自动化测试回归就尤其重要了,像app那么多个页面,如果让测试同学来点,那要回归很久,而且问题也不能精确的找出来。

去年面大厂,被问最多就是量化,那是只有数字化、具体化了,才能实际去推动它。这也是我最近主导项目学到的,比如说我们摸清了整个项目的前景,各种优化,但是没有一个目标,例如年底接入多少个商家,做多少业绩,需要有目标,而且有数字化的目标,才能落实。

image.png