这里没有软件测试的泛泛理论,只有博主的最佳实践。 博主的研究方向为静态分析和性能测试,致力于各种测试工具的引入、评估和开发。 本博的测试文章均为作者原创,转载请务必注明出处。

JAVA静态错误检测利器SofCheck Inspector™ for Java

上一篇 / 下一篇  2008-07-10 11:30:52 / 个人分类:静态分析

由于工作需要,一年多以前就留意到了SofCheck的静态分析工具,当时的总结如下:

×SofCheck公司有两类产品:第一是静态错误检测,第二是编译器。下面的所有描述针对的都是其静态错误检测工具Inspector。

一个基于ADA和JAVA的运行时错误检测工具,SofCheck Inspector自称是高级的静态分析器,其原理是在代码前后插入断言,通过分析所有的断言是否都成立,发现代码中的runtime errors,例如buffer overflows(大量的Internet安全问题所在).号称可以达到100%的路径覆盖,可以用于Safety Critical或者Business Critical。

×当前的版本只是支持ADA和JAVA,未来的版本将会支持C++和C#

×SofCheck保证100%的完全覆盖率:实际上,大多数的程序都有无穷的控制流和数据流,SofCheck利用有限的硬件资源,针对无穷的流图,借助于数学理论精确的终止条件,不断的运算,逐步缩小流图的范围,直到结果稳定。

×SofCheck可以作为灵活的、补充的工具,无缝的集成到客户当前的测试环境和流程中。

×SofCheck可以检测 不可达代码,但仅限于函数中的不可达代码,不包括没有调用的函数。对于只是分析一个子模块或者单元来说,分析没有被调用到的函数没有任何意义。

×SofCheck分析速度相对来说比较快,平均来说可以达到1000行代码/分钟,当然和CPU、内存以及代码本身的复杂度都有一定关系。

×SofCheck可以完成普通编译器不能做的工作:
  Compilers perform similar functions but they can not:
  所有数组索引可能越界的地方 
  find all places where array indices could be out of bounds
  定位危险使用
  identify an error-prone reliance on default zeroing of numeric data
  所有空指针可能被非法引用的地方  
  find all places where a null pointer might be dereferenced
  检查断言语句
  check assert statements
  识别不安全的并发访问
  identify unsafe concurrent access

× 最重要的是Inspector很便宜,处于规模较小的公司都能接受的价位
   Inspector 200-Class License Key $245.00(美元) 或者2027.76 HKD(港币)

× SofChecker网站:http://www.sofcheck.com/,可以直接下载45天的free trial软件


TAG: 静态分析

 

评分:0

我来说两句

Open Toolbar