【腾讯TMQ】iOS静态代码扫描之工具调研

本文探讨了在iOS开发中用于静态代码扫描的几种主流工具,包括coverity、clang、infer和oclint。通过介绍工具的特点、使用方法以及遇到的坑点,如证书问题、xcpretty安装和增量分析等,作者进行了扫描能力的对比,指出coverity在准确率上领先,而oclint更适合评估代码复杂度。通过对扫描结果的初步筛选和分析,提出了针对第三方库的过滤策略以提高扫描准确性。
摘要由CSDN通过智能技术生成

为了进一步加强测试质量,同时探索测试左移在同步中的实践,iOS同步助手尝试接入静态代码扫描工具。希望通过不同的途径提前发现日常测试中难发现的问题。

然而iOS静态代码扫描工具有不少,它们都有什么不同?我应该选哪一个?因此,本文主要针对主流的几个工具,对同步助手的代码进行扫描,并分析对比它们的扫描结果,再敲定后续的接入计划。

该文章从以下几部分进行阐述,可按需阅读:

一、工具介绍

二、遇到的坑点

三、扫描能力对比

四、部分结果分析

一、工具介绍

本次选取了四个主流的扫描工具: coverity、infer、clang、oclint。

1、coverity

Coverity是检测和解决C、C++、Java和C#源代码中最严重的缺陷的领先的自动化方法。它将基于布尔可满足性验证技术应用于源代码分析引擎,分析引擎利用其专利的软件DNA图谱技术和meta-compilation技术,综合分析源代码、编译构建系统和操作系统等可能使软件产生的缺陷。

2、clang

Clang作为LLVM编译器框架的前端,最主要的任务是词法分析、语法分析,中间代码生成。源代码通过clang语法分析后,生成了语法分析树(AST)后,可作为静态分析工具对AST进行分析。

Clang命令行调用方法:

(1)下载clang:http://clang-analyzer.llvm.org/

(2)命令行cd到项目代码所在目录:$ cd /path

(3)使用clang扫描,命令开头为clang的scan-build所在目录:$
/Users/kylinhuang/Documents/tools/analyzer/bin/scan-build -vxcodebuild
-target QQPimPro -configuration Developer

(4)可以看到生成报告在指定目录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值