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

Coverity Prevent 简介

上一篇 / 下一篇  2009-02-06 17:50:15 / 个人分类:coverity

Coverity Prevent

Prevent(软件质量系统)是检测和解决CC++Java源代码中最严重的缺陷的领先的自动化方法。通过对您的构建环境、源代码和开发过程给出一个完整的分析,Prevent建立了获得高质量软件的标准。

静态源代码分析允许我们再软件开发生命周期的早期阶段发现和修复缺陷,节省数以百万计的相关成本。Prevent是业界标准,因为只有Coverity理解和掌握静态源代码分析技术所具有的严格的要求。

l Coverity了解构建系统——Prevent通过在操作系统流程这个层次监测您的构建系统来获得每一个操作的清晰视图,展现您的软件。

l Coverity了解源代码——Prevent检测比当今市场上任何其他工具都更多的源代码信息;代码的结构、含义和意图都被用来揭示其中的严重的错误和不安全性。

l Coverity了解开发者——Prevent通过一个客户化的工作流、功能强大的分析器和易于使用的工具,能够使缺陷在几分钟内被定位,解决缺陷。

绘制软件DNA图谱(C/C++

l Prevent构建监测软件自动的检测您的编译系统执行的每一个操作。

l Prevent可信编译器收集您代码中的语法、语义和依赖关系的细节信息。

l 一个完整的编译器描述库保存了所有的通过可信编译器收集的信息,所以分析引擎拥有关于源代码的全面的信息。

Prevent通过集成一个位于您的构建系统和操作系统之间的监测层,记录构建系统和操作系统的交互,获得对于您的构建系统的一个清晰的了解。这个监测层检测所有的发起的可执行程序,和所有打开和读写的文件。

Prevent从您的构建系统检测到对您的编译器的调用,他执行很多步骤来了解调用操作及其对编译代码的影响。Prevent转换所有的命令来确切的了解本地预处理器和编译器将如何正确生成可执行程序。

构建系统中的一个嵌入层记录每个文件的特有的编译,Prevent提供一个工具使您能够组合这些属性到他们的描述库和可执行程序中。

Prevent编译很多种类型的CC++源代码,包括各个编译器实现的主要的语言扩展和CC++的各种方言。使用一个预处理器,Prevent也能够处理非标准的构造为语义等价构造,标准构造是前端分析器能够解释和理解的。

软件DNA图谱包含了足够的构建系统和源代码信息,能够从软件DNA图谱构建一个执行程序。他收集了编译器用来生成可执行代码的所有的数据,也是保存源代码相关的所有数据的唯一的地方。

您可以从保存在软件DNA图谱中的信息创建可执行程序,但反之不可。您不能从任何可执行程序中创建软件DNA图谱,因为构建系统、编译器和链接器在转换源代码到可执行程序时都会丢失信息。只有Coverity对于您的构建系统的理解允许您创建一个真实的软件DNA图谱,没有其他方法。

检测严重的缺陷(C/C++

l Prevent源代码分析引擎利用软件DNA图谱来分析您的代码的各个方面。

l Prevent模块化缺陷检测平台能够使很多模块(或检查器)同时分析您的代码,查找不同类别的缺陷。

l Prevent预配置的库说明了作为您的产品的一部分的第三方库的APIs和功能。

在构建了软件DNA图谱以后,Prevent分析图谱来构建一个对于您的代码的完整的分析。Prevent应用很多、独特的分析引擎来分析所有执行模式的代码。分析引擎提供给缺陷检测检查器最精确的源代码描述,来查找缺陷。

在分析引擎上构建了一系列的模块来检测三类主要的缺陷:导致系统崩溃的缺陷(内存错误、逻辑错误、指针错误等);安全性问题;和并发缺陷。这种模块化的分析架构允许Coverity持续的开发用于其他类别错误的模块。

 

能够发现的C/C++缺陷

并发

l 死锁

l 错误使用的阻塞调用

性能下降

l 内存泄漏

l 文件句柄泄漏

l 定制的内存和网络资源泄漏

l 数据库连接泄漏

导致崩溃的缺陷

l 空指针引用

l 释放后引用

l 多次释放

l 不正确的内存分配

l 不匹配的数组新建/删除

不正确的程序行为

l 逻辑错误导致的死代码

l 未初始化变量

l 负数的无效引用

不正确的APIs使用

l STL使用错误

l API错误处理

C/C++安全性问题

安全编码缺陷

l 缓冲区溢出

l 整形溢出

l 缺失的/不充分的恶意数据和字符串输入的验证

l 格式化字符串的不安全

l SQL注入攻击

l 交叉站点脚本攻击

 

特点和优势

Coverity产品专长于最准确的找到最严重和最难检测的缺陷。我们很多的竞争对手专注于简单的标识尽可能多的可能的缺陷。但在Coverity,我们认为找到严重的缺陷和安全性问题比数字游戏更重要。重要的不是你找到了多少缺陷,而是那些缺陷的类型。

以下特点使得Coverity Prevent特别:

精确性——Coverity Prevent的特别之处在于平均小于20%的误报率。当许多其他的源代码分析产品以很高的误报率使得其不可用时,Coverity的虚假路径裁剪、统计分析和其它创新减少了误报的产生。附加的配置和微调能够进一步减少误报率。

分析的深度——Coverity Prevent提供过程间数据流分析和统计分析,评审整个程序的交互和所有的可能的路径。Coverity Prevent检查企业特定的APIs和标志使用中的不一致性,精确的检测QA、安全评审和现场会发生的缺陷。当许多竞争工具仅提供表面的分析时,Coverity Prevent全面的分析您的代码。

分析的广度——Coverity Prevent采用查找最严重的错误的最先进的技术,提高您的产品的质量和安全性。Coverity Prevent可以检测严重的问题,例如系统崩溃、内存泄漏、内存错误、不确定行为、并发缺陷和安全性问题。

低拥有成本——Coverity Prevent无缝的与您已有的环境集成,能够快速部署和配置。

可扩展——Coverity Prevent使您能够在我们的强大的分析引擎上创建定制的检查器,来满足您的开发组织和代码的特定需求。您可以设置定制的规则,来强化编码标准或者检测代码中的错误。

强大的可配置性——Coverity Prevent能够快速的分析您的代码,通常百万行的代码仅需要几个小时,其他的工具需要几天,甚至几个星期来分析大规模代码。

 

支持的平台

Coverity Prevernt可以支持广泛的平台和编译器。

C/C++源代码分析器

支持的平台

l Apple Mac OS X 10.4

l Cygwin

l FreeBSD

l HPUX

l Linux

l Mac OS X

l NetBSD (2.0)

l Solaris Sparc

l Solaris X86

l Windows

支持的C/C++编译器

l ARM ADS/RVCT

l Freescale Codewarrior

l GNU C/C++

l Green Hills

l HP aCC

l Hi-Tech PICC

l IAR

l Intel C/C++

l Marvell MSA

l Microsoft Visual C++

l QNX

l Renesas

l Sun C/C++

l TI Code Composer

l Wind River

l 支持任何其他的ANSI C兼容的编译器

Coverity不需要任何手工工作或针对您的构建文件的修改就可以与您的构建系统集成。

系统需求(C/C++

·                    2.0Ghz x86UltraSparc 3/3i处理器或同等速度的处理器

·                    1 GB内存

500 MB空闲磁盘空间用于安装,3倍于代码大小的空间用于产品运行


相关阅读:

TAG: coverity

温暖在人间 引用 删除 love0523   /   2009-06-23 09:34:24
这么好的东西.不知道huior可能发个学习下.本人的邮箱是yujie1680@163.com.谢谢
huiguiziran111的个人空间 引用 删除 huiguiziran111   /   2009-05-22 16:33:14
这个有你说的那么好吗?我试试看啊1
引用 删除 nintendo_dskay   /   2009-03-05 17:46:46
huior,你好!
本人最近做布尔可满足性在软件的源码审核应用方面的调研。在Coverity的官网上申请了免费的测试版,由于各种原因至今没有得到联系。我想huior你是否方便可以把测试版的Coverity Prevent发给我,本人的邮箱是nintendo_dskay@hotmail.com   无论是否可以都希望你能够和本人联系,谢谢!
 

评分:0

我来说两句

Open Toolbar