首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到17条相似文献,搜索用时 78 毫秒
1.
许蕾  刘蕊成  陈贵美  赵晨  张卫丰 《软件学报》2019,30(7):2124-2138
随着互联网的迅猛发展,网络广告成为互联网最重要的商业模式之一.网络广告在促进互联网发展的同时,也带来了用户信息泄露、影响用户网页浏览体验等负面问题.为了对网络广告进行系统的研究,需要获取广告生成过程中完整的调用路径.由于加载到页面中的JavaScript文件量大、函数调用路径链路长、路径中的JavaScript代码经过了一定的压缩和混淆,因此很难通过静态方法获取网络广告调用路径.分析了动态广告生成的过程,对相关代码进行动态插桩,利用函数参数实现广告调用信息的传递,并记录下每个iframe内部的调用信息,通过匹配与合并多个iframe的信息,生成了完整的广告调用路径并确定了广告插入的操作方式.针对21个真实网站进行了实验,结果表明:该方法能够在不太影响性能的前提下,获取到静态方法无法获取到的广告动态加载过程信息并生成广告代码调用路径.  相似文献   

2.
已有的web服务在其被维护一段时间之后需要被替换或者更新,而在新web服务中会重用原有web服务的部分功能。为此,设计了一个重用已有web服务可执行程序功能的框架,采用静态方法分析可执行程序以及程序的控制流、数据流,分解得到此程序的功能,最后将程序的功能转换为WSDL描述,使其能在新应用下重用。  相似文献   

3.
为实现C语言开发的嵌入式软件自动路径覆盖测试,提出了基本路径覆盖(Z路径优化)测试探针插桩技术.初始化时确定探针算法、分配内存空间,插桩策略解决了插桩位置及方法,采用消息队列机制完成测试数据采集,使用模式匹配删除探针恢复现场.通过模拟测试XSBase 255嵌入式系统上的C语言计算器模块(callbacks.c),从覆盖率看出取得了一定的效果,为测试和维护工作提供了底层数据支持.  相似文献   

4.
基于可执行代码的缓冲区溢出检测模型   总被引:1,自引:0,他引:1       下载免费PDF全文
赵奇永  郑燕飞  郑东 《计算机工程》2008,34(12):120-122
根据缓冲区溢出原理,提出一种基于可执行代码的缓冲区溢出检测模型,给出该模型的理论基础,描述模型构建的过程,提出新的缓冲区引用实例的识别方法。该模型将可执行代码反汇编为汇编代码,建立函数调用关系图和控制流图,分析缓冲区变量及其引用实例,从缓冲区引用实例逆程序流方向归结路径约束,通过约束求解判断缓冲区溢出可能与否。  相似文献   

5.
动态函数调用跟踪技术是调试Linux内核的重要手段.针对现有动态跟踪工具存在支持平台有限、运行效率低的问题,基于二进制翻译,设计并实现支持多种指令集的动态函数调用跟踪工具.首先,使用二进制翻译进行系统加载、分析内核镜像,识别基本块的分支指令类型.然后,根据不同平台指令集,设计桩代码并在函数调用与返回指令翻译时插入桩指令,进而在程序执行和内核启动时实时获取时间戳、进程标识、线程标识、函数地址等信息.最后,内核加载完毕后,处理获取的信息,生成过程函数调用图.只需要根据平台指令集特点设计对应的信息获取桩代码并插入到函数调用指令翻译代码中,实现简单,易于移植支持多种平台.该方法基于二进制翻译,直接对程序或内核镜像中的指令段、代码段、符号表进行分析,不依赖源码.拓展的中间代码和额外的目标码,不影响基本块连接、冗余代码消除、热路径分析等二进制翻译的优化方法,降低了开销.基于QEMU的实验结果表明:跟踪分析结果与源代码行为一致,桩代码执行信息记录产生了15.24%的时间开销,而信息处理并输出到磁盘文件产生了165.59%的时间开销,与现有工具相比,性能有较大提升.  相似文献   

