APP下载

软件静态分析工具评析

2011-04-24孔祥营

指挥控制与仿真 2011年2期
关键词:程序分析

王 凯,孔祥营,2

(1.江苏自动化研究所,江苏 连云港 222006;2.南京航空航天大学,江苏 南京 210016)

随着软件规模越发庞大,其包含的bug也越来越多,再加上软件文档不齐全,严重影响了软件的质量。为了提高软件质量,需要进行软件测试。软件测试是保证软件可靠性的重要手段,其目的是尽可能多地暴露软件中潜在的各种错误。

软件测试从是否运行被测软件角度分为静态测试和动态测试。静态测试指在不运行被测软件情况下用于发现软件缺陷所进行的测试,包括人工进行的代码检查、文档审查和软件静态分析。动态测试是指通过运行被测软件来检验软件的动态行为和运行结果的正确性。软件静态分析是在不执行程序的情况下对源代码进行控制流、数据流、接口和表达式进行分析。软件静态分析是软件测试的有效方法之一。研究表明:“bug发现的越晚,修正的成本就越高,即测试阶段修正bug的成本是编码阶段的约4倍”[1],另一方面,“程序中的大部分错误往往是在一小部分模块中发现的,遵循普遍适用的“二八定理”(即 80%的错误往往是由20%的程序模块引起的)”[2]。在软件生命周期的编码阶段,由于可运行的代码尚未产生,不可能进行动态测试,但可以实施软件静态分析来确认和标识这20%程序模块,由此可见,软件静态分析的作用在编码阶段尤为重要。本文对动态测试不做进一步阐述,重点讨论静态测试的软件静态分析。

实施软件静态分析的最有效手段是使用静态分析工具。……

登录APP查看全文

猜你喜欢

程序分析
隐蔽失效适航要求符合性验证分析
试论我国未决羁押程序的立法完善
电力系统不平衡分析
失能的信仰——走向衰亡的民事诉讼程序
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
电力系统及其自动化发展趋势分析
创卫暗访程序有待改进
中西医结合治疗抑郁症100例分析
恐怖犯罪刑事诉讼程序的完善