不知道大家前两天有没有被一篇叫做AlphaGo Zero:这个世界人类是多余的 的文章刷屏。
Alpha GO新闻.png总之,就是一个字, 生无可恋。。。
微信群,QQ群,各种群里面也讨论起一个话题,AI已来的时代,人类的核心竞争力到底是什么呢?
从劳动(或者工作)的范畴来划分,我们可以看到有以下的四个方面:
- 体力劳动
- 脑力劳动
- 风险劳动
- 情绪劳动
也就是说你的工作的比例,基本上可以从上面的四个方面上来做一个分布。
想想你日复一日的点点点,榨干脑力的自动化测试框架,上线前的程序猿祭天和让产品经理立字据的勇气,是不是和上面的四个方面各自有一个对应。
Tim Urban在《AI革命-通往超智能道路》一文中指出,人工智能分为三类:
弱人工智能Artificial Narrow Intelligence (ANI): 弱人工智能是擅长于单个方面的任务型驱动的人工智能。例如能战胜围棋世界冠军的人工智能,但是它只会下围棋,如果让它解决怎样更好地在硬盘上储存数据的问题,它就无法做到。目前人工智能的发展尚且达到了弱人工智能阶段。
强人工智能Artificial General Intelligence (AGI): 人类级别的人工智能。强人工智能是指在各方面都能和人类比肩的人工智能,人类能干的脑力活它都能干。创造强人工智能比创造弱人工智能难得多,Linda Gottfredson教授把智能定义为“一种宽泛的心理能力,能够进行思考、计划、解决问题、抽象思维、理解复杂理念、快速学习和从经验中学习等操作。”强人工智能在进行这些操作时应该和人类一样得心应手。
超人工智能Artificial Superintelligence (ASI): 牛津哲学家,知名人工智能思想家Nick Bostrom把超级智能定义为“在几乎所有领域都比最聪明的人类大脑都聪明很多,包括科学创新、通识和社交技能。”超人工智能可以是各方面都比人类强一点,也可以是各方面都比人类强万亿倍的。超人工智能将给人类世界带来什么样的颠覆,是生存还是毁灭成为大众关注的热点。
从严格意义上说,测试领域尚未达到真正意义上人工智能的应用阶段,只能说目前还在向类人工智能方向发展,发展的方向可以如下图所示:
AI测试的进化.png测试领域必将经历三个阶段才能迈向人工智能的世界:
手工测试:该阶段偏向于用人工来做测试执行。
测试自动化(Automation Testing)。该阶段偏向于测试执行的自动化,尤其将重复手工测试部分进行自动化,从而提高测试效率,降低人工成本。其本质是人工编写脚本,程序操作,属于任务型程序。
自动化测试(AutomatedTesting)。虽然跟测试自动化前后颠倒一下,然而意义完全不一样,它是将测试过程自动化,其包括了测试需求、测试用例设计、测试数据准备、测试环境搭建、测试版本部署、测试执行及测试报告都将自动化。然而这个过程仍然是人工设计干预,确定输入,只是把过程进行自动化,机器本身并没有达到自我学习的能力水平,属于过程管理程序。
AI化测试(AI Testing)。进入人工智能阶段以后,测试人工智能的流程和框架可能会发生颠覆性的改变,其过程及手段并不一定遵守当前的测试生命周期理论。
AI化测试将进行阶段性的发展,测试工程师这一职业或许将不再存在,测试工作任务将会被AI逐步代替,结合上面的人工智能的分类,整个测试领域会将随着人工智能的发展分为弱AI化测试、强AI化测试和超AI化测试。
弱AI化测试,测试工作任务化人工智能,通过对人类提出的知识图谱,根据知识点,处理结构或非结构化数据,并通过对程序代码的分析,计算出系统的可能的薄弱环节,自动提供测试方案,完成测试验证,指出问题所在,给予问题解决方案,甚至修改好程序。测试阶段会从过去的单元测试、集成测试、系统测试和验收测试缩减为两个阶段:机器测试和用户测试。由于最终使用者是人类,所以前端仍需要人类的介入,只是后端得到了整合,缩短了产品开发上市的时间。测试的本质还是基于传统的“机器为人服务”的关系。
强AI化测试,将进一步的向测试领域上游渗透,对测试需求,甚至产品需求进行自我认知与学习,通过对用户使用数据的分析,挖掘用户需求、产品特性,根据得出的结果,提出产品需求,开发实现产品,并执行相关测试,与需求进行匹配运算,确认产品质量。因此在强AI化测试阶段,测试概念已经进化到“机器为机器服务”的关系。
超AI化测试,对用户的需求进行引导,使用户在潜意识受到人工智能的暗示做出决策,也就是说人工智能引导需求,人类反而潜意识会认为这个需求是由自我产生。人工智能的测试则演变成为人工智能服务的工作,这已不是传统意义的测试和验证,更趋向于人类世界的医生与病人的关系。测试已经演变成“人为机器服务”的阶段了。
以上是对未来的一个畅想,在现在的这个节点上,AI测试方面的探索,CC先生也只看到了一些相关的探索,还属于 弱AI化测试:
比如,瑞典的一家公司(King.com)采用Monte Carlo树搜索算法、自动启发式构建算法、增强拓扑的神经元演化算法 (Neuro Evolution of Augmenting Topologies,NEAT )来训练 AI测试工具 (bots) ,模拟人类交互能力,完成对Candy Crush Soda游戏的功能测试、稳定性测试和性能测试,并评估游戏难度级别,预测游戏的成功率。
或者对于APP的测试,有一家NimbleDroid公司(创始人是中国人)有一个爬虫可以发现 app 有什么用例,然后对每个用例可以进行分析,看它的性能是什么样的,有没有内存泄露、性能问题、卡顿等现象,还包括程序启动慢有哪些原因。
又或者,美国一家公司(Appdiff)推出测试机器人,能够全面分析App应用中的每个界面、元素和操作流,进行性能测试和用户体验测试(怀疑吗?😄)。Appdiff的智能机器人,可以克服经典的测试方法所存在的速度慢、开销大的问题,具备类似人类的洞察力,就像魔术一样快速完成测试,而且具有学习能力,App应用程序测试越多,工具会自动地变得越来越聪明。采用的AI,就可以替换过去脚本的开发,让自动化测试进行得更轻松,而且AI能处理的测试输入,手工是无法相比的。
那现在,我们可以拷问自己一个问题:AI已来,人类测试人员的核心竞争力到底是很什么?
我试图从劳动的四象限里去寻找一下答案。
既然体力已经不是问题,脑力上AI是完胜人类的学习消耗曲线。(从Alpha zero的学习曲线里面就可以看到端倪)
风险上,AI也许比人类有更高一点的承受能力。
剩下的,估计就是情绪劳动这一片领地了。试想一下,如果开发和产品经理还是人类的情况下,他们会更愿意对着一个AI进行交流还是和一个有着很好沟通能力的人类测试人员呢?
之前CC先生说过,测试人员需要的不仅是硬技能(比如编程,比如自动化技术等等),他/她还需要有各种的软技能(沟通能力,总结能力等等)
回到苹果公司的CEO库克对人工智能的看法上:“我并不担心人工智能可以让计算机像人类一样思考。我担心的是人类会像计算机一样思考,没有自己的价值观或同情心,不考虑事情的后果。”
机械姬.png参考文章:
你知道AI可以高效测试移动应用吗?
人工智能下证券交易测试领域的发展路线初探
AI测试:让软件测试变得聪明伶俐(下)
网友评论