软件测试工具--后谋篇
简介
本文是一个静态代码分析工具的清单,但是为公司产品,需要付费使用。共有37个公司,有些公司包含多个工具。其中27个公司有多语言工具,2个公司为.NET工具、1个公司为Ada工具、4个公司为C++工具、1个公司为Java工具、1个公司为PHP工具、1个公司为PL/SQL工具。
1 多语言
1.1 Axivion Bauhaus Suite
软件腐蚀保护解决方案。Axivion Bauhaus Suite为你提供广泛的工具完成自动静态代码分析。它帮助软件系统开发者确保他们创造的代码是高质量的,且易于长期维护,从而主动预防潜在的软件腐蚀。我们的组件针对编程语言C/C++,C#/.NET,Java和Ada83/Ada95进行优化,可以在标准平台Microsoft Windows和GNU/Linux上使用。
Axivion Bauhaus Suite无缝集成到你熟悉的开发环境(比如微软的Visual Studio)、编译器(例如IAR嵌入式工作台)和版本控制系统(例如Subversion)中。
同时可以完成各种分析,例如静态代码分析、结构验证,接口分析,MISRA检查(The Motor Industry Software Reliability Association-汽车工业软件可靠性联会,一种工业标准的C编程规范)和克隆检测等。
- 公司:https://www.axivion.com/en
- 官网:https://www.axivion.com/en/products-services-9#products_bauhaussuite
- Project Bauhaus:http://www.bauhaus-stuttgart.de/bauhaus/index-english.html
1.2 BlueOptima
BlueOptima精确的监视软件开发,提供及时的见解,可以驱动更高质量的发行版本,更快的进入市场。
BlueOptima对于开发者就像是X射线透视能力。
- 当我的行为影响团队中其他人或者当他们的代码影响我时,主动报警提示我进行自我修正。
- 从我过去提交的代码中学习,帮助我提高。
- 理解我传入代码库中提醒前方障碍的编程工作。
BlueOptima最好的地方是自动化追踪过程,即相对于我的预估和工作量我现在的进展怎样。所有这些不需要给我的团队领导或者项目经理提供一个状态更新。
1.3 CAST Application Intelligence Platform
CAST智能应用平台(AIP)是一个超过20年在开发上投资超过13亿的产物,是一个企业级的软件测量和质量分析解决方案。用于分析多线程、多功能应用的技术漏洞,坚持架构和代码标准,通过各种仪表盘提供商业相关信息给IT组织,搭建考虑到最终用户的产品。
应用分析仪表盘(CAST AAD):为IT高管提供精确的商业相关分析,以便驱动他们的组织机构。
应用工程仪表盘(CAST AED):为工程师和QA团队提供强大的代码、系统级的结构性缺陷洞察和补救指南。
启发:向开发者传递一个对他们应用结构的强大的深度理解。
架构检查器:给架构师一个可靠的自动解决方案,迫使架构提供他们关键应用程序的稳定性和性能。
CAST潜在的系统层分析技术通过衡量大量的健康因素评估一个应用的健康,同时评估导致性能和稳定性问题的结构和系统层缺陷,并提供真实系统层分析。
1.4 Cigital SecureAssist
Cigital现在是新思科技(Synopsys)的一部分,可以提供市场上软件安全解决方案最全面的产品组合。我们超越传统的测试服务,可以帮助我们的客户识别、修复和预防应用程序中的漏洞,推动他们的业务。对于应用程序安全,我们全面的安全应用方法可以在受监管的专业服务和满足特殊需要的产品定制之间保持平衡。当测试结束时我们也不会停止。我们的专家也会提供修复指导、程序设计服务和训练,使你构建和维护应用程序的安全。
- 官网:https://www.cigital.com/
- Datasheet:https://go.cigital.com/hubfs/Datasheets/application-security-testing-cigital-datasheet.pdf
1.5 Coder Gears
本段介绍公司的两个产品。他们的功能相似,都提供大量的功能让用户分析代码库,经常被描述为开发者的瑞士军刀。14天试用。
Cppdepend
JArchitect
1.6 Compuware Topaz for Program Analysis
康博软件(Compuware)让世界上最大的一些公司擅长数字经济,通过影响它们高价值的大型主机投资。我们通过提供高度创新的解决方案做到这些,即只让拥有主流技能的IT专家管理主机应用、数据和平台操作。
Topaz for Program Analysis智能分析大型主机程序,以视觉上直观的方式显示分析结果。使用程序结构和逻辑流程图表,程序分析降低了那些不熟悉大型主机或不熟悉程序结构的程序员的学习曲线。同时对没有记录的已经存在20、30甚至40年的程序提供了无价的见解。
- 官网:http://www.compuware.com/
- Topaz for Program Analysis:http://www.compuware.com/en_us/products/topaz-for-program-analysis.html
1.7 ConQAT
ConQAT是一个快速开发和执行软件质量分析的工具箱。
功能:
- 集成软件系统多种可视化质量特性;
- 集成质量状态的快速预览质量标准;
- 灵活创造特定项目的质量仪表板;
- 支持多种编程语言(例如:Java、C#、C++、ABAP、ADA等);
- 集成第三方分析工具(例如:PMD、Findbugs,FxCop等);
- 克隆检测(检测由于复制粘贴程序造成的重复代码);
- 构造一致性分析(评估符合架构约束);
- 集成到编译系统/连续集成工具集的命令行接口(例如:Hudson、CruiseControl);
- 趋势分析以便监测随着时间推移的质量状态。
1.8 Fortify Static Code Analyzer
Fortify Static Code Analyzer在软件开发生命周期的早期识别源代码中的安全漏洞,并提供最佳做法,使开发人员可以更安全的编码。
HPE(Hewlett Packard Enterprise)保证Fortify SCA扮演一个重要的角色,花费较小的努力和时间识别漏洞,帮助创造安全的软件,维护代码质量。Fortify SCA检测广泛的问题,是其他静态测试技术无法比拟的。Fortify软件安全研究小组是一个全球的团队,被工业界认为是顶尖的安全组织,监测出现的威胁,他们的知识汇集到Fortify SCA,因此组织可以停留在威胁顶层。
1.9 GrammaTech CodeSonar
30天试用。
CodeSonar,GrammaTech公司的王牌静态分析SAST工具,识别那些可能导致系统崩溃的错误、意外行为和安全漏洞。
CodeSonar被证明可以提供最深层的静态分析,能够寻找比市场上其他的静态分析工具更多的重要缺陷。Code Sonar实现了最好的几个静态分析工具基准,寻找静态内存、资源管理、并发性和其他缺陷。
通过分析源代码和二进制包,CodeSonar使团队可以分析完整的应用程序,使你可以控制你的代码供应链,从而在程序开发生命周期早期移除成本最高的最难找的缺陷。
1.10 IBM Security AppScan
IBM Security AppS惨增强网站应用和移动应用的安全,提高应用安全程序管理,加强合规性。通过在使用前扫描你的网站和移动应用,AppScan使你可以识别安全漏洞并产生报告和修复建议。
1.11 Imagix 4D
使用Imagix 4D,软件开发者有一个工具可以用来理解、记录和提高复杂度、第三方或者遗留的源代码。自动分析控制流和依赖性。检测数据使用和任务交互中的问题。提高生产率、提高质量和降低风险。适用于C,C++和Java开发者。
主要功能为:
源代码分析:逆向工程和可视化软件可以调高对源代码的理解。加速学习不熟悉的代码、变更影响分析、集成开源代码、代码重复使用和维护已停产的软件。
静态分析和指标:质量检查识别变量使用、任务交互作用和并发性中的问题。 软件指标帮助评估代码质量。提高实时流的核查、代码审查的准备工作、评估第三方代码的和追踪开发过程。
Delta分析:图表和报告显示源代码版本和分支之间的结构差异。这些使对软件更改的分析变得有意义。专注于测试用例开发、更改影响审查、软件定制和项目管理。
自动化文献编制:软件文档的产生和图表的导出包括统一建模图表以确保精确性、实时性,以及信息设计文件。支持同行代码审查、传送设计文档、问题和影响报告,以及软件归档。
1.12 JetBrains
超过15年,JetBrains努力成为地球上最强最高效的开发人员工具。通过自动例行检查和修正,我们的工具加快生产,使开发人员无阻碍的成长、探索和创造。
JetBrains有很多工具,本文介绍2个。
IntelliJIDEA(Java)
IntelliJIDEA分析你的代码,寻找遍及所有项目文件和语言的符号间的关系。它使用这个信息提供深入的编码帮助、快速导航、熟练的误差分析和重构。
IntelliJIDEA的每个部分都考虑了人机工程学。IntelliJIDEA建立在一个原则上,即开发者花费在工作流上的每分钟都被很好的利用,任何在工作流中打断开发者的事情都是不好的,应该被避免。
为了精简你的工作流,IntelliJIDEA从一开始就提供了一个无与伦比的工具集:逆编译程序、字节码查看器、FTP和更多工具。
除了Java,IntelliJIDEA为高级JVM以及非JVM框架和开箱即用语言提供了一流的支持。
PyCharm(Python)
试用30天。
Python提供智能代码完成提示、代码检查、即时错误突出显示和快速修复、自动代码重构和丰富的导航功能。
1.13 Kiuwan
15天试用,需要邮箱注册。
我们提供一个端对端的软件分析平台获取你的客观数据,因此你可以根据价值、工作量、活跃度、质量、可维护性、效率和应用依赖性做出明智的决定。我们使艰难的抉择变得更容易,这意味着成本降低、风险减轻、客观测量、软件技术安全认证和外包协议管理,仅列出几个平台带来的可能性。
我们支持多种应用技术,涵盖超过20种编程语言。当公司工业化软件开发生命周期时,当他们想要保护自己的应用不受网络威胁,尽可能遵循相关IT框架和标准内的所有服务水平协议(Service Level Agreement)时,我们的平台是至关重要的。
1.14 LDRA Testbed
30天试用。
LDRA工具套件的核心是LDRA Testbed,它为主机和嵌入式软件分析提供静态和动态分析核心引擎。TBvision是LDRA Testbed的交互式环境,让你容易的可视化遵循的编码标准和质量标准,快速的处理在源代码层识别出来的错误。在安全苛求、安全临界和关键业务应用程序方面拥有40年代码分析的经验,LDRA Testbed和TBvison提供对你的软件开发项目彻底的信任。
1.15 MALPAS
MALPAS是世界上最严格最先进的软件分析和验证工具集,可以用于所有顺序编程语言,自动翻译那些使用广泛的语言写出的程序,例如C、Ada和各种汇编语言。
1.16 Parasoft
创始于1987年,Parasoft研究开发软件解决方案,有效的帮助公司发行无缺陷的软件。通过集成开发测试,API测试和服务可视化,我们减少了时间、工作量和发行安全成本、可靠兼容的软件。Parasoft公司和嵌入式开发解决方案包括静态分析、单元测试、覆盖率测试、需求追踪、功能和负载测试、开发/测试环境管理等等,是业界最全面的。
Parasoft的产品:
- dotTEST: https://www.parasoft.com/product/dottest/
- Parasoft C.C++ test:https://www.parasoft.com/product/cpptest/
- Parasoft Jtest:https://www.parasoft.com/product/jtest/
1.17 PRQA
QA静态分析器包括QA-C、QA-C++和QA-J,评估软件可靠性、安全性、符合ISO编码最佳实践,同时降低开发时间。
按比例排列数百万行代码;
连续检查源代码是否符合你选择的编码标准;
给你的开发人员实时的上下文语境反馈,帮助他们纠正错误并从中学习;
降低由人工代码审查和缓慢的分析工具和方法导致的瓶颈问题;
分析你的源代码而不需要执行程序,无论是在C,C++或Java中。
1.18 PVS-Studio
PVS-Studio是一个用于C,C++和 C#源代码程序的错误检测工具。可以在Windows和Linux环境下工作。
PVS-Studio实现静态代码分析,产生一个报告帮助程序员寻找和修复错误。PVS-Studio执行代码检查的范围很广,还可以搜索印刷错误和复制粘贴错误。
1.19 Rogue Wave
Rogue Wave工具横跨40年,提供从云端服务到本地平台应用,再到便携式软件库的一切。他们都有一个共同的唯一的目的:使它易于编写、测试和运行复杂的代码。
Klocwork
可以试用,需要发送信息。
在程序生成前尽快找到问题,意味着之后更少的测试和较少影响成本和进度。它会继续持续集成,只有Klocwork支持流行的CI(Continuous Integration)工具,执行分析提交期间的渐进式代码变化,跟上快速的发布周期。Klocwork在提交之前、提交期间和提交之后识别开发者眼中的关键安全性、可靠性和代码标准问题。
OpenLogic
扫描源代码和二进制文件,确认开源代码和授权,管理开源政策和审批,报告安全漏洞,以及提供开源技术支持。
1.20 Semmle
Semmle有两个产品:Engineering Analytics和Code Exploration。
Engineering Analytics
分析代码行为,而不是代码。基于全新的编程语言、数据库搜索和数据科学,Semmle使软件工程师团队从他们创建的代码中获得有价值的情报。这些见解帮助软件领导做出由数据驱动的决定,提高软件交付、组织发展和效率。
代码即数据。软件存储库的代码更改历史可以充分说明你的团队开发的软件怎么样。Semmle提供独特的能力将你的代码转换为一个知识库,它可以被探讨并为你提供关于组织工作如何的反馈。
Code Exploration
Semmle QL是一个声明式的面向对象的查询语言。它是现代数据记录的变体,对于那些想有无限的能力去询问他们代码的问题的人是理想的,并通过询问QL将开发团队信息和他们想要的数据库方式联系起来。
几个使用Semmle QL的例子包括:
- 寻找安全漏洞的所有实例。
- 检查API是否使用正确。
- 搜索指定库的使用——它在哪里被谁使用。
- 报告标准,例如代码的行或测试方法的数量等。
- 完成任何其他搜索或你能想象到的分析。
1.21 SideCI
试用14天。
通过自动代码分析提高团队的生产率,可用于Ruby,Python,PHP,JavaScript,CoffeeScript和Go。
解决3个开发问题:
- 代码审查占用太多时间。
- 审查由于工程师间技能差异而出现的不一致。
- 编码标准不统一,降低了代码的可读性。
1.22 SLAM project
SLAM是一个微软研究院的项目,检查软件是否满足它所使用的接口关键行为属性,帮助软件工程师设计接口和软件并确保其可靠和正确运行。静态驱动程序检查器是一个Windows 驱动程序开发工具包中的工具,使用SLAM验证引擎。
1.23 Sonargraph
包括原来的Sotograph & Sotoarc,现在正在将它的现有客户转移到Sonargraph,很快将在更现代的多功能平台上支持这些产品的所有主要功能。
Sonargraph是一个强大的静态代码分析器,允许你监视一个软件系统的技术质量,在开发过程的所有阶段强制执行关于软件架构、标准和其他方面的规则。Sonargraph平台支持Java、C#、和C/C++,拥有强大的功能,例如基于脚本引擎的Groovy和描述软件架构的DSL(domain specific language)。
1.24 SQUORE
可以试用,需要填写信息。
Squoring技术专门用于软件和系统开发项目的评估和监测。SQUORE决策控制面板提高IT项目的质量和性能,它用于所有在成本和安全方面软件起着核心作用的行业,例如:航空、航天、汽车、铁路、国防、能源、通信、信息系统。
1.25 Synopsys
Coverity
可以试用。
静态代码分析在源代码中寻找缺陷和安全漏洞,但是不需要运行代码。亦称SAST(Static Application Security Testing)。用于提高许多行业的软件质量和安全,比如物联网自动化、汽车工业、医疗、企业、云、移动通讯、社交、共享经济、分析工具和关键业务的软件开发生命周期。
支持的语言有安卓安全、C++、Objective-C、C#、Java,JavaScript,PHP、Python、 Node.js、Ruby。
Goanna
一个C/C++的软件分析工具,已经是Synopsys的一部分。
- 官网:https://www.synopsys.com/software-integrity.html
- 新闻:http://news.synopsys.com/2015-12-18-Synopsys-Bolsters-Software-Integrity-Platform-with-Acquisition-of-Static-Code-Analysis-Vendor-Goanna-Software
Protecode
可以试用。
Protecode是一个自动软件成分分析工具,使机构可以检查开源软件的合规性、第三方代码中的漏洞、实现管理开源代码。
1.26 Understand
使用强大的可视化和规则理解来维护文件记录不足的遗留代码。
静态代码分析的“瑞士军刀”。可视化源代码结构,优化软件设计。
Understand将一个强大的代码编辑器和一系列令人印象深刻的静态分析工具结合在一起,将改变你编写代码的方式。
1.27 Veracode
随着我们的自动化、过程和速度的合并,Veracode将应用程序安全无缝集成到软件开发,在成本最低的时候有效的剔除开发/部署链中的漏洞。不需要额外的人员或设备,Veracode使用户迅速的提高,在第一天看到结果,证明价值,并随着时间的推移不断进步。
它是过程、技术和安全专家的独特组合,帮助一个金融服务机构缩放它的程序超过600%,漏洞的修复费用降低75%,减少60%整体漏洞,整体投资回报率为192%。
2 .NET
2.1 CodeRush
最新的Roslyn第三方控件CodeRush使用极少的内存,工作更快,让你启动Visual Studio更快。它影响Visual Studio解决方案解析数据,这意味着它不再分析解决方案,也不再保留复制的解决方案源代码树。它会自动支持新C#和VB语言功能,当它们可以在Visual Studio中使用时。使用CodeRush你将获得更快更精简的开发经验,节省数十秒的解决方案下载时间,释放数百兆字节的内存。
2.2 NDepend
试用14天
NDepend仅仅是Visual Studio的扩展,可以告诉开发者在过去一小时中,刚刚写出的代码引入的债务,假如价值30分钟,它将必须在之后偿还。知道这一点,开发者甚至可以在提交到源代码控件之前修复代码。
NDepend的代码规则是C# LINQ查询指令,可以在几秒钟后创建和定制。这些查询指令控制C#公式计算准确的技术债务估计。
默认的规则集提供超过100种编码规则,检测大范围的代码异味,包括混乱的代码、死码、API的破坏性改变和不好的面向对象使用。
3 Ada
3.1 AdaCore
AdaCore创建于1994年,是Ada语言商业软件解决方案的一流供应商,是最先进的程序语言,设计为大型持久的应用,安全、保障和可靠性至关重要。AdaCore的王牌产品是GNAT Pro 开发环境,带有专家线上支持,并可以用在比Ada技术更多的平台上。
CodePeer
CodePeer是一个Ada源代码分析器,检测运行时错误和逻辑错误。它在程序运行前评估潜在的错误,作为一个自动审阅者,有效的帮助人们在开发生命周期早期寻找错误。
SPARK Toolset
SPARK Pro是一个综合静态分析工具套件,通过正规化方法验证高度完整性的软件。它支持SPARK 2014语言,提供紧密集成到GNAT程序设计(GPS)和GNATbench集成开发环境的高级验证工具。
4 C,C++
4.1 Astree
30天试用
Astree是一个静态程序分析器,证明在用C语言写的或生成为C语言的关键安全应用程序中不存在运行时错误和无效的并发行为。
Astree主要针对嵌入式应用,用于航天、地面运输、医疗器械、核能源和宇宙飞行。然而,它也可以用于分析任何结构的C程序,手写的或生成的,使用复杂的内存用法、动态内存分配和递归。
4.2 ÉCLAIR
ÉCLAIR被设计为帮助开发和质量保证团队意识到质量,以及帮助质量控制团队评估成果。
ÉCLAIR是一个通用的软件验证平台。应用范围从编码规则验证到自动产生测试用例,再到证明不存在运行时错误或产生反例,以及基于语法和语义条件的代码匹配器和重写器规范。
4.3 PC-Lint
PC-lint和FlexeLint是强大的静态分析工具,它将检查你的C/C++源代码,寻找错误、小故障、不一致、不可移植的结构、冗余的代码等等。它看起来遍及多个模块,因此,具有你的编译器没有的视角。
4.4 Polyspace
使用Polyspace的静态分析产品检测和证明你的源代码中不存在运行时错误。是一个可用于工作流中任意阶段的解决方案。使用Polyspace Bug Finder定位缺陷和分流,在开发过程早期修复错误。使用Polyspace Code Prover证明C和C++源代码中不存在运行时错误。
5 Java
5.1 ThreadSafe
在官网填写相关信息,可以试用14天。
ThreadSafe是一个静态分析工具,它寻找Java程序中的并发性错误和潜在的性能问题。
ThreadSafe分析可以在三种不同的软件包中使用,以便适合你的环境:
- Eclipse 插件:在集成开发环境中显示问题,这是调查和修复错误最容易的地方。
- SonarQube插件:为你的团队提供ThreadSafe结果共享的视角。
- Command Line:创建问题和源代码交叉引用的HTML报告。
6 PHP
6.1 RIPS
对于主要由PHP编程语言写的应用来说,RIPS是一个高级的安全软件。它自动检测PHP代码中的安全漏洞,到目前为止没有其他软件可以识别。详细的修补程序介绍允许最小化声誉和数据危险,不需要专业的知识。通过RIPS自动化分析和错误警报最小化的方法,它实现了大幅度节约时间和成本。
7 PL/SQL
7.1 TOAD
TOAD采取积极主动的方式实现数据管理。使你的团队聚焦在更多战略计划,使你的业务朝向当今的数据驱动经济发展。
通过使数据专业人员实现流程自动化,风险最小化,削减将近一半的项目交付时间线,Toad解决方案使你在数字技术方面的投资最大化。通过降低效率低的代码对生产效率、未来的开发周期、性能和可用性的影响,从而降低新应用程序的总体持有成本。