资源描述
嵌入式软件测试系统软件V2.3
CRESTS/H-TEST
1. 概论
CRESTS软件对嵌入式系统软件提供了可视化测试的工具平台,在对软件有了静态分析的基础上,作为专为嵌入式系统软件分析测试而设计的工具平台,广泛应用于嵌入式软件在线动态的系统测试中。作为嵌入式软件系统测试工具的科锐时嵌入式软件测试系统软件V2.3,简称软件测试系统,CRESTS/H-TEST,运用软件代码插桩技术,采用一种软件在目标机回路工作方式将测试平台主机通过目标机的通信接口直接连接到被测试系统,为跟踪嵌入式应用程序,分析软件性能、内存泄漏及测试软件的覆盖率等提供了一个实时在线的高效率解决方案。H-TEST对源代码进行插桩,这种插桩对系统影响很小,做到最大的系统无关性。它的这种方式十分适合嵌入式系统。 CRESTS/ H-TEST还是一个可共享的网络工具,它将给整个开发和测试团队带来高品质的测试手段。
H-TEST包括两部分,数据采集数单元和据处理单元
1)数据采集单元
数据采集单元负责从目标机获取的监控数据,采集后的数据通过网络或其他通讯、调试端口送给数据处理单元。
2)数据处理单元
数据处理单元负责处理数据采集单元从目标板上采集后的数据,并把处理后的数据以可视化的方式显示在宿主机的CRESTS平台工具窗口中。
2. H-TEST主要的功能(“★”的标注是特有的功能)
(1)程序静态分析与检查功能
★ 程序分析与检查功能支持代码编程规则检查,并对影响程序结构化的代码进行警告
★ 提供程序控制流图、程序控制流轮廓图、程序调用树、程序被调用树和程序危害性递归等
★ 给出度量程序质量的多种度量元(如McCabe的圈复杂度,程序跳转数,程序扇入/扇出数、程序注释率、程序调用深度,程序长度,程序体积,程序调用及被调用描述等)
(2)性能分析
★ 一次可同时测量多达128000个函数,1000个任务,生产率提高,再也不用凭猜测进行局部测量,不用多次进行复杂枯燥的设置和测量。
★ 非采样方式,收集全部数据,精确度很高。
★ 易于理解,以不同的级别显示性能数据(函数级,任务级),组织严密的性能数据显示简明易读。
(3) 测试覆盖分析
在对软件进行测试时,代码覆盖率分析是必须的,否则就无法评价我们的测试。代码覆盖率分析无法由我们的测试工程师人工或简单编程实现,因为它要对被测源代码进行插装,即按一定算法在必要位置插入一些函数或插桩点,负责报告程序运行进度而又要做到不影响程序的正常运行。
★ 支持块覆盖率BC、语句覆盖率SC、决策覆盖率DC、可变条件决策覆盖率MCDC的测试,适用于单元、集成和系统等各个测试阶段;
★ 通过动态显示覆盖率趋势,去除不必要的测试,减少测试次数,测试更有效率。
实时动态显示代码的覆盖情况,让你清楚的知道要测量什么地方,简化测试用例生成过程。
在一个实时运行的目标系统中,确保可以显示详细的软件运行过程。
清楚的描述你的代码被检验到了什么程度,发现死代码。
★ 提供的报告可以直接在对测试过程和测试条件描述的文档中使用。
(4) 动态存储器分配分析
★ 动态内存分配分析,显示分配的内存块的大小,了解程序内存分配的真实情况。
★ 检测内存泄露,检测内存分配错误,可视化的内存错误提示,并精确显示发生错误时的上下文情况,精确定位内存错误。
指出发生错误的原由,无需做痛苦的代码跟踪,就可以发现错误,并在问题出现前发现征兆,在系统崩溃前发现内存泄露错误。
(5) 测试工具代码跟踪
彻底的可视化,参数交换,函数嵌套等非常清析
支持程序在缓存执行,Cache/pre-fetch使能。
代码跟踪,提供“软”跟踪、调试工具功能
★超大的跟踪空间,可实现深度跟踪,可跟踪多达6500000行源代码。
★RTOS运行,函数嵌套,易于对代码的跟踪,函数调用,程序运行分支可视化
★使用软件事件设置跟踪任务,函数,调用链等
★在跟踪记录中可以添加使用者标记,跟踪关心的变量;
★外部触发:你可以用从你的目标板输入输出口,示波器或者是逻辑分析器发出的信号来触发追踪数据采集。
各功能具体说明如下:
1) 程序静态分析与检查功能
控制流图:
调用图:
度量元:文件名、扇入、扇出数、代码体积、代码长度等
★ 程序静态分析与检查功能说明:
1)程序分析与检查功能支持代码编程规则检查,并对影响程序结构化的代码
进行警告;
2)提供程序控制流图、程序控制流轮廓图、程序调用树、程序被调用树和程
序危害性递归等;
3)给出度量程序质量的多种度量元(如McCabe的圈复杂度,程序跳转数,程
序扇入/扇出数、程序注释率、程序调用深度,程序长度,程序体积,程序
调用及被调用描述等)。
★支持C和C++语言代码的自动分析功能;
★无须添加额外特定接口,就能支持各种8位、16位、32位、64位处理器,
有良好的通用性,
支持多种编译器,对不同的编译器,提供一定客户定制能力;
★支持主要的实时操作系统,如Vxworks等;
★测试嵌入式系统的工具软件同时能运行在常见的主机测试环境中,如Windows、Linux、Solaris,无须增加额外投资;
★支持网络共享;
★支持对运行在嵌入式系统中的软件进行覆盖率测试,可以同时实现块覆盖
率BC、语句覆盖率SC、决策覆盖率DC、可变条件决策覆盖率MCDC的测试,
适用与单元、集成和系统等各个测试阶段;
★支持对函数和任务的性能分析,精度要求达到纳秒ns级别;
★支持内存分配分析,动态监控内存适用,报告内存错误;
★支持代码跟踪,帮助测试人员分析错误所在;
2)性能分析
对于嵌入式的实时系统来说,性能指标的至关重要的,优化性能是指在系统资源(如内存容量,CPU时钟频率)不变的情况下,采取相应的措施,(如优化关键算法,优化调用接口,修正任务的优先权)来提高系统的响应速度,执行效率等性能。
性能分析是为优化性能提供科学的依据,它主要是对模块调用关系和分支调用频度进行跟踪检测,实时的显示他们的执行时间,调用的次数等信息,以使我们较容易的发现系统的瓶颈。
H-TEST可以完全精确的同时监视整个应用程序,探测程序执行的瓶颈所在。因此它可以监控大型程序中每一个子程序的执行。
H-TEST可以精确计算出每个模块的执行时间,并能够列出其最大、最小和平均的以及累计执行时间。H-TEST的性能分析能够为嵌入式应用程序的优化提供依据,通过优化关键函数的运算法则,调整优化调用接口,使软件工程师可以有针对性地优化某些关键性的函数或模块,以及改善整个软件的总体性能。
优点:
可同时测量的模块数量不受限制,生产率提高,再也不用凭猜测进行局部测量,不用多次进行复杂枯燥的设置和测量。
全程跟踪方式,收集全部数据,精确度提高
3)测试覆盖分析
代码覆盖率表明了被测软件在测试执行时那些代码被执行过了,那些没有执行过。在软件测试过程中有效地监控代码覆盖率是提高软件测 试有效性的一项重要途径。通过对被测软件在测试执行时代码覆盖情况,可了解当前测试完成的程度,判断我们的测试进行到了什么程度,有没有完成,需不需要改进,快速识别遗漏的测试数据,为测试人员科学的控制测试的进程,增加测试用例提供依据。
H-TEST根据被测软件的目标码计算覆盖率指标,包括有:
Ø 语句覆盖
Ø 分支/判定覆盖
Ø MC/DC
H-TEST提供程序总体概况,函数级代码以及源级覆盖趋势等多种模式来观测软件地覆盖情况。由于它是一种完全地交互式工具,测试者可以在对系统进行操作地同时跟踪覆盖情况。
H-TEST覆盖率信息包括程序实际执行的所有内容,而不是采样的结果,它以不同颜色区分运行和未运行的代码,可以长时间连续跟踪,跟踪深度没有限制,特别适用于测试大型嵌入式软件。
以文件的形式显示覆盖率:
以函数的形式显示覆盖率:
以变色的形式显示程序动态运行情况:
代码着色:
4)追踪功能
H-TEST提供代码追踪和变量/地址追踪功能。
H-TEST对程序实际运行过程进行纪录,以了解程序运行的实际情况。该工具可以从两个不同的抽象层次:1)高级,函数执行的入口和出口。2)原码级,显示每条执行过的语句。提供在跟踪记录中单步的模拟程序的运行,显示函数的调用链。最大跟踪深度没有限制(仅受硬盘的容量限制);
H-TEST还可以对程序中的变量/地址的变化情况进行追踪。追踪过程中记录的内容包括:变量/地址发生变化的时间,发生变化时正在执行的代码。
利用上述追踪功能,可以大大的提高软件开发人员的工作效率。
5)动态内存分配分析
H-TEST能够实时监视目标代码的动态内存分配信息,显示每个函数、每个内存分配点的内存分配和释放情况,同时监视动态内存分配的错误。分析统计动态内存的使用情况,分配、释放信息,分配的最大值,当前值。可以快速准确确定内存泄漏问题,确定哪个函数,哪一行代码引起的。对改善优化内存分配策略,提供强有力的决策依据。
H-TEST为追踪嵌入式应用程序,分析软件性能,测试软件的覆盖率以及存储体的动态分配等提供了一个实时在线的高效率解决方案。
动态内存分配分析报告:
3. H-TEST应用
北京奥吉通信息技术有限公司是荷兰ABW公司CRESTS系列产品的中国区唯一代理商,多年来一直提供专业的技术支持和服务,其基于嵌入式系统实时、在线的测试工具CRESTS/H-TEST在国防领域多个单位得到了成功的使用。
北京奥吉通信息技术有限公司
Beijing Autosoftt-Jitong Information Technologies Co., Ltd. 10
展开阅读全文