DT10在某研究所一大型应用程序通信问题中的应用

创提信息科技的DT10是新一代的动态测试工具,可以长时间跟踪记录目标程序执行情况,获取目标程序动态执行数据,帮助进行难于重现的Bug错误分析,覆盖率检测,性能测试,变量跟踪等等功能。可以支持C/C++,C#以及Java语言开发的程序。
本文分享xx所应用DT10在帮助他们解决一大型应用程序中出现的通信数据丢失的问题。
 
背景描述
XX所主要从事军用电子装备和信息系统的研制,拥有数千名科研人员。他们研发的项目既有嵌入式的实时系统,也有应用于PC机上的主机端应用程序。本次他们碰到的问题主要是桌面系统应用程序,主要使用C#语言开发,涉及多个PC机之间的数据通信和处理。
 
问题描述
客户的应用程序涉及三个应用程序之间的通信和数据处理,为便于说明问题情况,我们将其定位:A系统,B系统,C系统,A系统将数据发给B系统,B系统接受A系统发来的数据后,通过链表的形式存储并迅速处理,然后将处理后的数据发给C系统。主要问题出现在B系统,表现形式是:B系统应用程序所占用内存持续增加,程序长时间运行后,比如运行5小时或者1天,甚至出现程序挂起不响应现象。另外,发现程序性能存在一些瓶颈,存在不能及时处理数据的情况。
 
使用DT10帮助用户分析和解决问题
经过与客户工程师和测试人员详细沟通后,我们知道客户主要需要解决两个问题:

      1. 程序内存持续增长,长时间运行后会存在程序挂起不响应情况;
      2. 程序存在性能瓶颈

上述两个问题:
对于问题1,由于客户使用的是C#语言开发,通常C#有自己的内存释放机制,按常理来说不应该存在内存持续增加的情况,在与开发团队沟通后,我们有了一些一致的观点,估计可能是程序中某个对象持续的建立,但没有来得及处理,然后导致内存占用持续增长,有了这样的分析后,结合DT10的变量监控(Variable Monitoring)对代码中的接收信号的数量,处理信号的数理以及发出信号的数量进行长时间监控,最终发现其原因是:A系统发过来的数据,存在一定的阻塞现象,也就是B系统处理不及,从而导致发过来的数据越积越多,长时间运行后,用于存储A系统发送数据的链表越来越大,从而导致内存使用越来越大;
对于问题2,性能的瓶颈,直接通过DT10的函数执行时间和函数周期时间报告,长时间执行后,可以看到整个系统运行后,哪些函数执行时间较长,哪些函数执行次数较多,重点分析那些执行次数较多,而执行时间相对较长的函数,重点优化这些函数的执行性能;
当然DT10还有其他很多功能,比如回溯调试,覆盖率分析,其中回溯调试在本次客户问题分析中也有较大帮助。
 
 
DT10介绍
DT10是一款自动化的软件测试及调试工具,无需依赖任何OS 和CPU,支持C/C++、Java、C#多种语言,用于动态测试和调试的工具,可对运行时目标程序进行长时间跟踪,适用于各个开发阶段。
 
DT10是动态测试工具中唯一能实现灰盒测试的工具。不只软件内部的测试,连同CPU周边的传感器 , 端口等硬件状态也都会和执行路径一起被验证,所以可以在同一个时间测试软件和硬件的整个运行过程。测试结果,会自动产生报告。开发者和QA的工作人员都能通过使用该工具提升产品质量,使得工作更为高效。
 
在DT10 软件的界面上,可以输入运行时间、周期时间、参数、变量的设计值。除了输入的设计值可以在同一个页面(一览表)做管理之外,还可以当作设计书被导出。这些设计值,将在测试过程中被使用,可以和目标板上实际测量值做对照,如出现与设计值有出入的状况,系统会有警告的讯息弹出,便可通过这样的警告掌握问题的状况。
 
非常适合对长时间运行的软件进行跟踪调试。因为可以取得并分析︰任务的变化、函数的周期时间、运行时间、覆盖率、变量值的变化,所以整个调试的效率会大幅提升。就连不容易重现的问题,只要能重现1次,也可以从跟踪数据里来分析原因。所以通过长时间运行测试及修正是非常高效的方式。
 
主要功能点:
1. 不依赖操作系统和目标板CPU,支持任何处理器和嵌入式操作系统;
2. 可支持C/C++, Java, C#语言的覆盖测试、性能测试、Bug定位调试;
3. 与目标设备连接灵活多样。可支持直接通过网口,串口,GPIO,异步总线,SD卡,CAN总线等连接方式,特别是可直接通过网卡和串口直接连接目标设备,不用接飞线,大大增强了DT10的易用性和可支持的硬件环境多样性;
4. 软硬件同步测试。DT10提供一个Analog Box的连接盒,可监控4路数字信号输出端口和2路模拟信号端口,可同步检测变量值,实时查看硬件信号输出端口和变量变化情况与软件执行情况,从而实施软硬件同步测试;
5. 可长时间跟踪目标设备执行情况,最长可记录32天跟踪数据
6. 回放调试功能,提供可视化的函数执行跟踪报告,便于进行Bug分析,尤其是难以重现的Bug或者是偶发性程序崩溃错误
7. 动态覆盖率测试,提供系统测试覆盖率分析,支持语句覆盖率,分支覆盖率
8. 性能测试,检测函数执行时间,周期时间,统计代码中任意两行语句间的执行时间,便于进行性能分析和评估
9. 变量跟踪,跟踪程序真实执行过程中,变量值实时变化情况,并提供可视化图形报告
10. 验证设计值,回归测试。DTPlaner可定义函数执行时间的设计值(期望值),变量的设计值(期望值),目标设备实时执行过程中,其执行时间或者变量值一旦超过设计值范围,将给出警告错误
11. CPU压力监测,多个任务的切换监控,各个任务所占用系统资源统计;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值