专栏首页测试技术圈人工智能和大数据会“杀死”测试么?

人工智能和大数据会“杀死”测试么?

正好最近看到一篇关于“云会杀死运维么?”的文章,感触颇深,所以有了今天这篇文章。虽然好多人都说云层每年都在带节奏或者贩卖焦虑,但是5年后再来看,或许你会换一个想法。

废话不说,直接入正题

2019年聊到人工智能测试的话题也不少,这个也和最近两年人工智能和机器学习的热度有关,只要沾上了这个话题就有起飞的可能,毕竟中国最不缺的就是大数据和基于大数据机器学习所带来的人工智能。

先不谈这些东西能不能做到位,是不是人工智障,今天我就来谈谈人工智能能够帮助测试做些什么事情和对测试的冲击。

先谈分层自动化

在谈测试之前首先要谈一个很重要的基础就是分层自动化,相信各位对什么是分层自动化,为什么要做分层自动化很清楚,但是如何分层甚至如何做好分层自动化应该想明白的却不多(基于云层2019在各个客户中聊到分层自动化的反馈数据)。

如果需要通过人工智能来完成分层自动化,能做到什么的地步呢?

人工智能之自动化进阶

01

大数据去重的自动化用例设计

第一阶段

其实这种测试策略并不是随着大数据起来的,很早就有这类测试的手段和方法。简单来说通过埋点或者日志等方式获取用户的操作流程,再将这些操作去重回放,从而实现基于用户的测试设计。

在这种方式下记录用户UI操作的代价略大而协议级别的捕获回放相对成熟,大量的全链路压测都会采用这类策略做压测负载(去重、放大、复制脱敏)。

在UI层面一般会通过业务记录来反推UI操作流程,完成测试用例的自动生成。在单元级别通过执行统计完成自动化的用例设计,从而做到接近100%的条件判定覆盖率也并不是什么难事。

02

大数据+机器学习的自动化用例设计

第二阶段

如果要给这种人工智能测试定义的话,个人觉得更像Alphago,通过足够多的数据和标记来训练机器,从而让机器能够代替人思考完成测试工作。例如对需要访问的某个功能对应图片、文本框、按钮进行识别,从而极大的提升自动化脚本实现效率,配合语义识别,最终实现讲自动化测试,实现自动化测试的目标。

思考这样一个场景,当测试人员说“请打开XX应用,找到登录,输入用户名和密码,点击登录,检查界面上是否出现了TestOps云层”,接着机器开始尝试在各个可能的位置找到XX应用,接着启动应用,查找登录(可能是图片!),在登录框中输入对应的信息点登录并验证登录后的结果。

上面的场景听起来视乎很科幻,但是实际思考下离我们并不遥远,因为在大数据下已经可以完成对每个应用的图标、操作流程、按钮等元素的深度学习和标识,就好像给一个没做过这个事情的人讲做这样的一个测试,机器是完全可以做到极高成功率的(参考天猫精灵的语义识别+CRNN文字识别+图片训练模型)。

03

训练机器像人一样测试

第三阶段

参考Alphazore在只告诉规则的基础上通过大量的练习找到其中匹配规则的最有解法。在当前可以获取被测对象覆盖率的基础上,让机器从零开始尝试识别被测对象(代码方法、API接口、UI界面),尝试访问每一个对象并对返回做出评估,基于大量的反复遍历(配合部分逻辑支持),可以获取非常高的测试遍历覆盖结果,再进一步通过专业的人工训练师补充和调整,就可以轻松完成测试工作。

以后还会需要测试么?

到了这里可能大家会想我靠,这样岂不是测试不就被杀死了么?都能自动化测试了以后还有测试什么事情?

在回答这个问题前我想问大家一个问题,以前由于语言和IDE的限制,我们常常出现被测对象500错误、各种兼容适配、内存泄露问题,现在这些问题已经几乎都灭绝了,是不是测试就消灭了?没有,测试在现在比以前任何时候的人都要多,那么科技进步到底淘汰了什么?

