|
|
|
|
移动端

1.2.2 静态代码分析

《腾讯iOS测试实践》第一部分主要介绍了iOS测试的现状、困境、测试流程、测试团队的管理等。本节为大家介绍静态代码分析。

作者:丁如敏来源:机械工业出版社|2017-09-13 16:44

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


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
分享:
大家都在看
猜你喜欢

读 书 +更多

Linux命令、编辑器与Shell编程

本书是目前所能找到的最实用、最全面的Linux指南和参考手册,也是唯一一本提供以下全部内容的书籍: 更好更实用的示例覆盖了实际工作中需...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