软测工具 | DT10的这个功能,让测试员每年减少440个小时的工作量!

DT10是为嵌入式项目构建的下一代动态测试工具。它集合传统嵌入式工具多种功能于一身从而构建出强大的嵌入式软件测试解决方案。DT10提供集强大的功能套件,方便获取嵌入式软件各种运行时特性。源码插装技术自动化的在源码关键位置放置“Test Points”,将重要的跟踪调试数据传回到主机端。一旦数据被DT10软件分析引擎捕获,将生成各种报告,帮助用户分析软件内的性能问题和功能性漏洞,同时可通过图形化的方式回放嵌入式软件代码执行逻辑。

图片

DT10有哪些特征:

◎ 强大的缺陷回溯定位能力。

◎ 支持跟踪和检测软件执行过程中的路径、变量和各种中间状态。

◎ 支持监测和分析系统运行过程中的硬件状态并和软件状态同步分析。

◎ 支持长达一个月的长时间不间断测试,实时动态更新的覆盖率分析。

◎ 性能测试功能可以细化任意代码模块,并精确到ns。

◎ 不依赖于被测系统的CPU和OS类型。

◎ 支持串口、以太网口、异步总线、GPIO, SPI, SD卡和CAN总线等丰富的接口类型。

DT10是动态测试和调试工具,可以长时间记录程序执行状态,其最重要的三大功能:错误定位,覆盖率统计,性能测试,另外还有诸如变量跟踪,软硬件同步示波器等功能,能够很好的帮助用户达成灰盒测试的各项要求:

01

DT10帮助用户获取程序运行时覆盖率,

包括语句覆盖和分支覆盖。

通过DT10的覆盖率统计功能,在测试人员执行测试用例之后,可以统计相关功能测试之后,代码覆盖率情况。如下图:

图片

当用户希望详细了解某个函数覆盖情况时,可以双击某个函数,DT10将自动打开函数代码,并在函数代码中详细标识出哪行语句覆盖,哪行语句未覆盖,以及什么分支覆盖了,什么分支未覆盖。如图:

图片

通过DT10的语句覆盖和分支覆盖,可以帮助用户评估灰盒测试过程中测试用例是否存在遗漏?从代码的角度,评估哪些代码覆盖,哪些代码未覆盖,从而判断代码是否存在冗余的情况。

02

DT10实时覆盖率

(Real TimeCoverage)

上面看到的覆盖率的获取,一般是DT10跟踪目标版执行,测试数据收集完成之后,然后通过DT10的分析功能分析覆盖率情况。另外,DT10还提供real time coverage,也即实时覆盖率。通过实时覆盖率,用户可以实时的看到覆盖率情况,比如你在目标板上操作某个按钮,从而触发某行代码,此时在目标板执行过程中,即可在DT10的窗口中实时的看到覆盖率数据。

首先在测试报告收集窗口中,启用“View Real-time Coverage”选项:

图片

然后启动插入测试点后的目标板程序,并在DT10中实时监听测试结果数据,此时DT10可以实时的获取覆盖率数据,如下图:

图片

然后操作目标板上的按钮,使程序运行到另外一个分支,注意此时DT10一直在实时接收目标板执行的测试数据,得到结果如下图:

图片

实时覆盖率,使得用户在硬件上操作后,在软件的角度实时看到代码执行和覆盖情况,这也有助于用户掌握目标系统实时执行过程中软件执行情况的了解。

03

DT10帮助用户

进行性能评估和测试

DT10可监测每个函数的执行时间和周期时间,也可监测系统中任意两行代码之间的执行时间以及周期时间。对于多任务的系统而言,DT10还可监测CPU压力。

函数执行时间和周期时间:

通过DT10对目标系统长时间跟踪测试,可以得到每个函数的执行时间,如下图:

图片

如果想查看某个函数具体的函数执行时间情况,比如函数handleSensorValue函数,被执行42845次,通过DT10还可以看到该函数每次执行时间,只要双击handleSensorValue函数即可,弹出如下窗口:

图片

上图的列表中将handleSensorValue函数执行时间全部罗列出来,在DT10中可以设置某个函数的执行时间的标准值,比如该函数逻辑上执行时间不能超过50000us,在DT10中可以设置:

图片

分析结构后,DT10会将执行时间不符合预期的值全部用红色高亮显示:

图片

当双击某次执行时间,DT10会同步显示其执行代码路径情况,如下图:

图片

除此之外,DT10还可以看到函数执行时间统计图,如下图:横轴代表执行时间,纵轴代表执行次数,从下面的柱状图可以知道,执行时间为26787us~35714us区间的次数到达40500次,而在44641us~53567us区间的执行次数很少。

图片

该统计图的意义,一方面可以了解某个函数执行时间主要区间,同时如果发现某低频率的时间出现,比如出现一次执行时间在8934us,那么作为性能分析的人,需要重点分析,因为执行时间非常短,并且在系统长时间执行的情况下,该执行之间只出现一次,那么极有可能这一次的执行逻辑存在问题,因为它与多数执行时间差异太大,那么此时可以通过之前的双击本次执行情况,弹出其代码执行逻辑情况进行详细分析。

04

DT10的Function Trace Report和Function Transition Scope

通过可视化的方式帮助用户理解代码内部执行逻辑

下图是通过DT10的FunctionTrace Report获取程序执行逻辑的可视化报告,从图中的标注可以看到用户可以通过蓝色箭头重现目标板上代码执行逻辑。

图片

而下图是Function Transition Scpoe报告:

图片

通过该报告,用户可以详细了解在系统执行过程中,各个函数任务跳转情况。

05

通过DT10的DTplaner设置目标系统

指定接口上的变量、参数的预期值

在灰盒测试的测试用例设计过程中,会从模块和代码的角度设计众多的测试用例,在这些测试用例中,涉及输入,输出值,当给予系统指定输入值,其响应输出值是否符合的预期?传统的无论黑盒还是灰盒测试,需要人为的查证输出是否符合预期或者写一些断言代码判断输出是否符合预期,在DT10中,可以通过DTPlaner设置变量,参数,包括函数执行时间,周期时间的期望值属性,当目标系统执行过程中,其实际值与期望值不符时,DT10将通过红色的高亮显示或者给出一个红色感叹号,警告此处与期望值不符。这对于自动验证边界值非常有帮助,同时对于后续版本的回归测试也非常有帮助。如下图:

图片

通过DT10跟踪目标系统,收集测试数据后,进行分析,得出如下结果:

图片

对于性能要求的执行时间,也可以采用同样的方式,设置执行时间的期望值。

DT10可以帮助用户在系统配置项测试方面显著提高客户的测试质量和测试效果,通过DT10的错误检测,覆盖率分析,性能分析,以及Analog Box等等功能模块,帮助用户在效率和质量上得到提高,如下来自DT10的真实客户的反馈和统计:

图片

上图中描述了不同行业客户使用DT10为他们所带来的回报,在错误检测方面,性能改进以及覆盖分析等方面,均为客户带来了效率上的提升和质量上的改善。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值