先说说我这两年的经历,从学校毕业就做测试,运气比较好,刚一进来去做智能音响的 ai 测试,负责语义模块,搞了一大堆的专项,比如说如何生成语义的测试用例,如何对语义的纠错能力进行测试,如何判断一句话是否通顺等等吧,后面把这些能力做成了一个平台还获得了一个内部奖项,这时候学的东西很多,python、js、php、语义测试等等。不到一年,语义模块被划分,我也就不负责这一块专项建设了,有点可惜。
后面负责一款游戏 app 的测试,完全没有经验,就使用了网易开源的游戏自动化框架 airtest,这东西主要靠图像识别,但是图像识别是有缺陷的,比如说识别不出来,识别不准,识别过程中可能发生计算超载,堆栈溢出等等,自动化脚本里各种 try catch,自己都觉得是一坨屎,效果只能呵呵了。在这段期间同时也开发一个协议平台,主要是可以根据线网数据自动生成协议脚本,对后台服务进行监控,这个项目基于 django 和 flask 的,所以顺便学习了一下,还申请了一个专利,只想说专利真好写
然后中旬组织架构调整,我随业务去了另一个部门,但是负责人没有过来,我就开始整体负责这个项目,这一段时间简天天和开发、产品沟通,什么事情都找我,但是我现在只想安安静静地 coding,实在受不了,年底找 leader 沟通表达自己的想法,后面就把我的人力释放出来了
当时中心有个牛逼的项目,android 智能 monkey,就是通过算法可以快速遍历整个 app,发现 crash、内存泄漏等等,而且是不需要连接电脑的。对 ios 测试了解的都知道,开源的 monkey 就是 swiftmonkey 和 fastmonkey,都比较蠢,只能随机乱点,不够智能,后面我就萌生了做一个 ios 版智能 monkey,最好也不需要连线。现在的完成度已经是 100% 了,也已经开源了。
在做的过程中,感受到白盒测试的重要性,基于白盒,好多的自动化工具更容易建设。但是整个中心很少基于白盒建设自动化工具,都是黑盒的,比如说正在建设的 mock 平台也是通过后台的一个中转进行实现的
未来的趋势应该是测试开发一体化,白盒测试肯定是必然趋势,只是推进比较缓慢,不知道有生之年能不能赶上。反正对于我来说,白盒测试就像打开了一扇新世界的大窗,先在自己的项目里慢慢探索一下,最后一句话路漫漫其修远兮,吾将上下而求索
https://github.com/didiaodanding/NewLLDebugTool/tree/master/NewLLDebugTool/algorithms 这个 monkey 的算法代码,有需要的可以参考