其神若何,月射寒江。

白盒测试之静态检查

上一篇 / 下一篇  2010-03-30 10:29:27 / 个人分类:白盒测试研究

 

静态检查一般是检查编码标准规范,错误列表。编码规范往往团队
会根据自己的经验和风格进行设置一些规范。现在很多IDE工具都会
在编辑代码的时候实时的提醒是否符合代码风格。错误列表,一般
是代码潜在的bug,由于某种代码写法虽然没有语法错误,但是可能
存在错误,比如会导致线程死锁。这些都是错误列表应该检查的。
静态检查的可操作方式
1、代码走查
程序员之间可以隔一定的时间抽取代码进行走查。
走查的时候根据汇总报告,把这些经验汇成列表,作为下次代码走查的依据。
该方式的特点是,手工、多人讨论、操作简单,但是效率会比较低。
2、代码扫描
   使用软件对我们的代码进行扫描,查找出潜在的问题。现在有许多商业的
工具能够进行扫描,比如Parasoft JTest、Rational® Software Analyzer、
pclint等工具,往往不同的工具会针对不同的语言。当然也有很多开源的工
具。在这里java方面主要推荐Findbugs。Findbugs可以在ANT/GUI/ECLIPSE三个
环境中运行,同时也可以编写自己的检测器,功能比较完善。我们平时可以收
集自己的或者是别人的开发经验,把它做成检测器来完善Findbugs的检测体系。
软件扫描的特点是,机器扫描、效率高,但是没不够灵活,扩展比较负责。
   经过不少时间的分析,最后是我们选择了Findbugs作为静态检查工具。以后
将以此为突破口,进行该项工作。下面简单介绍该工具。
   Findbugs是一个在java程序中查找bug的程序,它查找bug模式的实例,
也就是可能出错的代码实例,注意Findbugs是检查java字节码,也就
是*.class文件。其实准确的说,它是寻找代码缺陷的,很多我们写
的不好的地方,可以优化的地方,它都能检查出来。例如:未关闭的数
据库连接,缺少必要的null check,多余的 null check,多余的if后置
条件,相同的条件分支,重复的代码块,错误的使用了"==",建议使用
StringBuffer代替字符串连加等等。而且我们还可以自己配置检查规
则(做哪些检查,不做哪些检查),也可以自己来实现独有的校验规
则(用户自定义特定的bug模式需要继承它的接口,编写自己的校验类,属于高级技巧)。

   Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组
缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有
60余种Bad practice,80余种Correctness,
1种 Internationalization,
12种Malicious code vulnerability,
27种Multithreaded correctness,
23种Performance,
43种Dodgy。

--------------------------------------------------2010.3.30


TAG: 白盒 静态检查 Findbugs

wsryyffs的个人空间 引用 删除 wsryyffs   /   2010-11-02 13:03:21
写的不错,给我一些启发
 

评分:0

我来说两句

xiaohanjiang

xiaohanjiang

River.liu又名小寒江。曾经从事多年JAVA软件开发工作,这几年一直从事软件测试工作。多年来,一直致力于软件工程、软件开发、软件测试方面的研究。不喜欢自称高手,不愿意自封资深;科学研究讲究的是务实、实践。真理、真知才是硬道理。茫茫海洋,我只希望我的每个理念能游弋于业界之间。我的思想能在你的脑海中徜徉。

日历

« 2024-04-20  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 39738
  • 日志数: 52
  • 建立时间: 2009-12-15
  • 更新时间: 2011-03-14

RSS订阅

Open Toolbar