白盒测试之静态检查

发表于:2010-4-15 11:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xiaohanjiang    来源:51Testing软件测试博客

  静态检查一般是检查编码标准规范,错误列表。编码规范往往团队会根据自己的经验和风格进行设置一些规范。现在很多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。(以上言论仅代表作者的个人观点,不代表51Testing观点)


版权声明:本文出自xiaohanjiang的51Testing软件测试博客:http://www.51testing.com/?294525

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号