最近两年我一直在第四范式工作, 一家主营机器学习平台,提供人工智能服务的公司,非常幸运的是我的工作之一是测试我司的机器学习平台。在测试圈子里,这是一个最接近人工智能真理的岗位了。 所以我学习到了很多机器学习相关的知识 (因为不懂机器学习的话基本上没发测),为了能够有能力测的更深入。 我一直跟着公司的大神和吴恩达先生的视频课程学习。但即便是现在我仍然是机器学习领域中的菜鸟一枚 (请恕我不够努力)。 人工智能是在阿尔法狗一战成名之后在全世界掀起了一股浪潮,但我在那之前就加入了第四范式开始有关机器学习的工作了。这两年我看到了人工智能从无人问津到炙手可热。 相对的测试圈子里也有很多人蠢蠢欲动, 思寒也跟我说要我给大家讲讲人工智能在测试领域的应用吧,但我当时就说我不行,我是菜鸟,在测试领域里怎么有效的使用人工智能我也想不出来。你让我测试人工智能产品还凑合,直接在测试领域里搞人工智能。。。我还没那么天真。而且恕我直言,现在在知乎 live,gitchat 上搞得人工智能在测试领域的应用啦,人工智能时代测试人的去留啦这么主题都是在圈钱的,基本都是看了几天入门课程就跑出来忽悠人的。 虽然我是菜鸟,但我特么的也不是傻子,看一眼标题我就知道是在骗人,我也看不下去他们拿我热爱的事业当幌子,所以今天我来掰扯掰扯这些事。
目前人工智能在测试领域的应用可以说是凤毛菱角,场景十分的受限。 只能做比较简单的分类场景。 例如照相机软件的美颜,滤镜,插件等功能。 用模型预测是否加了效果。 又或者说十分简单的小游戏,简单到可能像天天酷跑的操作一样只有 1,2 个跳跃的简单操作。 这个场景是可以让模型自动判断要执行的操作。 但即便是这么简单的场景,能解放的人力程度依然是有限的。例如说前者如果我们做测试的时候每次拍的图片都是一样的,我们大可以使用一些图片对比库来做校验,犯不着上人工智能。如果要测试更复杂的场景,例如各种角度和背景的自拍,那么依然少不了人来去拍照。而且模型只能判断是不是加了效果。 但是效果加的如何,仍然要用人的审美观点来判断。 对于后者呢,效果好一些,首先这种自动执行游戏按键的场景是无法验证功能的,只能是运行过程中上监控判断异常和性能, 当然了达到这个目的也是不错的了。 但是为了上人工智能而要做的准备工作很多的。就说数据的收集, 我们都知道数据越多越真实模型效果越好。 但是这个数据从哪来? 现在拥有人工智能服务的大公司哪个不是费尽九牛二虎之力做数据采集。 那么问题来了谁给你测试这边费劲做数据采集系统? 能想象到的就是人工来做, 那么你要收集那么多数据有多少成本? 数据少了模型效果上不去,怎么办? 再一个是数据一定要是稳定的,也就是应用的场景要相对稳定。 如果一次迭代过去了数据来了个大变样,要重新采集数据重新建模。 就现在软件都走敏捷的套路来,维护模型都累死你。 现在公司做人工智能服务,他们用来建模的场景肯定是相对稳定的,数据是不会三天两头就大变样的。用脚趾头想一下,要是围棋规则三天两头变一次,阿尔法狗早就被人类给虐的死死的了。 所以即便我们能找到人工智能在测试领域的应用,也要掂量掂量这个成本和收益的对比是不是我们能接受的了的。
人工智能在测试领域的应用在未来肯定是有的,但是现在还太早了。对于不是从事这方面工作岗位的测试人员来说,学习一下了解一下就可以了。 不要把它当做救命稻草,觉得学了就能赶上下一个风口走上人生巅峰了。人类的科技进步是有规律的,一个事情一定是所有人才先不计成本的实现之后, 才开始慢慢的降低成本并扩展到其他领域。 现在优秀的人才都在学术领域或者在各个公司为其创造商业价值。 等他们能腾出手来辐射测试领域那就不知道能等到什么时候了。同时这东西也不是速成的,不要妄想随便培训一下,看一下教程就完事了。随便用 python 里的机器学习库写点程序训练出个模型这太特么简单了,我们公司里能在一小时内学会怎么用这些库训练个简单模型的人一大把一大把的。 但是这又有什么卵用~~,要在实际的业务中应用,不仅要懂原理,还要懂调参,要懂数据统计与处理,要懂业务,要懂很多 (我个人不是建模工程师,恕我不知道到底要懂多少)。那么对于测试人员来说搞机器学习就没用么? 也不是, 功利的讲,对于跳槽到做机器学习平台产品的公司很有用,例如我司,如果你对机器学习的基础比较熟悉的话,我们是相当欢迎的。不可否认的是,现在越来越多的公司在搭建自己的机器学习平台,而且都是大厂。 如果你学的好,对于你跳槽到这些公司来说是很有帮助的。这种产品不是公司随便搭建个模型让测试人员每个版本跑一次对比模型效果就能测试的,这样的测试方法是把机器学习当成一个黑盒子。而这类产品都是涉及到了机器学习整个的生命周期,是要把机器学习的盒子打开测试的,不懂机器学习的话你连 UI 都看不懂,表单都不会填。而现在懂这些的测试人员很少很少,所以如果你学的好,尽快跳吧。
就不说网上满天飞的骗子了,人家是网红,为了挣钱没底线的。但我们做技术的请有点节操。有 10 几个来面试的候选人跟我说他熟悉机器学习的各种应用,但基本上都过不了我的第一个问题就跪了。曾经有个大厂的 QA 跟我吹牛说自己用深度学习干了什么什么事,然后我就直接问一句,你每一层用的激活函数是什么,激活函数有什么用。他就蒙了,他都不知道激活函数是啥。 甚至有个哥们更离谱,吹了一通牛,我就问了一句什么是监督学习,他都答不上来。 迄今为止,来我这面试说自己会机器学习的 QA,能撑过一个问题的只有一个,撑过两个问题的一个都没有。 大哥们我就是个菜鸟测试,连我这关都过不去,你们怎么好意思说自己懂机器学习的。 现在一有人来面试说自己熟练应用机器学习的我就想 fail 他,都特么成条件反射了。大家都是测试, 这个圈子里大家都在做什么事情,跟机器学习有多少关系我还是知道的。通俗点说就是 -- 都是千年的狐狸,你跟我玩什么聊斋。
不在机器学习相关岗位的同学们,安心做好自己的本职工作,多写代码多实践是正经。不要被现在的这股子忽悠人的风气搞迷茫了。 当然如果你对自己的技术和机器学习理论有自信,请联系我, 第四范式欢迎你。