原文作者:Jason Arbon, CEO at test.ai
译者:泰斯特
原文地址:https://www.test.ai/blog/ai-beat-70-testers-and-you/
前言
AI 已经可以在国际象棋、围棋、智力问答以及各种竞技游戏中击败人类,最近我发现 AI 甚至可以在测试工程师最擅长的领域 - 软件测试 中击败人类。我花了非常多的时间和精力去研究如何让机器使用神经网络、聚类、或者强化学习技术去执行测试用例,这是一项非常繁重的工作。不过从某种程度上这也是相对重复的工作。既然 AI 已经可以在城市中驾驶汽车和玩网络游戏,AI 也应该可以帮助我们执行那么一两个测试用例。
正文
测试工程师的饭碗能否保住?
不断地有测试人员问我他们的饭碗是否还保得住,而我通常会给予肯定的回答。为什么呢,有如下 3 点原因。
实际的测试用例还是需要测试人员编写,AI 只是帮助我们去执行用例。
当我被问到这些问题时,我周围通常站了 50 - 1000 个测试工程师,我怕被打死。
在很长一段时间内,部分领域的测试是无法用机器代替人类去衡量的,特别是对软件定性的质量评估。
什么是定性的质量评估:这个软件有多好用?这个软件看起来怎么样?这个承载服务的界面可以让用户有依赖感吗?就算是我们专业的测试人员,包括我,有时候也会对某些质量评估标准感到困惑,所以如果我们去专精这些领域,我们的饭碗当然是可以保住的。
来一次人机对战
我曾共同举办了一场专门为测试人员开设的教学课程,教学的内容是 AI 和机器学习。当时教室里一共有 70 位学员,这些学员可不是刚刚入门测试的菜鸟,他们都是专业的测试工程师,否则他们公司也不会支付昂贵的费用派他们来我这里接受为期一周的培训。而且这些测试人员也是有相当的自信才会来这里学习 AI 和机器学习,他们都是非常棒的测试工程师。
我当时在课堂上问了他们一个定性的测试问题(现在我也在问你):
如果你正在查看一个登录页面,那么如何确定登录页面是否可信?你如何评价页面的可信度?
可以先头脑风暴一波……
花点时间看一看上面的例子,你有什么想法了吗?
测试专家们的挑战结果
当时教室内的其他 70 个人也在思考这个问题,没有人马上举手给出答案,房间内不停地传出一阵阵思索的声音。照顾到大家从零开始思考并不是一件容易的事,我说我本来也不知道如何作答,并鼓励大家继续思考。在 70 名顶尖测试工程师集体思考了三分多钟后,我们终于迎来了第一位志愿者。前排的一位测试媛大胆地说出了她的想法:“外语”。如果登录页面的应用上架于美国应用商店但其中包含了一些非英文的单词,用户就会不太明白这个页面到底想告诉他们什么,那么该页面就不太会被用户所信任。
过了一阵子,终于有另一个人举手了,这位举手的勇士表示如果登录页面上存在一些比较著名的商标或企业名称,那么这个页面可能更被用户所信任。如果用户发现登录页上存在谷歌或者微软的商标,那么比起其他的页面,这个页面将更有可能被用户所信赖。如果这个页面上的商标用户连听都没听说过,那么这个页面将不那么可信。
在本次头脑风暴上,我们大概消耗了 70 * 5 分钟的人类计算耗时。这差不多是测试行业最顶尖人才 6 小时的脑力。但目前为止,我们并没有得出一种有效的方法去给登录页面的信赖度打分,我们仅仅讨论出可能会对信赖度产生影响的 2 个关键点。
AI 的挑战结果
好的,我们人类已经在这道题上超时。因为随着时间的推移,我们只会变得越来越举棋不定、没有耐心、觉得无聊。那么 AI 在这道题上的表现究竟如何呢?之前,在 test.ai 的总部,我们的一些非技术人员简单地查看了大量的登录页面并且给每个页面都进行了信任度打分(1 ~ 10)。然后我们使用这些数据训练了一个简单的神经网络。所以 AI 到底是如何解题的?我们分析了神经网络的所有权重,发现 AI 对这个问题的回答是这样的。
- 外国字符 — 如果登录页面中包含外国的字符或单词,则可信任度较低。
- 品牌识别 — 如果登录页面具有著名的 / 可识别的品牌形象,则更值得信赖。
- 元素数量 — 如果页面中包含更多元素,则可信任度就会降低。页面上的元素越少,则越值得信赖。
机器击败了人类!AI 不仅发现了与可信度相关的新度量维度(元素数量),而且 AI 还给出了登录页面的可信度(不可信)精确评分,范围为 1 到 10。
有趣的是,受过训练的 AI 比任何一个参与了数据标注的人都要聪明。神经网络有效地学习了所有进行标注数据的人的智慧。举个例子,如果有人精通中文或者对中国软件比较熟悉,那么他们不会将这当作是导致页面不可信的因素, AI 比任何一个人都要聪明。
并且, AI 比人类更加可靠。回想一下,我们刚才问了 70 位顶尖测试工程师这个问题。以这作为样本来看,一家公司仅仅只有 2 / 70(2.8%)的概率有能力识别出这些问题。况且没有一个人成功地找出一个以上的可信度度量维度, 而 AI 找出了 3 个。
更加重要的是, AI 反应了 “真实” 用户是如何看待可信度的。测试人员仅仅只能模拟用户的角度去进行测试,但他们始终不是真实的用户。真实的用户去进行定性质量评估将会比一个测试人员充当逆向工程师去猜测要好得多。
AI 的价格也要便宜得多,可用于所有的技术团队,并且 AI 比人类更快。经过训练的 AI 大约仅需 200 毫秒 去衡量可信度。
AI 也可以教我们
这一天,人工智能在最棘手的测试问题 - 定性质量评估中击败了 70 个测试工程师(甚至可能也击败了你)。因为人们普遍认为 AI 很难复制他们工作中的某些特殊技能,所以大家通常会忽略 AI 的进步。但现实是,在许多专业领域(包括软件开发和测试)中,人工智能通常可以比人类做得更好。如果测试工程师无法面对 AI 在某些测试方面可能比他们做的更好这一令人不安的事实,那么他们将很快会转行。
人工智能在软件测试(最困难的任务)中击败人类,是非常令人感到兴奋的。但经过了一段时间的思考过后,这也是 AI 第一次教会我(和你!)关于测试和质量方面的知识。我们现在都知道,如果登录页面上有更多元素,复选框,文本,图标等,则用户可能会对该页面不那么信任。但其实几分钟前你还不知道这一事实。如果我们不仔细查看 AI 的大脑究竟是如何运作的,我不确定今天是否有人会知道这一事实。人类现在正在向 AI 学习,从长远来看,这可能比 AI 在软件测试中击败我们更为重要。
觉得这篇文章不错的话,欢迎关注我的专栏以及同名公众号「智能测试开发」