源代码分析技术的演变与发展.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
源代码分析技术的演变与发展

源代码分析技术的演变与发展源代码分析技术的演变与发展 Gwyn Fisher ·首席技术官(CTO) ·Klocwork公司 白皮书 ·2008.2 北京智诚创想北京智诚创想 源代码分析技术的演变与发展源代码分析技术的演变与发展 前言 自动源代码分析(SCA)技术是为查找和描述软件源代码中的薄弱环节而开发的,这 些薄弱环节可能是安全漏洞、逻辑错误、编程错误、并发异常、边界条件错误或其他会 引发问题的错误代码。源代码分析区别于传统的单元测试、渗透测试等动态分析技术, 它是在构建期间分析可能存在问题的程序或模块的源代码,这样,报告的结果就是对所 有可能的执行路径的完整分析,而不只是对运行时特性进行的有限状态的测试。SCA的基 础是静态分析技术,新一代的静态分析技术解决方案可以进行复杂而有价值的分析,可 以查出代码中导致系统崩溃、被黑客攻击或影响“任务-关键”软件可靠性的严重缺陷或 安全漏洞。 随着源代码分析技术的发展,开发“任务-关 第一代源代码分析工具主要是给开发人员使 键”软件的机构正在把源代码分析作为开展质量保 用,它与编译、链接过程紧密整合在一起,在开 证(QA)活动前进行的集成构建中的一项标准活动, 发人员准备处理编译器报出的问题时,它能提供 这就说明了在集成构建阶段开展静态分析的有效性, 更多的警告性信息。如果开发人员已经在思考这 可以提高分析的准确性和全面性。但是,在构建阶 个程序问题,在他或她的信息列表上再加上一些 段进行分析存在其固有的问题:程序已经提交到源 错误,也不是特别额外的负担。 代码分支,这样,在缺陷被发现的时候,它事实上 一般情况下,这些第一代的静态分析工具重 已经在影响着其他开发人员,也影响着系统的其他 点放在发现编码风格、常见语法错误等容易发现 部分。 的简单类型缺陷上。例如,下面这个常见的用法 专业软件开发机构正在努力将静态分析技术整 错误,用第一代工具就能很容易地发现: 合到软件开发过程中,在开发过程中尽早发挥其功 int foo(int x, int* ptr) { 能,而不仅仅限于构建阶段。如果软件开发机构能 if( x 1 ); { *ptr = x; 把这种高质量的源代码分析活动提前到编码阶段刚 return; 开始的时候进行,即在开发人员的桌面环境进行分 } ... 析,他们就可以从中受益,可以降低成本,提高QA } 效率,并显著提高软件产品品质。 这里,多加了一个分号,会导致潜在的严重 本文将回顾源代码分析从个人桌面分析、到集 后果:传入的指针在不希望的条件下被引用。无 成/构建分析、再回到桌面分析的发展历程。 论被测试的条件是否满足,指针都要被引用。 使用这些工具发现的错误可能有相当的后果, //// 第一代源代码分析工具 第一代源代码分析工具

文档评论(0)

zhuwo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档