首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到15条相似文献,搜索用时 140 毫秒
1.
嵌入式软件测试中,代码覆盖率测试和内存检测通过给程序源代码插桩,在程序动态运行的过程中搜集测试数据;但是这种插桩无法获取进程每次运行的时间。基于进程切换的内核taskhook插桩,是通过对Linux2.6操作系统内核进行分析,建立了进程监控的插桩点选取,获取进程生命周期中的时间相关的指标,最终实现程序的任务性能测试。  相似文献   

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

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

4.
嵌入式软件白盒测试工具CodeTEST在工具链的开发环境中,通过工程管理文件Makefile自动给源代码插桩做标记。本文灵活利用CodeTEST插桩技术,通过工具链的方式实现对ADS工程源文件自动插桩,以获取CodeTEST更广泛的测试范围。  相似文献   

5.
适应度函数的设计在基于搜索的测试用例生成技术中占据重要的位置,然而在某些特殊的程序中,如存在嵌套、非结构性跳转或因return,break等语句跳出循环的程序,已有的适应度函数无法评价到所有的分支.目前的方法是修改程序的源代码,以使每个分支得到评价.但修改源代码不但可能影响程序的原有结构、引入错误,而且很难实现自动化.针对这一问题,提出一种基于模式组合的粒子群优化测试用例生成方法.首先,将分支条件定义为"模式",即,一类具有相同特征且能提高适应度值的个体集合,并改变其分支函数的插桩方式,可解决分支条件不完全评价的问题;然后,设计一种新的交叉算子,寻找到所有使模式的分支函数值最小的个体,将这些个体中含有模式的部分通过交叉算子组合到一个个体上,既可防止模式在进化过程中被破坏,又可因多种模式的组合而提高个体的适应度值;最后,使用局部搜索策略对种群中的最优个体进行搜索,提高粒子群优化算法的局部搜索精度,进一步提高测试用例生成效率.为了评价该方法的有效性,基于一组基准程序和开源程序进行实验.实验结果表明:对于含有模式的程序,该测试用例生成方法与已有方法相比,在覆盖率和平均进化代数上均有明显优势.  相似文献   

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

7.
准确地获取应用程序在真实系统上运行的访存地址序列(traces)是进行内存系统调度及结构优化的基础.HMTT是自主研发的软硬件结合的内存监测分析系统,能够实时获取完整的全系统访存traces.但是得到的traces与应用程序上层事件之间存在语义鸿沟问题,比如上层函数执行流与访存traces的同步问题.针对该问题提出了一种软硬件结合获取包含函数级别语义信息访存traces的方法,软件方面通过二进制插桩的方式,直接修改内存中的进程映像,在目标函数的入口及出口各插入标记tag访存指令,进而能够被HMTT卡监测并识别.采用二进制插桩不需要程序的源代码,不需要对程序重新编译链接,而且引入的运行开销很小.实验表明采用软硬件结合的方式能够有效地获取包含函数级别语义信息的访存traces,对于SPECCPU2006中的访存密集型程序引入的性能开销只是原程序的62%,而使用Pin工具的纯软件方式获取访存traces将导致至少10.4倍的性能开销.  相似文献   

8.
本文以无线电调谐单元设备中的无线电调谐软件为例,通过引入LDRATESTBED自动化测试工具提高测试效率,实现满足DO-178C中的语句覆盖数据的目标.语句覆盖是民用飞机软件研制中最基本的覆盖率测试目标.语句覆盖可以有效检测出源代码中的多余代码,提高代码质量.通过实验表明LDRATESTBED可以快速完成源代码插桩以及代码覆盖率数据分析任务,同时,该工具自动标识源代码中未执行的代码,为开发者提供了分析的基础.工具生成的语句覆盖率数据满足DO-178C标准目标要求,可以作为证据提交给局方进行审查,提高软件的置信度.  相似文献   

9.
李树芳  安金霞  刘洋  陈良 《计算机科学》2017,44(11):191-194
近年来,越来越多的安全关键软件系统运行在国产Linux操作系统上,其中大多数采用C++开发,而C++正在扩展新版语言规范,已有的覆盖率统计插装工具不能满足要求。给出一种基于Clang/LLVM的C++源代码覆盖率统计插装方法,利用开源社区Clang/LLVM库提供的C++源代码解析和操作功能,构建面向C++源代码的语句、分支和MC/DC覆盖率统计框架,在运行时采集覆盖率信息并进行统计分析,输出覆盖率分析报告。实际案例表明,该方法简易实用,能够满足真实工程软件的覆盖率测试分析需求。  相似文献   

