首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 140 毫秒
1.
基于程序插装的动态测试技术实现   总被引:21,自引:0,他引:21  
动态测试是检测程序的动态行为的一种有效手段,本文介绍了Safepro白盒软件测试工具系列中基于程序插装的动脉测试技术实现,具体讨论了动态测试的模型、数据流模型和动态跟踪数据的编码和解码技术,插装库设计与插装策略等内容。  相似文献   

2.
一种具有快速条件断点的并行程序调试器   总被引:4,自引:0,他引:4  
刘建  王皓  沈美明  郑纬民 《软件学报》2003,14(11):1827-1833
快速条件断点是高性能并行程序调试器中进程控制必备的功能之一.分析了快速条件断点基本原理以及快速条件断点设计中需要考虑的代码生成、代码插装和源程序对应等问题.并针对上述问题,提出了预编译与运行时编译结合的代码生成方式、动态代码插装、源断点标识技术等解决方案.利用经过改进的动态补丁码工具Dyninst,设计实现了并行程序调试器XBUSTER,并实现了快速条件断点这一重要功能.测试表明,XBUSTER的执行效率比传统条件断点高.与现有的基于动态插装的系统,如Ceder,ldb和Dyner相比,XBUSTER具有功能性强、可移植性好等鲜明特点.  相似文献   

3.
李志伟 《测控技术》2011,30(10):88-91
程序插装是软件测试中一种重要的白盒测试技术。介绍了程序插装的基本原理,分析了程序插装的关键要素,研究了插装测试设计的主要内容。针对常用的程序结构,如线性程序、结构化程序、面向对象程序的不同特点,提出了相应的程序插装策略和测试实现方法。在插装测试实践中,根据程序测试的规模、要求等,需要综合考虑程序插装对被测程序性能、执行效率等方面产生的影响,采取优化的插装方法,提高插装测试效果。  相似文献   

4.
针对软件源代码静态检测时故障报告中误报较多问题,提出一种基于软件运行特征的故障检测方法,通过引入动态分析的方式进行故障检测。首先扩展了动态测试插装库,设计了八种常见故障模式对应的探针函数,然后在程序中搜索故障监控位置并进行故障监控探针的插装,最后在软件执行过程中分析插装消息中的运行特征从而识别故障。实验结果表明该方法能够有效检测程序故障且检测出的故障均为真实存在,弥补了静态分析误报率高的问题。  相似文献   

5.
软件测试中,覆盖、故障注入、性能分析等广泛使用的动态测试方法均基于程序插装技术.本文介绍一种通过分析和修改GCC编译工具,实现程序插装的新方法.该方法具有批量自动插装,插装与编译连接紧密结合,适用语言广泛等优点.最后具体讨论了如何在ARM嵌入式程序中实现程序插装,并给出修改GCC的源代码.  相似文献   

6.
王璐璐  李必信  周晓宇 《软件学报》2012,23(6):1413-1428
路径剖析是动态分析的一项重要技术,通过获取和分析程序中各条路径的执行次数,在编译优化、软件调试和测试等诸多方面发挥重要作用.针对现有技术剖析能力不足的情况(即只能或者剖析非循环路径,或者首先界定循环体执行次数的上限、然后对于执行循环体不多于该次数的路径进行剖析),对使用单个探针变量剖析过程内路径的方法进行了改进,提出了全路径剖析PAP方法,利用探针插装和回溯过程获取路径的执行次数,可以剖析过程内包含任意有限长度的路径;进一步地,针对PAP方法所需探针数目多于EPP方法的问题,通过对控制流图中包含的可规约无环子图实施EPP方法,可以减少PAP方法所需探针的数目.另外,作为PAP方法的一个典型应用,还讨论了如何通过在方法调用图中添加返回边,再利用PAP方法获取方法层次的执行序列的基本思想,满足了某些方法级动态影响分析技术的需要.实验和实例分析表明,PAP在处理循环路径剖析的问题上是有效的,并有很好的效率.  相似文献   

7.
软件测试中代码分析与插装技术的研究   总被引:2,自引:0,他引:2       下载免费PDF全文
软件测试作为软件工程的重要组成部分对提高软件质量和可靠性起到了不可忽视的作用。软件白盒测试自动化工具WBoxTool中对标准C/C++程序进行了可视化的插装和监视,收集程序动态运行信息,并进行可靠的测试分析。该文介绍了在工具WBoxTool中使用的代码分析和插装测试技术,并给出插装测试方法的一些实例应用和分析。  相似文献   

8.
为了提高现在测试用例自动生成技术的自动化程度以及效率,构造了新的评价函数并且提出了一种全新的插装方式.研究了词语法分析技术,将其应用到了程序预处理的过程中,提出了一种全新的自动插装方法.对评价函数的构造进行了研究,将数据依赖、控制依赖和分支函数结合组成新的评价函数,同时采用自动插装方式将所构造的评价函数自动插装到被测程序中.采用遗传算法作为搜索算法,以MC/DC(即修正条件/判定覆盖)准则为覆盖准则,验证了改进后的评价函数,实验结果表明,该方法具有更高的覆盖率和更快的收敛速度.  相似文献   

