DT10是一款自动化的软件测试及调试工具,无需依赖任何OS
和CPU,支持C/C++、Java、C#多种语言,用于动态测试和调试的工具,可对运行时目标程序进行长时间跟踪,适用于各个开发阶段。
DT10是动态测试工具中唯一能实现灰盒测试的工具。不只软件内部的测试,连同CPU周边的传感器 , 端口等硬件状态也都会和执行路径一起被验证,所以可以在同一个时间测试软件和硬件的整个运行过程。测试结果,会自动产生报告。开发者和QA的工作人员都能通过使用该工具提升产品质量,使得工作更为高效。
在DT10 软件的界面上,可以输入运行时间、周期时间、参数、变量的设计值。除了输入的设计值可以在同一个页面(一览表)做管理之外,还可以当作设计书被导出。这些设计值,将在测试过程中被使用,可以和目标板上实际测量值做对照,如出现与设计值有出入的状况,系统会有警告的讯息弹出,便可通过这样的警告掌握问题的状况。
非常适合对长时间运行的软件进行跟踪调试。因为可以取得并分析︰任务的变化、函数的周期时间、运行时间、覆盖率、变量值的变化,所以整个调试的效率会大幅提升。就连不容易重现的问题,只要能重现1次,也可以从跟踪数据里来分析原因。所以通过长时间运行测试及修正是非常高效的方式。
硬件组成:
使用连接组成:
DT10主要应用场景说明:
DT10是动态测试和调试工具,可以长时间记录程序执行状态,其最重要的三大功能:错误定位,覆盖率统计,性能测试,另外还有诸如变量跟踪,软硬件同步示波器等功能,能够很好的帮助用户达成灰盒测试的各项要求:
1) DT10帮助用户获取程序运行时覆盖率,包括语句覆盖和分支覆盖。
通过DT10的覆盖率统计功能,在测试人员执行测试用例之后,可以统计相关功能测试之后,代码覆盖率情况。如下图:
当用户希望详细了解某个函数覆盖情况时,可以双击某个函数,DT10将自动打开函数代码,并在函数代码中详细标识出哪行语句覆盖,哪行语句未覆盖,以及什么分支覆盖了,什么分支未覆盖。如图:
通过DT10的语句覆盖和分支覆盖,可以帮助用户评估灰盒测试过程中测试用例是否存在遗漏?从代码的角度,评估哪些代码覆盖,哪些代码未覆盖,从而判断代码是否存在冗余的情况。
2) DT10实时覆盖率(Real TimeCoverage)
上面看到的覆盖率的获取,一般是DT10跟踪目标版执行,测试数据收集完成之后,然后通过DT10的分析功能分析覆盖率情况。另外,DT10还提供real
time coverage,也即实时覆盖率。通过实时覆盖率,用户可以实时的看到覆盖率情况,比如你在目标版上操作某个按钮,从而触发某行代码,此时在目标板执行过程中,即可在DT10的窗口中实时的看到覆盖率数据。
首先在测试报告收集窗口中,启用“View Real-time Coverage”选项:
然后启动插入测试点后的目标板程序,并在DT10中实时监听测试结果数据,此时DT10可以实时的获取覆盖率数据,如下图:
然后操作目标板上的按钮,使程序运行到另外一个分支,注意此时DT10一直在实时接收目标板执行的测试数据,得到结果如下图:
实时覆盖率,使得用户在硬件上操作后,在软件的角度实时看到代码执行和覆盖情况,这也有助于用户掌握目标系统实时执行过程中软件执行情况的了解。
3) DT10帮助用户进行性能评估和测试
DT10可监测每个函数的执行时间和周期时间,也可监测系统中任意两行代码之间的执行时间以及周期时间。对于多任务的系统而言,DT10还可监测CPU压力。
函数执行时间和周期时间:
通过DT10对目标系统长时间跟踪测试,可以得到每个函数的执行时间,如下图:
如果想查看某个函数具体的函数执行时间情况,比如函数handleSensorValue函数,被执行42845次,通过DT10还可以看到该函数每次执行时间,只要双击handleSensorValue函数即可,弹出如下窗口:
上图的列表中将handleSensorValue函数执行时间全部罗列出来,在DT10中可以设置某个函数的执行时间的标准值,比如该函数错逻辑上执行时间不能超过50000us,在DT10中可以设置:
分析结构后,DT10会将执行时间不符合预期的值全部用红色高亮显示:
当双击某次执行时间,DT10会同步显示其执行代码路径情况,如下图:
除此之外,DT10还可以看到函数执行时间统计图,如下图:横轴代表执行时间,纵轴代表执行次数,从下面的柱状图可以知道,执行时间为26787us~35714us区间的次数到达40500次,而在44641us~53567us区间的执行次数很少。
该统计图的意义,一方面可以了解某个函数执行时间主要区间,同时如果发现某低频率的时间出现,比如出现一次执行时间在8934us,那么作为性能分析的人,需要重点分析,因为执行时间非常短,并且在系统长时间执行的情况下,该执行之间只出现一次,那么极有可能这一次的执行逻辑存在问题,因为它与多数执行时间差异太大,那么此时可以通过之前的双击本次执行情况,弹出其代码执行逻辑情况进行详细分析。
4) DT10的Function Trace Report和Function Transition
Scope通过可视化的方式帮助用户理解代码内部执行逻辑
下图是通过DT10的FunctionTrace Report获取程序执行逻辑的可视化报告,从图中的标注可以看到用户可以通过蓝色箭头重现目标板上代码执行逻辑
而下图是Function Transition Scpoe报告:
通过该报告,用户可以详细了解在系统执行过程中,各个函数任务跳转情况。
5) 通过DT10的DTplaner设置目标系统指定接口上的变量、参数的预期值
在灰盒测试的测试用例设计过程中,会从模块和代码的角度设计众多的测试用例,在这些测试用例中,涉及输入,输出值,当给予系统指定输入值,其响应输出值是否符合的预期?传统的无论黑盒还是灰盒测试,需要人为的查证输出是否符合预期或者写一些断言代码判断输出是否符合预期,在DT10中,可以通过DTPlaner设置变量,参数,包括函数执行时间,周期时间的期望值属性,当目标系统执行过程中,其实际值与期望值不符时,DT10将通过红色的高亮显示或者给出一个红色感叹号,警告此处与期望值不符。这对于自动验证边界值非常有帮助,同时对于后续版本的回归测试也非常有帮助。如下图:
通过DT10跟踪目标系统,收集测试数据后,进行分析,得出如下结果:
对于性能要求的执行时间,也可以采用同样的方式,设置执行时间的期望值。
DT10可以帮助用户在系统配置项测试方面显著提高客户的测试质量和测试效果,通过DT10的错误检测,覆盖率分析,性能分析,以及Analog
Box等等功能模块,帮助用户在效率和质量上得到提高,如下来自DT10的真实客户的反馈和统计:
上图中描述了不同行业客户使用DT10为他们所带来的回报,在错误检测方面,性能改进以及覆盖分析等方面,均为客户带来了效率上的提升和质量上的改善。
|