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

25 | 不破不立:掌握代码级测试的基本理念与方法

你好,我是茹炳晟,今天我和你分享的主题是“不破不立:掌握代码级测试的基本理念与方法”。
我在第三篇文章《什么是单元测试?如何做好单元测试?》中,为你介绍了单元测试的基本概念和方法,和你聊到了单元测试用例的“输入数据”和“预计输出”,也谈到了驱动代码和桩代码,其实这些概念和方法在代码级测试中也是最基本的。
通常情况下,代码级测试的工作都是由开发人员完成,但是测试框架选型、覆盖率统计工具选型、测试用例设计原则等都需要资深的测试工程师或者测试架构师参与。
所以,代码级测试这个系列,我会和你分享测试人员应该具备的代码级测试基础知识,为你呈现一幅包括代码级测试技术入门、方法论、用例设计,以及覆盖率衡量、典型难点、解决思路的全景技术视图。
为了能更好地协助开发人员做好代码级测试,所以我今天的这次分享是根据实际工程项目中的实践,总结了五种常见的代码错误,以及对应的四大类代码级测试方法。
掌握了这些错误类型、测试方法,相信你就可以搞定代码级测试了,即使自己不用去完成测试工作,也可以让开发人员对你另眼相看,可以更高效地互相配合完成整个项目。
这里需要注意的是,代码级测试的测试方法一定是一套测试方法的集合,而不是一个测试方法。 因为单靠一种测试方法不可能发现所有潜在的错误,一定是一种方法解决一部分或者一类问题,然后综合运用多种方法解决全部问题。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件测试 52 讲》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(21)

  • 最新
  • 精选
  • Jia
    对于自动静态测试,还有一个很好用的免费工具,Facebook出的Infer。常见的语言,C,Java, Pathon等都可以分析。

    作者回复: 我可以去关注一下,这个我没有用过👍

    21
  • sylan215
    1.代码级测试应该算一个比较大的话题了,有专门的公司做这种静态代码检查工具的,一套好贵的说,对于测试来说,不管是人工还是自动,如果能把这五种常见错误发现了,已经很厉害了; 2.目前的五种错误类型确实是最基本最常见的了,这也是我们测试用例设计时需要优先关注的点,如果针对专门做代码级测试的来说,需要覆盖的类型要更多,也更加具体,通用一点的比如:定义宏时应使用括号括住宏的每个参数、禁止使用不检查缓冲区长度的字符串函数、所有的循环必须有异常情况下的跳出条件等等; 3.不太清楚其他公司的单元测试开展情况如何,就我个人来看,我觉得「自动静态方法」的推广和效果,应该是优于其他方法的,因为通用性更好,部署后也可以针对每次编译的项目做自动检测,唯一的问题就是检查点的覆盖度和误报率的问题。人工动态方法如果让开发开展,推进难道比较大,让测试开展,技术难度比较大,这是一个长期投入的问题,又需要兼顾投入产出比。 以上,欢迎沟通交流,公众号「sylan215」

    作者回复: 很棒的回复。人工动态本质上可以理解成单元测试,基本都是由开发自己来完成的。误报率的问题的确存在,但其实也可以反过来规范代码本身的写法,另外有些误报出现过一次后可以标注,下次就不会发生了

    11
  • Dream.
    所以开发也要学点测试,这样写的程序bug才更少~学完这篇之后眼前一亮,以后自己开发要更注意了。

    作者回复: 是的,开发人员一定要建立起这些意识,能够从文中讲到的四个方法的角度去思考,这样一定可以带来更好的代码质量,从根源上解决问题

    2
    10
  • 元让
    分类清晰,条理清楚,写的不错

    作者回复: 感谢支持👍

    3
  • 楚耳
    老师,文中提到的基于代码自动生成边界测试用例并执行 这个是怎么做的,用开源工具还是自己开发的工具

    作者回复: 一般是自己开发的小工具

  • Jalyn
    作为一个有心做好代码级测试的初级测试工程师,需要掌握哪些必备的技术技能呢?

    作者回复: 首先需要比较深入地掌握一门语言,然后还要学习至少一个单元测试框架,接下来可能就要学着使用moke

    2
  • arthur
    打卡,写的真好,目前我们产品还木有自动动态方法,学到了😁

    作者回复: 感谢支持,自动动态方法的投入产出比其实很好的,而且可以发现很多原本只有在后期才能发现的问题

  • 涅槃Ls
    打卡25

    作者回复: 感谢支持

  • 口水窝
    开发和测试必须要有共同的利益,且都把这个利益放在第一位的时候,才能共进一致的去努力。比如,开发和测试把保证产品质量放在第一位,那么就会协同起来比较好,要是连这个意识都没有,恐怕只能有无穷无尽的撕逼过程。
    10
  • 小老鼠
    常见代码错误类型 有特征 第一,语法特征错误 第二,边界行为特征错误 第三,经验特征错误 无特征 第四,算法错误 第五,部分算法错误 测试方法 人工静态方法 自动静态方法 人工动态方法 自动动态方法
    5
收起评论
显示
设置
留言
21
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部