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

27 | 深入浅出之动态测试方法

你好,我是茹炳晟,今天我和你分享的主题是:深入浅出之动态测试方法。
相较于,静态测试方法是不需要实际执行代码去发现潜在代码错误的方法,我今天要和你讨论的动态测试方法,则是要通过实际执行代码去发现潜在代码错误的测试方法。
正如我在分享《不破不立:掌握代码级测试的基本理念与方法》这个主题时,将动态测试方法进一步划分为人工动态方法和自动动态方法,今天这次关于动态测试方法的分享,我也会从这两个方面展开。
由于自动动态方法并不能理解代码逻辑,所以仅仅被用于发现异常、崩溃和超时这类“有特征”的错误,而对于代码逻辑功能的测试,主要还是要依靠人工动态方法。

人工动态方法

人工动态方法,可以真正检测代码的业务逻辑功能,其关注点是“什么样的输入,执行了什么代码,产生了什么样的输出”,主要用于发现算法错误和部分算法错误,是最主要的代码级测试手段。
从人工动态方法的定义中,你可以很清楚地看出:代码级测试的人工动态测试方法,其实就是单元测试所采用的方法。所以,下面的分享,我会从单元测试方法的角度展开。
如果有一些代码基础,那么你在学习单元测试框架或者工具时,会感觉单元测试很简单啊,一点都不难:无非就是用驱动代码去调用被测函数,并根据代码的功能逻辑选择必要的输入数据的组合,然后验证执行被测函数后得到的结果是否符合预期。 但是,一旦要在实际项目中开展单元测试时,你会发现有很多实际的问题需要解决。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件测试 52 讲》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(12)

  • 最新
  • 精选
  • llyl
    如果是遇到程序要等很久才有响应的事件,比如定时100小时后发生会什么,那这个时间要怎么处理呢?测试的话不应该要等这么久的时间吧?

    作者回复: 很长时间一般是调用了后台的异步处理操作,这种情况可以考虑用mock解决,即先只验证是否后台创建了必要的job,而且相关的参数传递是否都正确,其次单独的用例在验证job实现的正确性

    2
    3
  • 年轻人的瞎折腾^.
    感觉有点抽象,可能要多看几遍。另外打桩这种是需要开发弄好还是需要测试处理?

    作者回复: 这里讲的基本都是需要开发来做的测试

    1
  • Jecy-8
    除了mock还有其他好的方法吗?期待老师指点

    作者回复: 本质上就是mock了,但是mock的种类繁多,有些会提供很多特有的功能

    1
  • sylan215
    1.单元测试大部分还是需要开发做,如果测试做,那么测试人员的技术要求就比较高了; 2.可以折中的考虑是,测试提供单测需要覆盖的测试点,开发来保证测试的结果; 3.如果测试人员做单元测试,那么就需要开通代码权限,可一些公司的代码管理很严格,推动可能会比较困难,当然,如果一直有这个传统的倒还好; 4.茹老师提到的几个困难大部分是技术实现上面的,个人觉得策略制定上也有不少困难,比如之前提到的如何确定单元测试的范围(颗粒度),就是哪些代码需要做哪些不需要,这个直接影响了后续实际实施的难度,如果定的范围不好,有可能会出现所测函数的内部逻辑全部被 Mock 函数替代的情况。 以上,欢迎沟通交流,公众号「sylan215」
    23
  • 小老鼠
    1,如果输入参数或数出参数是一个集合类、哈希类甚至是一个自定义类,作单元测试就复杂了。 2,若输出是个随机变量如何作单元测试,比如一个随机函数的单元测试。 3,为什么讲了那么多代码级的测试用例,不介绍语句、条件、分支、条件分支、AC/DC、路径覆盖这些概念?
    1
    5
  • 五花肉
    生成测试用例的代码模板看不懂呀~百度也搜到是什么含义 int =@a@;
    1
    2
  • 口水窝
    感觉看理论都能看懂,但是没有实践,自己说也说不出所以然,所以还是要实践,转化为自己的想法。
    2
  • 捷后愚生
    这篇文章的信息量很大! 现在所在项目单元测试做不得不好,执行得不到位,学习完这篇文章之后,我想单元测试输入参数的复杂性是其中原因之一,所在单位是银行对公信贷系统,开发对信贷业务不理解,加上信贷系统对接各种外围系统,开发不了解数据流生成与走向,不少时候就做不了单元测试,或者只能做一小部分。 mock的种类繁多,老师能详细讲一下吗?觉得mock至少可以写一篇文章。 文章提到了嵌入式系统测试,没有接触过,期待老师写文章介绍一下。
    1
  • 李丹
    老师,听了这章内容,受益颇深。有一点不明白希望指教。单元测试在面对方法重构时,内部调用的全局变量或者其他测试用例输入数据实现变化时,我们的单元测试用例是否也必须针对方法内部实现变化而变化?
    1
  • 付晓杰
    单元测试中三个最主要的难点: 1.单元测试用例“输入参数”的复杂性; 2.单元测试用例“预期输出”的复杂性; 3.关联依赖的代码不可用。
    归属地:上海
收起评论
显示
设置
留言
12
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部