[发明专利]一种针对异常处理代码的测试方法有效
申请号: | 201610122013.5 | 申请日: | 2016-03-03 |
公开(公告)号: | CN105701016B | 公开(公告)日: | 2018-06-29 |
发明(设计)人: | 王林章;王铮然;李宣东 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 张苏沛 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 异常处理 测试 插桩 测试工具 可信度 代码选择 评估 开发 | ||
1.一种针对异常处理代码的测试方法,其特征在于:首先选取有充足测试用例的开源项目,通过获取程序特征和不同插桩策略的错误植入对测试用例运行时路径的影响,构造出针对程序特征的插桩策略分类器,以选出对测试路径影响最小的插桩策略;然后以分类器算法为核心构造出测试工具,对待测项目生成对应错误植入集,选择语句覆盖测试工具生成测试用例覆盖错误植入集,最终完成测试任务;该方法所包含的步骤为:
步骤一:评价不同插桩策略对测试可信度的影响;
具体步骤为:
步骤1.1:获取程序执行路径;
步骤1.2:根据不同插桩策略生成插桩位置;
步骤1.3:对不同插桩位置插桩后运行得到程序路径;
步骤1.4:比较程序路径和未插桩是否相同,获得可信度;
步骤二:设计算法来自动根据待测异常处理代码选择插桩策略;
具体步骤为:
步骤2.1:由步骤一收集评价结果并获取开源项目的异常处理相关代码特征;
步骤2.2:构造分类器;
步骤2.3:使用交叉验证确定分类器精度;
步骤三:开发测试工具来实现对java异常处理代码的测试。
2.根据权利要求1所述的针对异常处理代码测试方法,其特征在于,步骤一中:
所述测试可信度是指在错误植入下进行的测试活动,由于错误植入修改了源码,有可能导致修改了某些系统条件,从而在接下来的测试过程中执行的路径和应该执行的路径不一致,这种情况下测试可信度就会降低。
3.根据权利要求1所述的针对异常处理代码测试方法,其特征在于,步骤一中:
所述插桩策略是指在错误植入时在若干位置加入某条语句能完成相同的使程序跳转到异常处理代码的功能,不同的插桩策略就是指在不同的位置完成错误植入。
4.根据权利要求1所述的针对异常处理代码测试方法,其特征在于,步骤二中:
由不同插桩策略对程序运行的影响,和代码的静态特征:异常类型、异常代码和外部资源数据依赖、异常代码和全局变量的数据依赖、异常距离方法入口的相对距离、所在方法的长度等信息,使用分类算法决策树,经过训练和交叉验证,最终得出所需的分类器。
5.根据权利要求1所述的针对异常处理代码测试方法,其特征在于,步骤三中:
测试工具的功能包括扩展训练所需开源项目、对新项目进行针对异常处理代码测试两部分;扩展训练所需开源项目使分类器的结果准确,测试工具对新项目进行针对异常处理代码的测试。
6.根据权利要求5所述的针对异常处理代码测试方法,其特征在于:
扩展训练所需开源项目:将步骤一的方法用于用户提供的项目,将收集新的数据加入,并修改分类器模型,重新进行交叉验证;
对新项目进行针对异常处理代码的测试:输入用户提供的新项目,分析其中异常处理结构,提取其特征,由分类器得到对应插桩策略,进行错误植入,生成用例以触发异常,最终完成测试任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610122013.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:应用镜体的立体动画、活动影像播放及观视构造
- 下一篇:数码相机液晶屏遮阳罩