静态测试
为什么要进行静态分析呢?一个软件产品可能实现了所要求的功能,但如果它的内部结构组织的很复杂,很混乱,代码的编写也没有规范的话,这时软件中往往会隐藏一些不易被察觉的错误,这是其一。其次,即使这个软件基本满足了用户目前的要求,但到了日后对该产品进行维护升级工作的时候,会发现维护工作相当困难。所以,如果能对软件进行科学、细致的静态分析,使系统的设计符合模块化、结构化、面向对象的要求,使开发人员编写的代码符合规定的编码规范,就能够避免软件中大部分的错误,同时为日后的维护工作节约大量的人力、物力。这就是对软件进行静态分析的价值所在。
统计测试覆盖率就属于动态测试的范畴了。覆盖率对于分析测试用例对被测程序的覆盖情况,进而修改、增加测试用例,提高测试覆盖,保证测试质量,是很有用处的。
静态测试工具:Logiscope
JAVA静态测试工具
静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷。当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现。尽管如此,好的静态分析工具仍然是工具箱中的无价之宝:
FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题:
“FindBugs,第 1 部分”和“第 2 部分”分别介绍使用 FindBugs 的原因和方法以及如何编写自定义检测器以查找特定于应用程序的问题。
“消除 bug”展示了这个静态分析工具如何帮助分析代码。
“平衡测试,第 1 部分、第 2 部分 和 第 3 部分”讨论如何通过引进 FindBugs 静态代码分析工具来改进管理软件质量的方式。
PMD 是一个开源的静态分析工具,它分析 Java 源代码,并找出潜在的 bug:
“用 PMD 铲除 bug”解释如何使用 PMD 内置的规则以及您自己定制的规则集来提高 Java 代码质量。
“驯服复杂的冗长代码”展示了如何使用诸如 PMD 和 JavaNCSS 之类的工具,在您需要的时候获得更高的代码复杂度测试精度。
Eclipse 静态分析插件,能在构建代码前便发现代码中潜在的问题:
“用 Eclipse 插件提高代码质量”将带来一些关于 Eclipse 插件的例子,您可以安装、配置和使用这些静态分析插件,以便在开发生命周期的早期预防问题。
IBM Checking Tool for Bugs Errors and Mistakes,可用于分析并查找 C、C++ 和 Java 代码中的一些不容易发现的潜在错误:
“使用 IBM 静态工具优化 Java 代码,第 1 部分: 工具入门”介绍如何在 Windows 上成功运行 BEAM,检查 Java 代码中的潜在错误,从而提高代码的安全性和稳定性。
“使用 IBM 静态工具优化 Java 代码,第 2 部分: 分析错误报告”学习如何对其输出的报告结果文件进行分析,并修改代码中的潜在错误。