美文网首页
静态代码分析工具Xcode Analyze+OCLint

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

作者: 夜境 | 来源:发表于2017-07-28 11:08 被阅读578次

    本文章转载于搜狗测试

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


    相关文章

      网友评论

          本文标题:静态代码分析工具Xcode Analyze+OCLint

          本文链接:https://www.haomeiwen.com/subject/uefjkxtx.html