请选择 进入手机版 | 继续访问电脑版

大富翁Delphi开发技术网站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3333|回复: 0

[开发交流] 谈谈测试与AI

[复制链接]
匿名  发表于 2016-12-13 16:49:52 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
很早之前笔者给大家分享过一片文章,用搜索算法来搜索流程图的全路径从而设计单元测试用例。这两天,笔者就在思考,业界内类似于TestBird这样测试机构以及科研机构对这部分又是怎么做的呢?没有用到AI呢?下面就来看看路径覆盖测试的现状吧。

据国内外的一些高校以及公司所发的论文来看,现在比较前沿的一些做法已经把代码分析与路径寻找做到一起,有的甚至连用例生成都集成在其中。下面就根据我看的一些论文给大家讲讲这个流程:
·        先做代码的分析(和我之前做的代码覆盖率类似,做一些语义分析,不过需要分析到代码分支),根据分析的结果生成流程图,不一定要画出来,计算机知道每个分支之间的连接关系存在一个数据结构里即可;
·        根据流程图,结合路径覆盖的算法,计算出所有需要的测试路径(上次我分享的是全路径,现在主流的是用一些人工智能算法分析,得到一些重要的路径);

·        根据路径,自动设计测试用例(或者是检查当前用例对路径的覆盖度)。
这个是目前业界内一些较前沿的做法。我们这边对于这个流程的主要难点就在于代码的语义分析路径覆盖的算法。
语义分析是编译过程的一个逻辑阶段, 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查,进行类型审查。
我们这里要做的没有这么复杂,由于我们需要会知道代码的流程,所以我们只需要分析出代码各个部分之间的逻辑关系,根据DAG图来搜索路径。

这个部分是重中之重,也是目前软件测试测试学发论文的大热领域,上次我分享过的是基于人工智能基础的A*算法的全路径搜索,不过这种这做法虽然搜索出来的路径全,但是也会产生很多冗余的路径。所以目前业界内比较热门的做法有下面几种:
·        遗传算法
·        爬山算法
·        模拟退火

目前的论文有好多做法,但大部分都是基于这些基础上来做些改进的,比如将BP神经网络与GA算法(遗传算法)相结合。

转载请保留当前帖子的链接:http://www.dfwlt.com/forum.php?mod=viewthread&tid=2296 谢谢!

搜索简单,分享不易,且分享且珍惜,您难道不想分享下您的心得?如果觉得本文章好的话,您可以在我们网站上注册,然后发布您的好的心得,让大家共同进步,谢谢!

最新添加

回复

使用道具

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

申请友链|Archiver|手机版|小黑屋|大富翁Delphi开发技术网站 ( 苏ICP备12065705号-4 苏ICP备12065705号-4

GMT+8, 2020-7-6 21:43 , Processed in 0.093851 second(s), 21 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表