10.
传统的基于覆盖率反馈的模糊测试工具通过跟踪代码覆盖率来指导测试用例的变异,从而发现目标程序中潜在的漏洞。但在闭源软件的模糊测试过程中,跟踪覆盖率不仅带来额外的开销,而且在模糊测试开销中占据主导。本文通过对Windows平台闭源软件模糊测试开销的剖析,锁定其中两个主要来源,插桩开销和“预热”开销。基于上述分析,提出了一种基于稀疏插桩跟踪的模糊测试方法,在不影响覆盖率计算精度的前提下,采用基于稀疏插桩的跟踪策略,仅对目标程序中覆盖率不可推导的基本块或分支进行插桩跟踪,并根据跟踪结果推导其余基本块或分支的被覆盖情况;同时结合“预热”优化,避免因动态插桩平台反复启动以及对目标程序代码的重复翻译所引入的时间开销。基于上述方法实现的原型工具SiCsFuzzer,在Windows平台9个规模在286KB~19.3MB,类型涉及图片处理、视频处理、文件压缩、加密和文档处理等类型应用所组成的测试集上,跟踪覆盖率引入的额外开销为程序正常执行时间的1.1倍,比传统的基于覆盖率反馈的模糊测试工具快3倍,并发现PDFtk和XnView程序最新版本中的未知漏洞各1个。  相似文献   

11.
介绍基于遗传算法的测试用例自动生成技术,研究了利用动态调试技术和静态反汇编技术计算遗传算法中适应度函数的方法,设计了基于遗传算法的黑箱测试用例自动生成模型。该模型可直接对可执行文件自动生成测试用例,避免对程序进行源代码插装,降低对程序源代码的要求,扩展了基于遗传算法的测试用例自动生成技术的应用范围。  相似文献   

12.
基于路径覆盖插桩的可执行代码测试工具实现   总被引:1,自引:0,他引:1       下载免费PDF全文
王轶  蒋同海  董军  周喜 《计算机工程》2012,38(5):35-37,40
为解决传统程序插桩技术存在代码膨胀和运行时间较长的问题,提出对可执行代码进行控制流路径覆盖消除冗余的插桩策略。依据该策略设计一种针对Java可执行代码的单元测试工具,完成程序执行路径跟踪和覆盖率分析。对测试工具进行功能验证和性能分析,结果表明,该策略能够有效减少插桩点数量,降低插桩对被测程序时间特性的影响。  相似文献   

13.
基于退火遗传算法的单元测试方法   总被引:1,自引:0,他引:1       下载免费PDF全文
为提高单元测试的效率,提出一种基于退火遗传算法的自动化单元测试方法。将遗传算子与进化代数进行关联,使其更快收敛于最优解。采用基于分支距离的方法构造适应值函数,根据代码转换功能,将判定结点处的代码转换为平行结构、将分支距离量化为[0, 1]之间的数。实验结果表明,该方法能以更短的时间获得更高的代码覆盖率。  相似文献   

14.
Robustness testing of Java server applications   总被引:1,自引:0,他引:1  
This paper presents a new compile-time analysis that enables a testing methodology for white-box coverage testing of error recovery code (i.e., exception handlers) of server applications written in Java, using compiler-directed fault injection. The analysis allows compiler-generated instrumentation to guide the fault injection and to record the recovery code exercised. (An injected fault is experienced as a Java exception.) The analysis 1) identifies the exception-flow "def-uses" to be tested in this manner, 2) determines the kind of fault to be requested at a program point, and 3) finds appropriate locations for code instrumentation. The analysis incorporates refinements that establish sufficient context sensitivity to ensure relatively precise def-use links and to eliminate some spurious def-uses due to demonstrably infeasible control flow. A runtime test harness calculates test coverage of these links using an exception def-catch metric. Experiments with the methodology demonstrate the utility of the increased precision in obtaining good test coverage on a set of moderately sized server benchmarks.  相似文献   

15.
在采用函数占用(覆盖)的测试代码用例优先级排序过程中,其特征一般是以函数占用代码率信息表示,容易忽视其他优先排序影响因素,对此提出基于函数占用和需求分析的测试代码用例自适应优先排序方式。首先,以测试代码用例优先级排序过程中的调用函数存在路径为参照,利用源代码信息变更影响,进行影响域的回归测试分析,并对测试代码用例集进行回归范围确定。其次,考虑测试代码用例优先级排序的需求影响因素,并确定其需求优先级评价指标,然后与调用函数源代码变更影响指标进行权重自适应融合,并设计基于函数占用和需求分析评价优先级的动态调整算法。最后,通过仿真对比显示,所提方法可提高缺陷检测正确率,降低测试成本。  相似文献   

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

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