
不管是实验室申请代码测试或安全测试cnas/cma资质,还是软件测试团队开展软件测试业务,都需要借助代码扫描工具去开展代码测试。漏洞扫描工具的选型需要与后续要开展的业务相结合,如部分工具更加侧重于嵌入式系统,有些工具在通用软件领域更加出色,还有很多工具无法适配国产化的要求,在选型的过程中需要做好针对工具的调研。本文我们将代码测试领域常见的五款代码扫描工具进行比对,供大家参考。
比对项 | TestBed | Klockwork | Helix QAC | C++ Test | Vector Cast/C++ |
|---|---|---|---|---|---|
支持语言 | C、C++、Java、Ada95等4种高级程序语言,ARM Assembler(s)、Freescale Assembler(s)、Intel Assembler(s)、Microchip Assembler、MIL 1750 Assembler(s)、MIPS Assembler(s)、Texas Instruments Assembler(s)等汇编语言 | C、C++、C#、Java、JavaScript、Python、Kotlin等7种高级程序语言,但JavaScript、Python已经逐渐不支持。 | C、C++ | C、C++ | C、C++ |
支持标准 | CERT、MISRA-C:1998、MISRA-C:2004、MISRA-C:2012、Meyers Effective C++ and Effective STL、MISRA-C++:2008、HIS (Herstellerinitiative Software)、JSF++ AV C++、 DO-178B/C Level A (Aerospace)、IEC 61508 SIL 4 (Industrial)、ISO 26262 (Automotive)、EN 50128 SIL 3/4 (Rail Transportation)、IEC 62304 (Medical Devices, Class II and III) | CERT、CWE、OWASP、DISA STIG、PCI DSS、 TS 17961、MISRA C 2004、MISRA C 2012、MICRA C++ 2008、AUTOSAR C++ 14、JSF AV C++、NASA’s 10 Rules、Klockwork Quality、IEC 61508、ISO 26262、EN 50128、IEC 62304、Do-178B/C | CERT、CWE、OWASP、High Integrity C++、MISRA C 2004、MISRA C 2012、MICRA C++ 2008、AUTOSAR C++ 14、JSF AV C++、NASA’s 10 Rules、Klockwork Quality、IEC 61508、ISO 26262、IEC 60880、ISO 26262、EN 50128、IEC 62304、DO330 | CERT、CWE、High Integrity C++、MISRA C 2004、MISRA C 2012、MICRA C++ 2008、AUTOSAR C++ 14、JSF AV C++、NASA’s 10 Rules、Klockwork Quality、IEC 61508、ISO 26262、IEC 60880、ISO 26262、EN 50128、IEC 62304、DO330 | IEC 61508、ISO 26262、IEC 60880、ISO 26262、EN 50128、IEC 62304、 |
支持操作系统 | Windows、Linux、Mac OS | Windows、Linux、Mac OS | Windows、Linux、Solaris | Windows、Linux | Windows、Linux、Solaris |
支持IDE | Altera、Altium TASKING、Analog Devices VisualDSP、Atego ObjectAda、Atmel Studio、ARM DS-5 Development Studio、Cosmic ZAP & IDEA、DDC-I Open Arbor、Freescale CodeWarrior、GNU、Green Hills MULTI (& INTEGRITY)、IAR Embedded Workbench、iSYSTEM winIDEA、Keil μVision、Lauterbach TRACE32、MathWorks Simulink、Mentor Graphics、Microchip MPLAB & MPLAB X、QNX Momentics、Renesas、TI Code Composer Studio、Wind River Tornado Workbench、Supporting VxWorks, DiabXilinx | Eclipse、Visual Studio、Visual Studio Code、Android Studio、JetBrains Intelilj IDEA、IBM Rational Application Developer、CLion、QNX Momentics、Windows River Workbench | Eclipse、Visual Studio、Visual Studio Code | Eclipse、Visual Studio、Visual Studio Code | 不支持 |
支持版本管理工具 | Subversion、ClearCase、Visual SourceSafe、Perforce Server | Git、Subversion、ClearCase、Team Foundation Server、Perforce Server、CVS | 不支持 | GitLab、GitHub | 不支持 |
支持C/C++语言编译环境 | Analog Devices VisualDSP++、ARM CCS、CodeWarrior Freescale、COSMIC、DDC-I、GNU、Green Hills、IAR Embedded Workbench for ARM using semi-hosting、IAR Embedded Workbench 8051 Simulator、IAR Embedded Workbench ATmega2560 Simulator、IAR Embedded Workbench ATmega2560 STK600 Serial、IAR Embedded Workbench Cortex-M3 Simulator、IAR Embedded Workbench Cortex-M3 STM32F103ZE-SK、IAR Embedded Workbench Cortex-M3 STM32F103ZE-SK Serial、IAR Embedded Workbench MSP430 Simulator、IAR Embedded Workbench MSP430 eZ430、IAR Embedded Workbench M32C Simulator、IAR Embedded Workbench RL78 Simulator、IAR Embedded Workbench for ARM with Micrium OS and Serial IO、iSYSTEM winIDEA、Keil uVision、Lauterbach TRACE32、MathWorks Simulink、Mentor Graphics、Microchip MPLAB & MPLAB X、QNX Momentics、Renesas、TI Code Composer Studio、Wind River Diab、Xilinx、 | Analog Devices Blackfin and TigerSHARC、Archelon、Archelon CSR Kalimba、ARM CC、ARM TI tms470、CADUL C for Intel 80X86、CEVA (NVIDIA)、Clang、CodeWarrior Freescale S12、Compiler caching tools、Cosmic、Embarcadero、Fujitsu FR、GNU、Green Hills、Hexagon Tools、HI-CROSS+ Motorola HC16、HI-TECH C、Hitachi ch38、HiveCC、IAR 78K、IAR 8051、IAR ARM、IAR Atmel AVR、IAR AVR32、IAR CR16C、IAR Hitachi H8、IAR M16C、IAR M32C、IAR MAXQ、IAR MSP430、IAR NEC V850、IAR Renesas R32C、IAR Renesas RX210、IAR RH850、IAR RL78、IAR SH、IAR STM8、IBM XL、ImageCraft AVR、ImageCraft Intel、ImageCraft M8C、Intel iC-386、Keil CA51, C166 and C251、Marvell、MetaWare、Metrowerks CodeWarrior、Microchip MPLAB C18、Microchip MPLAB pic24、Microchip MPLAB pic32、Microchip MPLAB XC8 C、Microchip MPLAB XC16、Microsoft Visual Studio、Microtec、Microware Ultra C for OS-9、Mono Headset SDK、Motorola DSP563、Nintendo Cafe Platform、Nvidia CUDA、NXP StarCore Freescale、Panasonic、Panasonic MN101E/、MN101L、Paradigm、Plan 9、QNX qcc、Renesas 78K0R、Renesas CC-RL RL78、Renesas CX、Renesas M16C、Renesas M32R、Renesas R32C、Renesas R8C、Renesas RH850、Renesas RX、Renesas SuperH、Renesas V850、Rowley Crossworks、MSP430、Sony SN Systems PS2, PS3 and PSVita、Sony Orbis Clang PS4、Sun Studio、Synopsys ARC MetaWare、Target Chess、Tasking 68K、Tasking ARM、Tasking Classic C166、Tasking DSP56X、Tasking IFX SLE88、Tasking SLE88、Tasking Tricore、Tasking VX C166、Tensilica Xtensa、TI ARP32、TI msp430、TI tms320C55x、TI tms320C3x、TI tms320C4x、TI tms320c28x、TI tms320c6x、TriMedia tmcc、Watcom、WinAVR、Wind River Diab、Wind River GCC、ZiLOG eZ80、 | VisualDSP、GCC、arm-none-eabi-gcc、IAR、COSMIC、KEIL、Cypress、MPLAB、CodeWarrior Freescale、GHS、QNX、Visual Studio | GCC、MicroSoft Visual C++、Qualcomm Hexagon Clang、Synopsys Metaware ARC、Tasking TriCoreARM Compiler、IAR Compiler、QNX、TI ARM C/C++ Compiler、Green Hills、Metaware DesignWare ARC C/C++ Compiler、Vx-Toolset for TriCore C/C++ Compiler、Wind River Clang | Green Hills、Clang、Cosmic、QNX、IAR、KEIL、MPLAB XIDE、Tasking、Code Composer Studio、Android Studio、HI-TECH C、ADSP-21XX、Analog Devices、VisualDSP、CodeWarrior Freescale、Fujitsu Softune、GNU 2.9 through、NEC、WindRiver tornado、Synopsys ARC、ARM RVDS、TI Code Composer Studio |
支持测试类型 | 静态测试、动态测试、单元测试、集成测试 | 静态测试 | 静态测试 | 静态测试、单元测试 | 静态测试、单元测试、集成测试 |
是否支持非完整代码测试 | 1. 不需要完整源代码也可以进行静态测试,但可能会存在测试问题。2. 动态测试需要完整可运行源代码。 | 1. C/C++代码需要完整可编译代码,或者需要提供源代码所依赖的头文件才能进行静态测试。2. 其他语言需要完整源代码进行静态测试。 | 1. C/C++代码需要完整可编译代码,或者需要提供源代码所依赖的头文件才能进行静态测试。 | 1. 不需要完整源代码也可以进行静态测试,但可能会存在测试问题。 | 1. 不需要完整源代码也可以进行静态测试,但可能会存在测试问题。 |
与研发工具集成支持 | 1.与研发工具无法集成 | 1. 与Devops研发工具可以集成 | 1.与研发工具无法集成 | 1.与Devops研发工具可以集成 | 1.与Devops研发工具可以集成 |
接口开发 | 不支持接口开发 | 不支持接口开发 | 不支持接口开发 | 不支持接口开发 | 不支持接口开发 |
以上就是五款常见代码测试工具TestBed、Klocwork、Helix QAC、C++ Test、Vector Cast/C++的比对分析。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。