|
|
|
|
移动端

1.2.2 静态代码分析

《腾讯iOS测试实践》本书由腾讯QQ浏览器iPhone测试团队撰写,系统、深度地讲解了iOS测试的系统方法论、新技术与常见的技巧与方法。本节为大家介绍静态代码分析。

作者:丁如敏来源:机械工业出版社|2017-09-14 15:17

有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研


1.2.2 静态代码分析

静态代码分析就是在不执行代码的情况下,通过一定的算法规则(词法分析、语法分析、单函数分析、代码段分析、数据流分析、资源分析、依赖链分析、更高级的智能逻辑分析)对整个工程的代码进行分析,以此来找出代码中的缺陷。这样就可以提早发现问题,大大降低研发成本。美国软件工程专家Capers Jones提出的软件测试缺陷价值图如图1-1所示。

图1-1中的三条曲线分别代表引入的缺陷、发现缺陷、缺陷修复成本。越是在前期发现的缺陷,修复缺陷的成本越低,越是到后期,修复缺陷的成本越高。通常来说,发现缺陷主要在功能测试、集成测试阶段。

如果能够在Coding阶段发现大部分缺陷,就能大大降低修复缺陷的成本。静态代码分析技术恰恰能够很好地在Coding阶段发现部分代码问题,这样就能够大大节约软件开发成本。

经过实践论证,iOS平台比较好用的两款工具如下。

Clang的Scan-Build工具(下载地址:http://clang-analyzer.llvm.org/scan-build.html)。

FaceBook的Infer工具(下载地址:https://github.com/facebook/infer)。

目前这两款工具都是开源的,除了能够使用其基本的功能外,如果还有其他的业务需求,可以对这两款工具进行二次开发:添加自己的静态分析规则和分析算法。

QQ浏览器(iPhone)项目采用Scan-Build工具发现代码缺陷,如图1-2所示。

采用Infer工具发现代码缺陷统计图如图1-3所示,共发现1275处缺陷。

每日构建版本时,配置工程会自动采用这两款工具对工程代码进行静态代码分析,这样在测试任务前就能发现代码缺陷,大大降低软件缺陷修复成本。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

XML案例解析教程

本书对开发XML应用程序给予了详细指导,其中一些应用程序甚至对于您来说是完全陌生的。这些应用程序包括XML 1.0,以及与XSLT、XQuery和XPat...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