软件测试52讲
茹炳晟
eBay中国研发中心,测试基础架构技术主管
立即订阅
13360 人已学习
课程目录
已完结 63 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从“小工”到“专家”,我的软件测试修炼之道
免费
测试基础知识篇 (11讲)
01 | 你真的懂测试吗?从“用户登录”测试谈起
02 | 如何设计一个“好的”测试用例?
03 | 什么是单元测试?如何做好单元测试?
04 | 为什么要做自动化测试?什么样的项目适合做自动化测试?
05 | 你知道软件开发各阶段都有哪些自动化测试技术吗?
06 | 你真的懂测试覆盖率吗?
07 | 如何高效填写软件缺陷报告?
08 | 以终为始,如何才能做好测试计划?
09 | 软件测试工程师的核心竞争力是什么?
10 | 软件测试工程师需要掌握的非测试知识有哪些?
11 | 互联网产品的测试策略应该如何设计?
GUI自动化测试篇 (10讲)
12 | 从0到1:你的第一个GUI自动化测试
13 | 效率为王:脚本与数据的解耦 + Page Object模型
14 | 更接近业务的抽象:让自动化测试脚本更好地描述业务
15 | 过不了的坎:聊聊GUI自动化过程中的测试数据
16 | 脑洞大开:GUI测试还能这么玩(Page Code Gen + Data Gen + Headless)?
17 | 精益求精:聊聊提高GUI测试稳定性的关键技术
18 | 眼前一亮:带你玩转GUI自动化的测试报告
19 | 真实的战场:如何在大型项目中设计GUI自动化测试策略
20 | 与时俱进:浅谈移动应用测试方法与思路
21 | 移动测试神器:带你玩转Appium
API自动化测试篇 (3讲)
22 | 从0到1:API测试怎么做?常用API测试工具简介
23 | 知其然知其所以然:聊聊API自动化测试框架的前世今生
24 | 紧跟时代步伐:微服务模式下API测试要怎么做?
代码测试篇 (3讲)
25 | 不破不立:掌握代码级测试的基本理念与方法
26 | 深入浅出之静态测试方法
27 | 深入浅出之动态测试方法
性能测试篇 (7讲)
28 | 带你一起解读不同视角的软件性能与性能指标
29 | 聊聊性能测试的基本方法与应用领域
30 | 工欲善其事必先利其器:后端性能测试工具原理与行业常用工具简介
31 | 工欲善其事必先利其器:前端性能测试工具原理与行业常用工具简介
32 | 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(上)
33 | 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(下)
34 | 站在巨人的肩膀:企业级实际性能测试案例与经验分享
测试数据准备篇 (4讲)
35 | 如何准备测试数据?
36 | 浅谈测试数据的痛点
37 | 测试数据的“银弹”- 统一测试数据平台(上)
38 | 测试数据的“银弹”- 统一测试数据平台(下)
测试基础架构篇 (4讲)
39 | 从小作坊到工厂:什么是Selenium Grid?如何搭建Selenium Grid?
40 | 从小工到专家:聊聊测试执行环境的架构设计(上)
41 | 从小工到专家:聊聊测试执行环境的架构设计(下)
42 | 实战:大型全球化电商的测试基础架构设计
测试新技术篇 (5讲)
43 | 发挥人的潜能:探索式测试
44 | 测试先行:测试驱动开发(TDD)
45 | 打蛇打七寸:精准测试
46 | 安全第一:渗透测试
47 | 用机器设计测试用例:基于模型的测试
测试人员的互联网架构核心知识篇 (5讲)
48 | 优秀的测试工程师为什么要懂大型网站的架构设计?
49 | 深入浅出网站高性能架构设计
50 | 深入浅出网站高可用架构设计
51 | 深入浅出网站伸缩性架构设计
52 | 深入浅出网站可扩展性架构设计
特别放送篇 (8讲)
测试专栏特别放送 | 答疑解惑第一期
测试专栏特别放送 | 答疑解惑第二期
测试专栏特别放送 | 答疑解惑第三期
测试专栏特别放送 | 答疑解惑第四期
测试专栏特别放送 | 答疑解惑第五期
测试专栏特别放送 | 答疑解惑第六期
测试专栏特别放送 | 答疑解惑第七期
测试专栏特别放送 | 浅谈全链路压测
测一测 (1讲)
测一测 | 这些软件测试题目,你都掌握了吗?
结束语 (1讲)
结束语 | 不是结束,而是开始
软件测试52讲
登录|注册

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

