本文章转载于搜狗测试
静态代码检测是白盒测试中很有效的发现代码问题的一种手段,通过一些工具的辅助,我们可以在进行详细的白盒测试前发现程序中一些潜在的问题,本文小编将给大家介绍两种对Objective-C代码的静态检查工具。
Xcode Analyze
简介
Xcode Analyze是直接集成在Xcode中的静态代码分析工具,它功能强大且使用简单,主要会对代码中的几类错误加以标识:
1. 逻辑缺陷,如访问未初始化的变量等
2. 内存泄露(对ARC的代码无法检测)
3. 无用存储逻辑(永远不会被访问的变量、永远不会执行的代码)
……
下面结合实例介绍一下它的用法。
使用方法和问题描述
1. 点击Product -> Analyze开始执行
2. 执行完成后,在左侧导航栏,我们可以看到分析的结果,如图:
按问题类型分类
按问题文件分类
在代码中的标注
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