6.
针对Java单元测试自动化程度和测试效率较低的问题,对基于Java程序的基本路径测试方法进行研究,提出了基于Java代码的基本路径生成方法和程序插桩方法,给出了插桩节点和控制流图节点的定义。首先,通过对Java源代码进行分析,构建程序的控制流图,进而对控制流图进行遍历生成基本路径集合;然后,对被测程序进行插桩,以获取程序的执行路径,插桩过程中保持节点和基本路径中的节点一致,使得插桩后的被测程序执行时得到的路径能够和基本路径集合进行自动化比对;最后,通过以测试数据为输入执行被测程序,对执行路径和基本路径进行比较,判断测试数据集对基本路径的覆盖度。通过实验,验证了所提出方法的有效性。  相似文献   

7.
嵌入式软件路径覆盖测试数据采集   总被引:4,自引:3,他引:1       下载免费PDF全文
分析嵌入式软件动态测试的特点及路径覆盖测试策略,设计动态测试数据采集处理框架,其中包含程序分析与插桩、测试数据采集传输、测试结果分析与处理3大子系统。以静态分析结果指导插桩,采用消息队列机制采集传输数据,并利用测试结果制作初步测试报告。通过测试实例分析模拟采集、处理一条路径数据的过程,证明该框架的可行性。  相似文献   

8.
嵌入式软件语句覆盖率测试插桩技术   总被引:1,自引:0,他引:1  
孙红利  王忠民  王文浪 《计算机应用》2010,30(10):2738-2740
针对基于宿主机的嵌入式软件测试,提出一种单元测试中通用的语句覆盖率测试方法,通过插桩技术,采用向源代码插桩实现语句覆盖率测试。设计了测试代码的实现算法,通过测试代码可以自动完成向被测代码插桩。这些方法被成功地应用到笔者所在项目组开发的嵌入式软件仿真测试平台ARMtest上。利用这些方法,在嵌入式硬件系统未完成开发之前,可通过宿主机环境和仿真环境及时发现嵌入式软件开发初期的一些不足并加以完善。  相似文献   

9.
路径覆盖是软件测试中一种十分重要的方法,它使程序的每个分支至少执行一次;针对嵌入式软件测试的特点,提出了嵌入式软件路径覆盖测试的策略,通过模拟测试通用型智能水量计量仪C430主控程序的各个步骤,运用基本路径插桩策略分析计算插桩探针的位置、个数,统计计算整个探针的覆盖面,构造基本路径和实际程序执行路径;测试覆盖率达到71.1%,取得了一定的效果,对增强软件测试方案设计的系统性,提高软件测试质量和效率,起到了较好的作用.  相似文献   

10.
软件插桩是程序优化、软件调试、软件测试、故障定位等软件动态分析的基础技术.而其中,动态二进制插桩技术,因其无侵入性,即既不需要对源代码进行修改编译,又不需要重新组装二进制程序,不会引起目标码膨胀,而广泛应用于软件动态分析,特别是在资源受限、功耗低、实时性高的嵌入式软件领域,动态二进制插桩技术十分关键.然而,现有的二进制插桩工具仅能应用于用户态软件分析,在嵌入式全系统软件领域,还没有相应的二进制插桩工具.针对上述问题,在基于动态二进制翻译的开源指令集仿真器QEMU(quick emulator)基础上,研究突破基本块运行时间统计收集,并消除中断对嵌入式系统软件控制流分析的不良影响,实现了在中间码上对嵌入式全系统软件的动态二进制插桩,完成嵌入式全系统软件运行控制流跟踪,并开发日志处理工具.实验表明,该方法能完成目标码的调用图、函数剖面、覆盖率、控制流等分析,可以解决了嵌入式全系统软件动态二进制分析问题.  相似文献   

11.
在对汇编语言源程序的测试工作中,由于其非结构化的设计思想以及众多的跳转指令,使得插桩非常困难。该文在汇编嵌入式软件程序流程图自动生成的研究基础上,提出了以PC值为基准条件的断点设置、检测机制以及虚拟插桩机制。并结合特定的测试用例在仿真测试平台上得以实现,最后通过实验检验了其正确性。  相似文献   

