论文学习:面向Java程序的智能模糊测试关键技术研究

本文探讨了面向Java程序的智能模糊测试技术,包括基于依赖性分析的测试类自动生成,条件语句污点追踪以及混合式待测方法调度算法。依赖性分析用于构建方法序列,知识库辅助构建类实例,而污点追踪则用于生成高质量测试输入。文章指出了当前方法在类实例构建和污点追踪方面的局限,并提出了改进策略。
摘要由CSDN通过智能技术生成

基于依赖性分析的测试类自动生成

(1)依赖性分析:

      本文在方法调用图的基础上,定义了使用图和修改图来表示方法和字段之间的关系。

(2)方法序列构建:

      基于分析结果,构建能够修改待测方法访问字段的方法序列。基于使用图获取待测方法访问的字段,基于修改图得到能够修改指定字段的方法集合。根据解析得到的访问字段集合,对其中的每一个字段都从修改方法集合中寻找合适的方法构造方法序列。选择方法时需要满足修改给定字段的要求,同时也要尽量简单,避免重复修改,还要考虑到选择出的方法能被实例化和赋值。

(3)基于知识库构建类实例:

      基于启发式对待测方法分类:根据是否有file对象或进行文件操作的string对象来判断是否需要处理文件。

       文件型:找出文件名参数,设置为输入,若有其他参数,用随机数生成器生成随机参数。

       非文件型:首先读取文件,转换为字节数组,然后根据操作序列中的每一个项目所需的数据类型逐个从字节数组中截取数据,转换成所需要的数据。

(4)总结

       不足:对于类实例的构建能力有待提高。本文通过收集待测程序的构造方法和工厂方法等为类提供实例化的方法,对于内建类,需要提供人工帮助,本文能够处理大多数类的实例构造问题,但仍然存在很多不能处理的场合。在知识库中没有建立对接口类的构造方法。 

       改进:改进实例生成能力;提高生成实例的质量(语义知识)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值