软件测试 52 讲
茹炳晟
腾讯 TEG 基础架构部 T4 级专家
71691 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 63 讲
结束语 (1讲)
软件测试 52 讲
15
15
1.0x
00:00/00:00
登录|注册

26 | 深入浅出之静态测试方法

重复代码块
死循环
高代码复杂度
不可达的代码
数组越界
缓冲区溢出
空指针引用
内存泄漏
变量类型不匹配
变量声明但未使用
变量未定义
未初始化的变量
高误报率
不检测逻辑功能
严格、个性化的检查
与持续集成流水线绑定
绑定SonarLint和SonarQube
实时查看静态分析结果
集成SonarLint插件
扫描Maven项目
搭建SonarQube服务器
可发现的问题
特点
同行评审(Peer Review)
结对编程(Pair Programming)
代码走查(Code Review)
Sonar实战
自动静态方法
人工静态方法
代码级测试方法之静态测试方法

该思维导图由 AI 生成,仅供参考

你好,我是茹炳晟,今天我和你分享的主题是:深入浅出之静态测试方法。
我在分享《不破不立:掌握代码级测试的基本理念与方法》这个主题时,系统地介绍了代码级测试常见的五种错误类型(包括语法特征错误、边界行为特征错误、经验特征错误、算法错误,以及部分算法错误),以及对应的四大类测试方法(包括人工静态方法、自动静态方法、人工动态方法,以及自动动态方法)。
今天,我将和你详细讨论人工静态测试方法和自动静态测试方法,来帮你理解研发流程上是如何保证代码质量的,以及如何搭建自己的自动静态代码扫描方案,并且应用到项目的日常开发工作中去。
人工静态方法本质上属于流程上的实践,实际能够发现问题的数量很大程度依赖于个人的能力,所以从技术上来讲这部分内容可以讨论的点并不多。但是,这种方法已经在目前的企业级测试项目中被广泛地应用了,所以我们还是需要理解这其中的流程,才能更好地参与到人工静态测试中。
而自动静态方法,可以通过自动化的手段,以很低的成本发现并报告各种潜在的代码质量问题,目前已经被很多企业和项目广泛采用,并且已经集成到 CI/CD 流水线了。作为测试工程师,我们需要完成代码静态扫描环境的搭建。接下来我会重点和你分享这一部分内容。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了代码级测试方法中的静态测试方法,包括人工静态方法和自动静态方法。在人工静态方法中,详细介绍了代码走查、结对编程和同行评审的执行方式和实际应用情况。自动静态方法相比编译器具有更严格、个性化的检查能力,并能以极低成本发现多种代码问题。通过实际案例展示了自动静态方法在检查语法特征错误和内存空间释放后继续被赋值错误方面的应用。文章还介绍了如何搭建自动静态代码扫描方案并应用到项目的日常开发工作中,以及如何将SonarQube服务器与Maven项目集成,实现实时的自动静态分析。总的来说,本文以深入浅出的方式介绍了静态测试方法在代码质量控制和度量中的重要性,为读者提供了实用的技术指导和思考题,帮助他们解决实际工作中遇到的问题。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件测试 52 讲》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(23)

  • 最新
  • 精选
  • arthur
    sonar是个特别好的工具,还可以自定义很多规则进行扫描。 Python中可以pylint进行检查,也很方便。

    作者回复: 是的,扩展性很强,很好的补充

    2018-09-03
    4
  • Jecy-8
    之前公司用fortify,也是通过Jenkins 集成每次提交代码自动扫描

    作者回复: 嗯嗯,fortify也是用得比较多的,不过近几年好像sonar更主流了

    2018-09-02
    1
  • 中艳
    sonar是否适用于java代码吗?

    作者回复: 完全适合,而且也支持很多其他的语言

    2018-09-28
  • 涅槃Ls
    打卡26

    作者回复: 感谢支持

    2018-09-03
  • 缪倩
    我们是小公司,一直觉得自动静态代码是大公司专属的,看了这篇文章,我居然也装出来一个sonar环境,接下来打算在公司里面推广用起来了,收获满满!
    2018-08-28
    1
    21
  • Jia
    静态代码扫描工具,都有自己的语言偏好性,和扫描偏好性。所以最好的方法是多用几个工具,综合来看。 常见的工具包括收费的企业级应用,比如Coverity。 其它免费的应用,比如Findbugs(Spotbugs), Java Checker Framework, PREfast, Splint, SPIN, Microsoft SLAM, PMD, Facebook Infer. 当然,如果用KLEE, LLVM, Clang, 也可以订制出自己扫描偏好的工具。
    2018-08-27
    13
  • sylan215
    1.人工静态方法,这个要看项目开发的习惯和良心了,貌似国内这部分做的并不好,所以很多功能测试都能发现不少的低级错误,相对来说,国外这块更成熟一些,特别是一些推崇「去 QE 化」的公司。 2.自动静态方法相对来说,还是比较靠谱的,毕竟一条规则可以适用于所有项目,一次投入可以有一直产出的效果,目前主要存在规则范围,以及规则准确度的问题,然后就是通用检测工具和定制检测工具的选型等问题。 3.我们公司的人工静态方法是有一个开发代码 Review 阶段,自动静态方法是有一个定制开发的代码红线扫描规则,每次编译时自动扫描,效果还挺好,可以规避大部分的低级错误。 以上,欢迎沟通交流,公众号「sylan215」
    2018-08-27
    7
  • 姜姜
    python代码的静态扫描可以用sonar吗?
    2018-08-30
    1
    4
  • Jia
    对于前面的提问,用sonar来分析C语言,请参考https://docs.sonarqube.org/plugins/servlet/mobile?contentId=7996665#content/view/7996665 需要用到developer license, 是收费的。
    2018-08-27
    2
  • h
    之前公司用的coverity和klocwork
    2020-01-13
    1
收起评论
显示
设置
留言
23
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部