12.
目前的覆盖测试存在着大量的冗余测试用例,严重影响测试的效率。基于此,介绍一种基于全局支配图算法的覆盖测试工具,通过在局部支配图中加入辅助循环树算法及寻找临近节点,提出一种全局支配图改进算法,利用该算法能够计算出覆盖源程序的最小测试用例集。实验结果表明,该算法能够减少覆盖分析时间,生成较少的测试用例和达到较高的覆盖率。  相似文献   

13.
嵌入式软件覆盖测试工具的研究   总被引:1,自引:0,他引:1  
乔文军  万晓冬 《计算机测量与控制》2007,15(9):1238-1240,1258
随着嵌入式系统的复杂性不断提高,嵌入式软件测试变得越来越重要;通过对ARM系统软件进行深入的研究,提出了一种应用于ARM嵌入式软件系统的覆盖测试工具的设计原理、系统模型及组成模块,分别就各个模块的具体设计进行了详细说明,着重探讨了词法语法分析和插装方式,提出了一种新的词法语法分析和插装方式;该工具能够实现ARM系列嵌入式软件的自动测试,测试了代码执行的覆盖情况,检查出代码死区,从而提高了测试效率,使嵌入式软件质量得到保证.  相似文献   

14.
黄晨  董燕  于倩  虞砺琨 《测控技术》2017,36(1):100-103
基于目标码的测试覆盖率分析是软件测试过程的必要关键步骤,不可达分析能够保证测试的完整性和充分性.给出嵌入式软件基于覆盖率测试的分析过程,在嵌入式虚拟测试平台的基础上,对程序目标代码插桩,采用语句和分支覆盖率分析准则,将黑盒测试和白盒测试相结合,分析不可达分支语句引入机理,并通过具体的反汇编代码实例分析来验证这种测试方法的可行性和有效性.专门针对覆盖率不可达的分析可以有效验证软件功能,发现软件缺陷,进一步提升软件质量.  相似文献   

15.
针对遗传算法(genetic algorithm,GA)存在搜索初期收敛速度过快、易陷入局部最优解、未能充分结合搜索过程中的反馈信息,同时人工蜂群(artificial bee colony,ABC)算法存在初期寻优速度缓慢、局部搜索具有很大随机性等问题,对遗传算法和人工蜂群算法分别进行了改进,并将改进后的两种算法进行融合,实现两者的优势互补,提出了一种自适应遗传-蜂群(improved adaptive genetic-artificial bee colony, IAG-ABC)算法。采用路径覆盖信息设计引导算法搜索方向的适应度函数,并用IAG-ABC算法实现路径覆盖的测试用例生成,实验结果表明,相对于标准遗传算法和自适应遗传算法,IAG-ABC算法在测试用例生成效率和覆盖率上均有一定的优势。  相似文献   

16.
基于覆盖测试的嵌入式软件自动裁剪   总被引:1,自引:0,他引:1       下载免费PDF全文
针对软件移植嵌入式平台时的裁剪问题,提出一个通用的、自动化的裁剪方案。该方案基于覆盖测试思想,利用源代码静态分析技术,在每个函数的首尾插入桩代码,通过执行已插桩的程序,动态地获得函数的覆盖信息。根据函数的覆盖信息,能对软件进行自动化的裁剪。该裁剪方案可以将软件体积减少30%左右。  相似文献   

17.
覆盖率驱动的验证是功能验证的重要方法,但功能覆盖定义的主观性和手工调整验证输入的冗长过程都极大地影响了覆盖率驱动验证的效率.文中分析了代码行覆盖次数与功能覆盖率的内在联系,建立了基于代码行覆盖次数的概率模型,提出一种新的通过分析代码覆盖提高功能覆盖率的验证输入自动生成方法--FOCDGAG.通过代码行覆盖次数计算验证输入序列的适应度,选取对提高功能覆盖率贡献较高的输入序列,使用遗传算法自动生成新的输入序列组.实验结果表明,采用FOCDGAG时不需要功能覆盖信息,可以将全随机输入生成的功能覆盖率收敛速度提高10倍以上,将约束随机输入生成的功能覆盖率收敛速度提高20倍以上.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号