在人工智能测试出现后,当前的快速反馈问题解决了,接着就是研发软件的复杂度极大提升,当前的解决方案不能解决对应的问题,所谓魔高一尺道高一丈,所有的解决方案都在解决当下问题,而未来的问题并不是当下问题能解决的。例如未来的测试更多的都是没有准确答案和标准的,如何确保其质量在未知解决方案下可靠,所诞生的测试职位和空间会越来越大。

云消灭了某些运维人员,而更加专业的运维团队却比以前更大了,这是因为组织能解决的问题比以前多了很多,高维淘汰低维是历史进步无法阻挡的,快还是慢是在于你自己的节奏。

云层要补充的话

云层也不是专业的人工智能研究者,上面的内容参考了当前一些主流的互联网文章及自己的脑补,如有错误请及时指导。

最后感谢TestIn的CTO陈冠诚,帮助我审阅了这篇自己写的新年新文,也是Testin在NCTS2019的开场Show“说好不哭”给了我很多启发和灵感。

本文分享自微信公众号 - V社 北京社(SoftwareTesters),作者:TestOps云层

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 自动化的测试用例方法和实践

    王雷现就职于同城艺龙。拥有多年测试开发经验。已经丰富的测试项目经验。2010年早期加入奇虎360,负责PC杀毒以及安全相关的测试。 15年加入小米金融, 担任小...

    Criss@陈磊
  • 万亿市值的帝国崛起-微软DevOps转型实践(二)

    在上周,我发布了微软DevOps转型深度案例解析系列的第一篇文章《万亿市值的帝国崛起-微软DevOps转型实践(一)》,介绍了微软Azure DevOps团队工...

    Criss@陈磊
  • 《自动的自动化测试智能化一站式API测试服务》

    TiD2019质量竞争力大会邀请了新奥集团中台质量总监陈磊为参会者带来《自动的自动化测试智能化一站式API测试服务》精彩演讲。陈磊从智能化测试框架、智能化API...

    Criss@陈磊
  • 功能自动化测试策略

    在与软件测试团队一起工作时,经常会发生功能测试BUG的情况,需要制定均衡的测试策略。模仿用户体验的测试策略有其自身的成本。如果组织仍在手动进行功能测试,通过实施...

    FunTester
  • 软件测试之发散性思维

    当我们从一个比较宽泛的范围去审视一个问题,通过考虑各种证据,收集各种信息,思考不同的方案时,我们就是在运用发散性思维。

    用户5521279
  • Selenium自动化最佳实践技巧(上)

    近年来,越来越多的的Web端自动化测试都选择过渡到Selenium测试自动化的敏捷组织。毕竟,对于新功能的快速反馈,绝大部分人都不想错过Web端自动化测试的机会...

    FunTester
  • 高文院士:为什么中国的AI发展必须要有开源开放平台?

    10 月 31 日,由北京智源人工智能研究院主办的 2019 北京智源大会在国家会议中心开幕,本次大会围绕人工智能基础研究现状及面临的机遇和挑战、人工智能技术未...

    AI科技大本营
  • 科学家提出人机交互新方法

    2016年7月12日,美国马萨诸塞大学安姆斯特分校网站发布消息称,该校研究人员创造了一种人机控制转移的新方法。 马萨诸塞大学安姆斯特分校计算机科学研究生Kyle...

    人工智能快报
  • 如何理解TDD的三条“童子军规”?

    在美国童子军中,流传一条这样的军规:让营地比你来时更干净。Bob大叔在他的《代码整洁之道》中也引用这个词,提倡持续改进 – 作为一个专业高素养的程序员,要尽全力...

    袁慎建@ThoughtWorks
  • NLP技术在海外金融机构的应用

    本文带你了解如何运用自然语言处理来辅助投资分析,涵盖了主题抽取、事件抽取、公众情绪这三类典型的应用场景。

    数据派THU

扫码关注云+社区

领取腾讯云代金券