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