静态代码分析工具Xcode Analyze+OCLint

本文章转载于搜狗测试

静态代码检测是白盒测试中很有效的发现代码问题的一种手段,通过一些工具的辅助,我们可以在进行详细的白盒测试前发现程序中一些潜在的问题,本文小编将给大家介绍两种对Objective-C代码的静态检查工具。

Xcode Analyze

简介

Xcode Analyze是直接集成在Xcode中的静态代码分析工具,它功能强大且使用简单,主要会对代码中的几类错误加以标识:

1.  逻辑缺陷,如访问未初始化的变量等

2.  内存泄露(对ARC的代码无法检测)

3.  无用存储逻辑(永远不会被访问的变量、永远不会执行的代码)

……

下面结合实例介绍一下它的用法。

使用方法和问题描述

1. 点击Product -> Analyze开始执行

静态代码分析工具Xcode Analyze+OCLint_第1张图片

2. 执行完成后,在左侧导航栏,我们可以看到分析的结果,如图:

静态代码分析工具Xcode Analyze+OCLint_第2张图片

按问题类型分类

静态代码分析工具Xcode Analyze+OCLint_第3张图片

按问题文件分类

静态代码分析工具Xcode Analyze+OCLint_第4张图片

在代码中的标注

1. Memory

2. Logic error

3. Dead store

OCLint

简介

OCLint是一款在mac和linux下使用的,针对OC代码的静态分析工具,个人感觉它更偏向于代码规范的检测,通常可发现如下几种问题:

1. Possible bugs – empty if/else/try/catch/finally statements

2. Unused code

3. Complicated code

4. Redundant code

5. Code smells

6. Bad practices

……

安装、环境配置

step1:下载OCLint并安装

下载地址:http://oclint.org/downloads.html,选择mac os或darwin的包,目前最新版本OCLint 0.9。

step2:配置环境变量

OCLINT_HOME = /path/to/oclint-release(表示可执行文件的存放路径)

export PATH = $OCLINT_HOME/bin: PATH

将上面两条环境变量添加到.bash_profile或.bashrc文件中中

使用方法

通过xcodebuild使用OCLint

step1:在bash中通过cd命令进到需要lint的工程路径下

step2:在bash中执行:xcodebuild < options > | tee xcodebuild.log

step2表示通过xcodebuild命令进行编译并把相关日志信息输入到xcodebuild.log,该log文件是后续步骤的必要条件,生成在当前的工程目录中

step3:在bash中执行 oclint-xcodebuild xcodebuild.log

此步骤是利用之前的.log文件通过oclint-xcodebuild的可执行文件生成了名为compile_commands.json的json格式文件。

step4:在bash中执行 oclint-json-compilation-database,此步骤是真正执行了lint,执行完应该在终端输出结果。

若希望输出报告到文件中,运行如下命令:oclint-json-compilation-database -- -o=report.html

通过xctool使用OCLint

xctool也是mac下的一款命令行工具,相比xcodebuild功能更加强大。通过xctool使用OCLint的步骤与xcodebuild基本一致,只不过脚本更简化。

step1:生成包含编译信息的.json文件

path/to/xctool.sh \

-project YourProject.xcodeproj \ -scheme YourScheme \ -        reporter json-compilation-database:compile_commands.json \ build

step2:生成分析报告

oclint-json-compilation-database -- -o= report.html


你可能感兴趣的:(静态代码分析工具Xcode Analyze+OCLint)