9.
软件测试是保证软件质量的重要手段,软件测试工具可以使测试过程变得自动化,覆盖分析为测试提供了可信度测量。该文研究了Java多线程动态测试中的覆盖率分析和线程分析一些度量标准,实现覆盖分析自动化和线程分析自动化的关键技术是程序插装。文章给出了实现此测试所需要的插装。  相似文献   

10.
程序插装技术在软件内建自测试中的应用   总被引:5,自引:0,他引:5  
软件内建自测试(Build-In-Self-TestforSoftware)思想来自于硬件内建自测试。其中测试点设置是软件内建自测试系统的核心模块之一,主要借助程序插装技术收集动态测试信息和控制程序流程。该文具体讨论了插装库的设计、实现以及测试点植入被测程序的过程。  相似文献   

11.
代码插桩是程序性能监控的重要环节。动态插桩通过对可执行程序代码的运行时修改支持动态性能监控,有助于降低性能分析工具的构建代价,提高工具易用性。本文首先阐述了Dyninst动态插桩系统的概念抽象与执行机理,然后结合大规模并行程序动态插桩的需要,对DPCL并行程序动态插桩基础设施以及基于MRNet的可扩展通信结构进行了深入分析。  相似文献   

12.
本文介绍了并行程序动态性能监测的一般概念和方法。在分析PVM内部跟踪机制及其在动态跟踪方面缺陷的基础上,对其进行了相应的改进和扩充,并在一个基于PVM的并行程序可视化性能分析系统VENUS中得到了实现。  相似文献   

13.
针对程序切片方法不提供语句的可疑程度描述,而覆盖分析方法不能充分分析程序元素间的相互影响等问题,提出上下文统计分析的软件故障定位方法。首先,将源程序转换为抽象语法树和程序依赖图;接下来,插桩程序,收集运行时信息;然后,根据失效点,执行按需的反向动态切片,确定失效产生的上下文;最后,对于反向动态切片中的节点,统计计算可疑度,输出带可疑度排序的动态程序切片。该方法不但描述了失效产生的上下文,还计算上下文中各个语句的可疑度。实验结果表明,所提方法与单一的覆盖分析方法相比,平均Expense降低了1.3%,与单一的切片方法相比,平均Expense降低了5.6%,所提方法可以有效辅助开发人员定位与修正软件缺陷。  相似文献   

14.
在针对二进制程序的实际分析场景中,动态分析方法因具有更高的准确性而得到更为广泛的关注和运用.但是以动态污点分析为代表的细粒度分析方法通常会产生较高的性能和资源开销.为缓解这些问题,本文提出一种改进的轻量级在线解耦的动态污点分析方法,其主要思想是在线解耦程序执行和指令分析,同步构建分析代码并完成分析.该方法能够进一步降低对目标程序运行时的性能影响,并易将分析过程迁移至其它上下文环境中,从而可进一步减小对目标程序运行环境的干扰.本文通过采用多种实际程序进行实验,结果表明该方法能够比传统在线污点分析具有更高的分析性能,并具有较低的系统资源消耗,易于在实际环境中进行部署和应用.  相似文献   

15.
随着软件系统功能的日益强大,软件编写的代码量呈指数趋势增长,程序错误控制和程序性能优化变得越来越困难。为了在代码量增加的情况下,有效控制程序质量,改进程序性能,程序员大多采用动态二进制分析工具进行程序分析。动态二进制代码插入框架有效地简化了动态二进制工具的构建,因此准确掌握每种动态二进制代码插入框架的特征,成为准确构建不同工具的前提。本文通过对常用的五种二进制代码插入框架进行深入研究分析,总结归纳了每种框架的特点和特定情况下的适用性,为在工具构建过程中进行框架的准确有效选择提供了参考。  相似文献   

16.
数据竞争是多线程程序的常见漏洞之一,传统的数据竞争分析方法在查全率和准确率方面难以两全,而且所生成检测报告难以定位漏洞的根源.鉴于Petri网在并发系统建模和分析方面具有行为描述精确、分析工具丰富的优点,提出一种基于Petri网展开的新型数据竞争检测方法.首先,对程序的某一运行轨迹进行分析和挖掘,构建程序的一个Petri网模型,它由单一轨迹挖掘得到,却可隐含程序的多个不同运行轨迹,由此可在保证效率的同时降低传统动态分析方法的漏报率;其次,提出基于Petri网展开的潜在数据竞争检测方法,相比静态分析方法在有效性上有较大提升,而且能明确给出数据竞争的产生路径;最后,对上一阶段检测到的潜在数据竞争,给出基于CalFuzzer平台的潜在死锁重演调度方法,可剔除误报,保证数据竞争检测结果的真实性.开发相应的原型系统,结合公开的程序实例验证了所提方法的有效性.  相似文献   

17.
基于动态插桩的工具被广泛应用于程序分析中, 但该类工具都面临着严重的性能问题。这类工具的性能开销主要由两部分组成, 即插桩引擎的开销和用户定义的分析程序的开销。为降低用户定义的分析工具的开销, 首先分析了基于动态插桩的工具的性能开销的组成, 并通过实验分析了造成性能开销的几点原因及其对工具的性能影响; 根据分析结论提出了使用离线分析方式来优化工具性能, 最后通过并行数据收集来进一步提升工具性能。使用该方法能减少分析程序5%~15%的CPU占用时间。  相似文献   

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

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

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