欢迎来到天天文库
浏览记录
ID:8268307
大小:567.27 KB
页数:5页
时间:2018-03-15
《C++test 静态分析 - Parasoft China Official …》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C++test静态分析——来自某跨国网通设备大厂真实客户案例一、问题重现下面的描述来自Parasoft的客户某跨国网通设备大厂的邮件内容,客户在邮件中描述了一段存在Bug的代码。以下是邮件内容(注:为防止泄漏客户代码信息,对代码做过轻微改动):“Astalkedlastnight,wehavesolvedonebigcodebug;hereIlistithereforyourinformation.Thiscodecausesystemrunninginanendlessloop,thatcausesystemreboot
2、duetowatchdogtimertimeout.voidETN_xdd_algo::stop_running(T_global_TCIDtcid){if(pinstances==NULL){return;}LE_simple_list::iteratorit=pinstances->begin();for(;it!=pinstances->end();){if(tcid==(*it)->get_tcid()){delete*it;break;}}return;}”对上述错误代码做简单分析,
3、你将很容易发现问题所在,原因简单甚至弱智,因为for循环的循环因子it没有进行自加运算。这导致只要进入该for循环,必将陷入死循环。以上是从代码角度进行分析,得出死循环结论。而当代码在实际项目中运行时(上述错误代码的项目,实际运行在客户所生产的电信设备上),所产生的真实后果则更为严重。第1页上海市打浦路1号金玉兰广场西楼902室Rm.902,GoldenMagnoliaPlaza,W.1DapuRoad,HuangpuDistrict200023Shanghai,P.R.Chinawww.parasoft.com客户在邮件
4、中有简单提及:“solvedonebigcodebug”“Thiscodecausesystemrunninginanendlessloop,thatcausesystemrebootduetowatchdogtimertimeout.”而在我们现场支持客户端过程中,客户曾说明如下:“由于存在Bug的设备在电信运营商的系统上,经常无端死机,导致他们的客户怨声载道。责令他们必须在规定期限内,找到问题根源并修复;”好了,我们再简单回顾一下整个问题发生的流程,以便我们能更好的重现问题:作为电信设备供应商的某跨国网通设备大厂,所销
5、售的设备正运行在运营商系统上,而运营商发现该设备经常无端死机,于是要求某跨国网通设备大厂必须在短期内找到问题根源并修复。由于不能现场调试,某跨国网通设备大厂的开发人员只能在本地反复诊断,反复模第2页上海市打浦路1号金玉兰广场西楼902室Rm.902,GoldenMagnoliaPlaza,W.1DapuRoad,HuangpuDistrict200023Shanghai,P.R.Chinawww.parasoft.com拟,希望重现死机的现象,经过长达一周时间的模拟,他们终于发现问题的根源正是上述那段简单的for循环错误。
6、二、客户背景某跨国网通设备大厂是国际电信行业的佼佼者,是数十亿美元规模的电信技术领先厂商,拥有数个重要的全球研发中心,拥有技术先进、制造能力达到世界一流水平的生产制造平台,销售服务网络遍及全国和海外50多个国家。三、客户代码上述错误的代码正来自某跨国网通设备大厂核心设备的软件中。述及该项目的历史,也足让你瞠目结舌。总项目全部基础性代码超过1000万行,最早的代码可追踪到90年代。客户所测项目隶属总项目重要模块之一,代码量超过100万行。四、问题影响由于实际项目已经运行于电信设备上,而该Bug只会在极端情况下才会发生。可想而
7、知,这样的问题从他们客户那里反馈回来,然后该项目主要负责人开始安排人手从100万行代码中查找该问题,何异于大海捞针。无赖之下,客户只有不停模拟各种输入参数,模拟各种可能发生的情况。经数日苦战,客户终于重现该问题。然后顺藤摸瓜,揪出以上“罪魁祸首”的源码–“该死的For循环!”更为重要的影响在于运营商对于某跨国网通设备大厂产品质量的认定,这样的问题对于任何客户而言都是不希望看到的,因为这会影响到实际产品的运行,进而消费者对于产品的使用。五、解决之道在软件开发中,我们极不情愿将Bug呈现到客户面前,但当问题真正产生时,我们需要
8、去反思为什么如此简单的for循环所导致的问题造成这么大影响。产品没有经过测试吗?有测试,但往往是功能性和系统性测试。第3页上海市打浦路1号金玉兰广场西楼902室Rm.902,GoldenMagnoliaPlaza,W.1DapuRoad,HuangpuDistrict200023Shanghai,P.
此文档下载收益归作者所有