品牌
其他厂商性质
所在地
C程序静态分析工具Canalyze国产替代软件
1.需求及背景
软件测试与分析是发现软件缺陷、提高软件质量的重要措施。动态测试是保障软质量的传统手段。不过,它依赖于测试用例的质量。如何设计一组比
较少的试用例,给出合适的输入数据,达到比较高的覆盖率,是一个具有挑战性的题。即使达到了高覆盖率,也不一定能发现软件中潜在的缺陷。
程态分析是近年来日益受到重视的一类技术。它通过扫描、分析源程序或中间码,以检软件中各种难以发现的缺陷。它不需要运行被测软件,就能生一些错误报,帮助开发人员、测试人员准确地找出软件中的bugs.
2.主要功与特点国产C程序静态分析工具软件
Canalyze是一个程序静态分析工具输入是C程序。该工具可以检测输入程序中的各种缺陷,包括:变量未义使用、空指针引用、内存泄漏等错 误类型。它对输入程序分析后,生成有良好可读的网页形式的错误报告。
该工具的主要特点包括:
使用了一种新颖的内模型和跨过程的函数方法来完成路径敏感和上下文敏感的分析。
使用了一种表达能力更强的跨过程符示形式——符号存取表达式,作为跨过程分析的基础。
利用一个约束求解工具对路径条进行求解,以比较高的路径覆盖率分析程序。
可生成用户友好的错误报告,以便程序员定位、排除测到的缺陷。
作为静态分析工具,Canalyze在使用时,不需要运行检测程序。而且,其自动化程度很高。它能在很短的时间内分析几十万行C代码。
使用Canalyze可以在一台普通的计算机或服务器上完成对项目代码的扫描,检测其中隐藏的缺陷。
常见的应用场景包括:国产C程序静态分析工具软件
-开发人员在完成开发后,扫描文件或函数的变更代码,从而尽快发现 新开发代码中可能包含的缺陷。
-代码托管服务器在代码更新之后,进行针对工程的增量或全量扫描,从而 确保代码更新之后质量。
-测试人员和质量工程人员在测试工程时扫描代码,从而依据可能存在的缺 陷构造额外的测试用例。
Canalyze提供了针对函数和文件的部分代码扫描功能。部分扫描是指,它在一次扫描中仅读取需要分析的部分代码进行分析。分析过程中,如果调用了
未被包含的函数时则自动跳过该函数调用。通过部分代码扫描,开发人员可以快速完成针对新开发的代码和函数的快速扫描,从而简单地完成一次不**的
代码检测,发现一些在变更代码中引入的一些简单的代码缺陷,进而避免将包含潜在缺陷的代码提交到代码仓库中。
Canalyze提供了针对于工程的增量或全量扫描功能。开发人员可以通过配置将Canze添加到持续集成系统中,从而实现在代码提交之后自动触发一次
增量或量扫描。增量扫描功能是指Canalyze在一次扫描中读取工程的全部代码,但针对发生变更的函数或文件进行扫描。而全量扫描则是指读取工程的全部代,并对工程中所包含的全部代码进行扫描。相对于部分扫描,由于增量扫描Canalyze可以追踪到工程代码中更**的函数调用信息,并将调用的其他函数信息包含在析中,从而可以去除大部分误报,并检出更多潜在的错误。而对于全量描,增量扫描更加轻量级,而且针对性也更强,可以有 效避冗长的扫描带的时间开,以及减少与本次提交不相关的错误报告的 产生。
对于开发人员来说一般增量扫描可以提供足够的检查强度。因此相对于部分扫描,增量扫描可更加**地检测代码中可能包含的缺陷。而对于测试 人员和质量工程人员,更适合使用全量扫。由于Canalyze探索的路径比较**,因此可以通过Canalyze给出的错报告来构造一些额外的测试用例,从而提高测试用例的覆盖率以及代码的壮性。
此外,Canalyze还提供了各度的屏蔽功能。由于分析过程中库函数源代码缺失,以及分析工具对于和时间开销的折衷此不可避免地会产生
误报。通过使用屏蔽功能,可以在扫描的过程中跳或屏蔽对于会产生大量误报的代码的分析,可以屏蔽在某些特殊情况下,一种高误报检查器产生的特
定错误类型的报告,从而减少确认错误报告的本。
Canalyze提供了XML格式化文件形网页形式两种类型的错误报告。格式化的XML形式的错误报告,可以方项目管理人员对接内部使用的缺陷
管理系统,从而提高缺陷确认效率并减少管理成本。而可读性高页形式的错误报告,可以方便开发测试人员直接阅读报告内容,便于使用。同时, Canalyze提供了详细的使用文档,从而可以方便用户进行使和配置。国产C程序静态分析工具软件
Canalyze已经在一些重要的开源程序(openssh-5.9p1,get-1.13,libosip2- 3.6.0,sqlite-3.7.11,httpd-2.4.4,bftpd-3.8)中检测到了很多误,并且得到了开
发者的确认。例如,bftp的开发人给我们回复:“Allofthepoblemsyoureported arecorrect.Thememoryhandlingforbftpd_cwd_mappath()wasanespeciallybad
bug.”
工具结构图
运行环境与配置
1)支持的运行平台:
支持64 位字长的Linux操作系统内核版本3 0 及以上。 Python2,版本2.7 及以上
Python3,版本3.5 及以Clang编译器(版本3.3以上)或GCC编译(版本7.3.0 及以上)
2)支持的C代码标准和语法特性:
C99 标准或Clang3.3支持的其他C语法特性。
3.与同行业相比的优势
在业界已经有一些商业化的程序分析工具。如,Fortifoverity,等等。与它们相比,我们的工具主要是基于符号执行技术,能**模拟程序的行为。
因此,分析结果更**,误报率更低。同时,提供的多种描方式具有更好的适应性,能够适用于多种不同场景、分析精度和扫描粒度下的不同需求。错误
报告可读性强,XML报告可以更好的适配用户使用的环境。
更多国产C程序静态分析工具软件信息请直接致电埃登威上海产品:微量氧分析仪,药品残氧仪,露点仪,热导气体分析仪,GE流量计,OX-1氧传感器,顶空分析仪,红外气体分析仪,高温湿度仪,西门子U23分析仪,ppb微量水分析仪,OXY.IQ氧分析仪,烟气湿度仪,燃气热值仪,Kaye温度验证仪,L&W白度,仪激光氧分析仪,压缩空气露点仪,干燥机露点仪,激光气体分析仪,便携式露点仪,便携式微量氧分析仪,Fei (维修中心,代表处,总代理,分公司,子公司,售后中心,销售中心,上海办,办事处)