我比较懒啊!!不过从今天开始,每天发布一条VC++ 6.0的开发问题,敬请关注!

静态分析

上一篇 / 下一篇  2010-03-03 21:48:29 / 个人分类:软件测试

1编码规范检查——一切的基础

   一个项目或者一个企业,如果要下决心实施软件质量,实施软件工程,第一步要做的就是软件编码规范。

   编码规范是程序编写过程中必须遵循的规则,一般会详细规定代码的语法规则、语法格式等。企业实施怎样的编码规范,取决于很多个因素: 

l        编程采用的语言,例如CC++JAVAADA

l        项目的规范化程度。目前现成的C/C++编码规范有很多,例如前几年网络上比较流行的《华为公司编程规范》、《摩托罗拉C+编程规范》等。但项目不能完全照搬,应该根据自己所处的阶段,定制属于自己的规范,否则的话,会让程序员无所适从,严重打击程序员的积极性。

l        行业。不同的行业对软件的可靠性有不同的要求,例如航空/航天的嵌入式软件对代码的要求很高,而传统的windows平台应用软件则相对要宽松。

 

在嵌入式软件中,尤其是汽车行业,国际上目前流行的C语言编程规则为MISRA-C:2004,其中包括包括141条规则,其中121条是强制(Required)遵守的,20条是建议(Advisory)遵守的。详细信息可以参考其官方网站www.misra.org.uk

有了统一的规范后,测试工程师或者程序员自身,就可以实施编码规范检查了。

根据笔者的实践,要真正把编码规范贯彻下去,单单靠测试员程序员的热情,很难坚持下去,所以笔者建议借助于一些专业的工具来实施。在C/C++语言的编程规则检查方面,比较专业的工具有C++TestLINT工具、QAC/QAC++等,这些工具通常可以和比较流行的开发工具集成在一起,程序员在编码过程中,在编译代码的同时即同时完成了编程规则的检查。

2静态质量度量——提高软件的可维护性

   有了严格的编程规范,只能算是万里长征迈出了第一步。要提高软件的可重用性,以及软件的可维护性,还需要进一步的努力,即静态质量度量。

 

   静态质量度量所依据的标准是ISO 9126。在该标准中,软件的质量用以下几个方面来衡量,即功能性(Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可维护性(Maintainability)、可移植性(Portability)

   ISO 9126质量模型为基础,可以构造质量度量模型。具体到静态测试,这里主要关注的是可维护性。

3代码错误检测——提高软件的靠性

   在传统意义上认为,错误检测应该是动态的系统测试的范围。但在bug的成本上分析,有以下公认的结论。

bug发现的越晚,修正的成本就越高,测试阶段修正bug的成本是编码阶段的约4倍的关系。为了减少成本,bug被发现的越早越好。在编程阶段,静态的分析代码就能找到代码的bug,是很多人的梦想。这个梦想在21世纪初变成了现实。以PolySpaceeKlocworkCoverity为代表的静态分析软件,实现了只要静态分析代码,就可以发现代码的bug,例如数组越界、除数为0、缓冲区溢出等,虽然还不是特别完美。


TAG:

 

评分:0

我来说两句

ting127

ting127

正在学习软件中!!

日历

« 2024-05-06  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 3109
  • 日志数: 9
  • 建立时间: 2010-03-03
  • 更新时间: 2010-04-15

RSS订阅

Open Toolbar