茹炳晟 2018-08-24
你好,我是茹炳晟,今天我和你分享的主题是“不破不立:掌握代码级测试的基本理念与方法”。
我在第三篇文章《什么是单元测试?如何做好单元测试?》中,为你介绍了单元测试的基本概念和方法,和你聊到了单元测试用例的“输入数据”和“预计输出”,也谈到了驱动代码和桩代码,其实这些概念和方法在代码级测试中也是最基本的。
通常情况下,代码级测试的工作都是由开发人员完成,但是测试框架选型、覆盖率统计工具选型、测试用例设计原则等都需要资深的测试工程师或者测试架构师参与。
所以,代码级测试这个系列,我会和你分享测试人员应该具备的代码级测试基础知识,为你呈现一幅包括代码级测试技术入门、方法论、用例设计,以及覆盖率衡量、典型难点、解决思路的全景技术视图。
为了能更好地协助开发人员做好代码级测试,所以我今天的这次分享是根据实际工程项目中的实践,总结了五种常见的代码错误,以及对应的四大类代码级测试方法。
掌握了这些错误类型、测试方法,相信你就可以搞定代码级测试了,即使自己不用去完成测试工作,也可以让开发人员对你另眼相看,可以更高效地互相配合完成整个项目。
这里需要注意的是,代码级测试的测试方法一定是一套测试方法的集合,而不是一个测试方法。 因为单靠一种测试方法不可能发现所有潜在的错误,一定是一种方法解决一部分或者一类问题,然后综合运用多种方法解决全部问题。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件测试52讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(13)

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

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

    2018-08-25
    6
  • sylan215
    1.代码级测试应该算一个比较大的话题了,有专门的公司做这种静态代码检查工具的,一套好贵的说,对于测试来说,不管是人工还是自动,如果能把这五种常见错误发现了,已经很厉害了;

    2.目前的五种错误类型确实是最基本最常见的了,这也是我们测试用例设计时需要优先关注的点,如果针对专门做代码级测试的来说,需要覆盖的类型要更多,也更加具体,通用一点的比如:定义宏时应使用括号括住宏的每个参数、禁止使用不检查缓冲区长度的字符串函数、所有的循环必须有异常情况下的跳出条件等等;

    3.不太清楚其他公司的单元测试开展情况如何,就我个人来看,我觉得「自动静态方法」的推广和效果,应该是优于其他方法的,因为通用性更好,部署后也可以针对每次编译的项目做自动检测,唯一的问题就是检查点的覆盖度和误报率的问题。人工动态方法如果让开发开展,推进难道比较大,让测试开展,技术难度比较大,这是一个长期投入的问题,又需要兼顾投入产出比。

    以上,欢迎沟通交流,公众号「sylan215」

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

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

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

    2018-08-24
    1
    4
  • 口水窝
    开发和测试必须要有共同的利益,且都把这个利益放在第一位的时候,才能共进一致的去努力。比如,开发和测试把保证产品质量放在第一位,那么就会协同起来比较好,要是连这个意识都没有,恐怕只能有无穷无尽的撕逼过程。
    2019-04-23
    2
  • 颜瑞
    Sonar代码扫描除了有特征点的错误类型外,目前还有安全扫描,也是代码级别的,属于“无特征”类型?
    2018-10-24
    2
  • 口水窝
    以前的公司,还听说过代码走查,代码评审的。现在的公司,都没做,都是依赖测试人员太多。只能说测试和开发依赖太大,自己的代码不太负责,都是想着反正有人测,我完成我的开发任务就好。
    2019-04-23
    1
    1
  • 小老鼠
    常见代码错误类型
        有特征
            第一,语法特征错误
            第二,边界行为特征错误
            第三,经验特征错误
        无特征
            第四,算法错误
            第五,部分算法错误

    测试方法
        人工静态方法
        自动静态方法
        人工动态方法
        自动动态方法
    2018-11-07
    1
  • 威廉姆
    分类清晰,条理清楚,写的不错

    作者回复: 感谢支持👍

    2018-08-25
    1
  • 有态度的笨小孩
    1、我们公司采用的是,一个开发写好的功能,会有其他两位开发进行代码的review,且review通过后,才能提交到测试人员这里进行测试(也分业务线,因为有的业务线代码review,仅仅是流于形式)。

    2、测试人员拿到被测软件的时候,准备好了测试用例或者测试的检查点。然后基于用例的分析,重点关注核心代码逻辑的Diff查看,如果有遗漏的部分,适时补充测试用例。

    3、代码执行的过程中,通过代码覆盖率工具(Java语言的 jacoco, PHP 语言的php-code-coverage),进行一些覆盖率统计,当测试用例执行完成后,查看代码覆盖率报告,是否有遗漏的分支或函数没有调用,评估风险,是否需要进行覆盖。

    4、我认为,测试人员要尽可能熟悉开发语言(语法)比如主流的后端语言(PHP、Java),iOS的(OC或者swift), 前端的(HTML、CSS、JS(VUE))等,可以帮助我们更好更快的进行代码Diff,还可以很好地跟开发人员沟通~
    2019-04-08
  • 楚耳
    老师,文中提到的基于代码自动生成边界测试用例并执行 这个是怎么做的,用开源工具还是自己开发的工具

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

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

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

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

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

    2018-09-02
  • 涅槃Ls
    打卡25

    作者回复: 感谢支持

    2018-08-31
收起评论
13
返回
顶部