谈谈测试与AI——异常检测

2017-01-16   出处: 搜狗测试  作/译者:fangyu.me

                 

前言

上一篇小W就提到过,测试与人工智能,我很看好的一个方向就是UI相关的智能测试。

具体可以分成两部分来说:

  • 各种动作的封装、调度与执行

  • 结果的判断

今天想和大家分享的,主要是第二点,就是判断当前软件的情况是否是异常。其实我们这边现在已经在做一些类似的事情,稳定性测试就是随机跑动作,看看有没有崩溃。不过这个判断异常太过于简单,只能根据崩溃来判断,普通的软件异常监测不到。

这里想和大家探索的是利用人工智能来判断软件异常,现在的图像识别技术已经很成熟了,如果能建立合适的模型,借鉴异常检测来判断软件是否异常也不是没有可能。

异常检测简介

先来看什么是异常检测?所谓异常检测就是发现与大部分对象不同的对象,其实就是发现离群点。异常检测有时也称偏差检测。异常对象是相对罕见的。

下面来举一些常见的异常检测的应用:

  • 欺诈检测:主要通过检测异常行为来检测是否为盗刷他人信用卡。

  • 入侵检测:检测入侵计算机系统的行为

  • 医疗领域:检测人的健康是否异常

常见的异常检测算法

有许多的异常检测算法,不过本篇博客只会详细介绍基于模型的技术。主要有以下几种异常检测方法:

  • 基于模型的技术:许多异常检测技术首先建立一个数据模型,异常是那些同模型不能完美拟合的对象。例如,数据分布的模型可以通过估计概率分布的参数来创建。如果一个对象不服从该分布,则认为他是一个异常。

  • 基于邻近度的技术:通常可以在对象之间定义邻近性度量,异常对象是那些远离大部分其他对象的对象。当数据能够以二维或者三维散布图呈现时,可以从视觉上检测出基于距离的离群点。

  • 基于密度的技术:对象的密度估计可以相对直接计算,特别是当对象之间存在邻近性度量。低密度区域中的对象相对远离近邻,可能被看做为异常。

模型的建立

这部分也是最难的,我们需要建立合适的指标去分析当前软件的界面是否异常。这里我也给分了两种:

  • 混乱式异常

  • 功能性异常

混乱式异常就是说,界面乱了,不用管产品功能逻辑,普通人一看就知道这个界面是异常的,这种模型应该是更多依赖于图像识别。

功能性异常主要就是说,一些常用操作,UI应该有对应的响应。比如我点了个复选框,没有显示勾上,或者点了最小化按钮,界面还在最前端等等。

当然,这些小W都还在探索,哪位大神如果对这方面有研究的话欢迎赐教,不胜感激!

最后

小W认为,无论是测试还是开发,最底层的很多工作以后都可能会渐渐被人工智能所替代。路漫漫其修远兮,吾将上下而求索。

下篇预告:后面小W将会和大家分享各种动作的调度算法,可以利用人工智能尽可能优化调度算法以发现更多的异常,这个目前已经有好多成型的模型了,不过需要有完善的判断异常机制(也就是本文所说的)才能正在运用到实际工作中。


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
554° /5534 人阅读/1 条评论 发表评论

欧桐凤  2017-02-17

坐等分享调度算法的文


登录 后发表评论