共查询到17条相似文献,搜索用时 78 毫秒
1.
随着互联网的迅猛发展,网络广告成为互联网最重要的商业模式之一.网络广告在促进互联网发展的同时,也带来了用户信息泄露、影响用户网页浏览体验等负面问题.为了对网络广告进行系统的研究,需要获取广告生成过程中完整的调用路径.由于加载到页面中的JavaScript文件量大、函数调用路径链路长、路径中的JavaScript代码经过了一定的压缩和混淆,因此很难通过静态方法获取网络广告调用路径.分析了动态广告生成的过程,对相关代码进行动态插桩,利用函数参数实现广告调用信息的传递,并记录下每个iframe内部的调用信息,通过匹配与合并多个iframe的信息,生成了完整的广告调用路径并确定了广告插入的操作方式.针对21个真实网站进行了实验,结果表明:该方法能够在不太影响性能的前提下,获取到静态方法无法获取到的广告动态加载过程信息并生成广告代码调用路径. 相似文献
2.
已有的web服务在其被维护一段时间之后需要被替换或者更新,而在新web服务中会重用原有web服务的部分功能。为此,设计了一个重用已有web服务可执行程序功能的框架,采用静态方法分析可执行程序以及程序的控制流、数据流,分解得到此程序的功能,最后将程序的功能转换为WSDL描述,使其能在新应用下重用。 相似文献
3.
施冬梅 《计算机工程与设计》2010,31(13)
为实现C语言开发的嵌入式软件自动路径覆盖测试,提出了基本路径覆盖(Z路径优化)测试探针插桩技术.初始化时确定探针算法、分配内存空间,插桩策略解决了插桩位置及方法,采用消息队列机制完成测试数据采集,使用模式匹配删除探针恢复现场.通过模拟测试XSBase 255嵌入式系统上的C语言计算器模块(callbacks.c),从覆盖率看出取得了一定的效果,为测试和维护工作提供了底层数据支持. 相似文献
4.
5.
动态函数调用跟踪技术是调试Linux内核的重要手段.针对现有动态跟踪工具存在支持平台有限、运行效率低的问题,基于二进制翻译,设计并实现支持多种指令集的动态函数调用跟踪工具.首先,使用二进制翻译进行系统加载、分析内核镜像,识别基本块的分支指令类型.然后,根据不同平台指令集,设计桩代码并在函数调用与返回指令翻译时插入桩指令,进而在程序执行和内核启动时实时获取时间戳、进程标识、线程标识、函数地址等信息.最后,内核加载完毕后,处理获取的信息,生成过程函数调用图.只需要根据平台指令集特点设计对应的信息获取桩代码并插入到函数调用指令翻译代码中,实现简单,易于移植支持多种平台.该方法基于二进制翻译,直接对程序或内核镜像中的指令段、代码段、符号表进行分析,不依赖源码.拓展的中间代码和额外的目标码,不影响基本块连接、冗余代码消除、热路径分析等二进制翻译的优化方法,降低了开销.基于QEMU的实验结果表明:跟踪分析结果与源代码行为一致,桩代码执行信息记录产生了15.24%的时间开销,而信息处理并输出到磁盘文件产生了165.59%的时间开销,与现有工具相比,性能有较大提升. 相似文献
6.
针对Java单元测试自动化程度和测试效率较低的问题,对基于Java程序的基本路径测试方法进行研究,提出了基于Java代码的基本路径生成方法和程序插桩方法,给出了插桩节点和控制流图节点的定义。首先,通过对Java源代码进行分析,构建程序的控制流图,进而对控制流图进行遍历生成基本路径集合;然后,对被测程序进行插桩,以获取程序的执行路径,插桩过程中保持节点和基本路径中的节点一致,使得插桩后的被测程序执行时得到的路径能够和基本路径集合进行自动化比对;最后,通过以测试数据为输入执行被测程序,对执行路径和基本路径进行比较,判断测试数据集对基本路径的覆盖度。通过实验,验证了所提出方法的有效性。 相似文献
7.
8.
9.
施冬梅 《计算机测量与控制》2010,18(10)
路径覆盖是软件测试中一种十分重要的方法,它使程序的每个分支至少执行一次;针对嵌入式软件测试的特点,提出了嵌入式软件路径覆盖测试的策略,通过模拟测试通用型智能水量计量仪C430主控程序的各个步骤,运用基本路径插桩策略分析计算插桩探针的位置、个数,统计计算整个探针的覆盖面,构造基本路径和实际程序执行路径;测试覆盖率达到71.1%,取得了一定的效果,对增强软件测试方案设计的系统性,提高软件测试质量和效率,起到了较好的作用. 相似文献
10.
软件插桩是程序优化、软件调试、软件测试、故障定位等软件动态分析的基础技术.而其中,动态二进制插桩技术,因其无侵入性,即既不需要对源代码进行修改编译,又不需要重新组装二进制程序,不会引起目标码膨胀,而广泛应用于软件动态分析,特别是在资源受限、功耗低、实时性高的嵌入式软件领域,动态二进制插桩技术十分关键.然而,现有的二进制插桩工具仅能应用于用户态软件分析,在嵌入式全系统软件领域,还没有相应的二进制插桩工具.针对上述问题,在基于动态二进制翻译的开源指令集仿真器QEMU(quick emulator)基础上,研究突破基本块运行时间统计收集,并消除中断对嵌入式系统软件控制流分析的不良影响,实现了在中间码上对嵌入式全系统软件的动态二进制插桩,完成嵌入式全系统软件运行控制流跟踪,并开发日志处理工具.实验表明,该方法能完成目标码的调用图、函数剖面、覆盖率、控制流等分析,可以解决了嵌入式全系统软件动态二进制分析问题. 相似文献
11.
12.
13.
嵌入式软件覆盖测试工具的研究 总被引:1,自引:0,他引:1
随着嵌入式系统的复杂性不断提高,嵌入式软件测试变得越来越重要;通过对ARM系统软件进行深入的研究,提出了一种应用于ARM嵌入式软件系统的覆盖测试工具的设计原理、系统模型及组成模块,分别就各个模块的具体设计进行了详细说明,着重探讨了词法语法分析和插装方式,提出了一种新的词法语法分析和插装方式;该工具能够实现ARM系列嵌入式软件的自动测试,测试了代码执行的覆盖情况,检查出代码死区,从而提高了测试效率,使嵌入式软件质量得到保证. 相似文献
14.
15.
针对遗传算法(genetic algorithm,GA)存在搜索初期收敛速度过快、易陷入局部最优解、未能充分结合搜索过程中的反馈信息,同时人工蜂群(artificial bee colony,ABC)算法存在初期寻优速度缓慢、局部搜索具有很大随机性等问题,对遗传算法和人工蜂群算法分别进行了改进,并将改进后的两种算法进行融合,实现两者的优势互补,提出了一种自适应遗传-蜂群(improved adaptive genetic-artificial bee colony, IAG-ABC)算法。采用路径覆盖信息设计引导算法搜索方向的适应度函数,并用IAG-ABC算法实现路径覆盖的测试用例生成,实验结果表明,相对于标准遗传算法和自适应遗传算法,IAG-ABC算法在测试用例生成效率和覆盖率上均有一定的优势。 相似文献
16.
17.
通过分析代码覆盖提高功能覆盖率的验证输入自动生成方法 总被引:1,自引:1,他引:0
覆盖率驱动的验证是功能验证的重要方法,但功能覆盖定义的主观性和手工调整验证输入的冗长过程都极大地影响了覆盖率驱动验证的效率.文中分析了代码行覆盖次数与功能覆盖率的内在联系,建立了基于代码行覆盖次数的概率模型,提出一种新的通过分析代码覆盖提高功能覆盖率的验证输入自动生成方法--FOCDGAG.通过代码行覆盖次数计算验证输入序列的适应度,选取对提高功能覆盖率贡献较高的输入序列,使用遗传算法自动生成新的输入序列组.实验结果表明,采用FOCDGAG时不需要功能覆盖信息,可以将全随机输入生成的功能覆盖率收敛速度提高10倍以上,将约束随机输入生成的功能覆盖率收敛速度提高20倍以上. 相似文献