谈谈测试与AI—异常检测

发表于:2017-1-17 11:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:搜狗测试 fangyu.me    来源:51Testing软件测试网采编

  前言
  上一篇小W就提到过,测试与人工智能,我很看好的一个方向就是UI相关的智能测试。
  具体可以分成两部分来说:
  · 各种动作的封装、调度与执行
  · 结果的判断
  今天想和大家分享的,主要是第二点,就是判断当前软件的情况是否是异常。其实我们这边现在已经在做一些类似的事情,稳定性测试就是随机跑动作,看看有没有崩溃。不过这个判断异常太过于简单,只能根据崩溃来判断,普通的软件异常监测不到。
  这里想和大家探索的是利用人工智能来判断软件异常,现在的图像识别技术已经很成熟了,如果能建立合适的模型,借鉴异常检测来判断软件是否异常也不是没有可能。
  异常检测简介
  先来看什么是异常检测?所谓异常检测就是发现与大部分对象不同的对象,其实就是发现离群点。异常检测有时也称偏差检测。异常对象是相对罕见的。
  下面来举一些常见的异常检测的应用:
  · 欺诈检测:主要通过检测异常行为来检测是否为盗刷他人信用卡。
  · 入侵检测:检测入侵计算机系统的行为
  · 医疗领域:检测人的健康是否异常
  常见的异常检测算法
  有许多的异常检测算法,不过本篇博客只会详细介绍基于模型的技术。主要有以下几种异常检测方法:
  基于模型的技术:许多异常检测技术首先建立一个数据模型,异常是那些同模型不能完美拟合的对象。例如,数据分布的模型可以通过估计概率分布的参数来创建。如果一个对象不服从该分布,则认为他是一个异常。
  基于邻近度的技术:通常可以在对象之间定义邻近性度量,异常对象是那些远离大部分其他对象的对象。当数据能够以二维或者三维散布图呈现时,可以从视觉上检测出基于距离的离群点。
  基于密度的技术:对象的密度估计可以相对直接计算,特别是当对象之间存在邻近性度量。低密度区域中的对象相对远离近邻,可能被看做为异常。
  模型的建立
  这部分也是最难的,我们需要建立合适的指标去分析当前软件的界面是否异常。这里我也给分了两种:
  · 混乱式异常
  · 功能性异常
  混乱式异常就是说,界面乱了,不用管产品功能逻辑,普通人一看就知道这个界面是异常的,这种模型应该是更多依赖于图像识别。
  功能性异常主要就是说,一些常用操作,UI应该有对应的响应。比如我点了个复选框,没有显示勾上,或者点了最小化按钮,界面还在最前端等等。
  当然,这些小W都还在探索,哪位大神如果对这方面有研究的话欢迎赐教,不胜感激!
  最后
  小W认为,无论是测试还是开发,最底层的很多工作以后都可能会渐渐被人工智能所替代。路漫漫其修远兮,吾将上下而求索。
  下篇预告:后面小W将会和大家分享各种动作的调度算法,可以利用人工智能尽可能优化调度算法以发现更多的异常,这个目前已经有好多成型的模型了,不过需要有完善的判断异常机制(也就是本文所说的)才能正在运用到实际工作中。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号