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

36 | 浅谈测试数据的痛点

思考题
综合运用On-the-fly和Out-of-box
测试数据创建的时机
准备测试数据的痛点
测试数据的痛点及解决方法

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

你好,我是茹炳晟。今天我和你分享的主题是:浅谈测试数据的痛点。
在上一篇文章中,我和你分享了创建测试数据的四大类方法,即基于 GUI 操作生成测试数据、通过 API 调用生成测试数据、通过数据库操作生成测试数据,以及综合运用 API 和数据库的方式生成测试数据。
但是,我并没有谈到应该在什么时机创建这些测试数据。比如,是在测试用例中实时创建测试数据,还是在准备测试环境时一下子准备好所有的测试数据呢。
其实,在不同的时机创建测试数据,就是为了解决准备测试数据的不同痛点。那么,准备测试数据的痛点,都体现在哪些方面呢?
在测试用例执行过程中,创建所需的数据往往会耗时较长,从而使得测试用例执行的时间变长;
在测试执行之前,先批量生成所有需要用到的测试数据,就有可能出现在测试用例执行时,这些事先创建好的数据已经被修改而无法正常使用了的情况;
在微服务架构下,测试环境本身的不稳定,也会阻碍测试数据的顺利创建。
那么,今天我们就先来聊聊与测试数据创建时机相关的话题。
从测试数据创建的时机来看,主要分为 On-the-fly(实时创建)和 Out-of-box(事先创建测试数据)两类方法。这两类方法都有各自的优缺点,以及适用的最佳场景。而且在工程实践中,我们往往会综合使用这两种方法。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

测试数据准备在软件测试中是至关重要的环节,但也存在一些痛点。本文介绍了测试数据准备的两种方法:On-the-fly(实时创建)和Out-of-box(事先创建测试数据)。在实时创建测试数据的过程中,可能会耗费较长时间,存在复杂的关联性和微服务架构的挑战。而事先创建测试数据则可能导致“脏”数据的问题。为了解决这些问题,文章提出了一些解决方案,包括优化流程、控制数据使用和跨测试用例的测试数据维护等。 综合运用On-the-fly和Out-of-box方法可以充分利用它们的优点,并规避各自的缺点。在实际的测试项目中,根据测试数据的特性,可以将其分为“死水数据”和“活水数据”,并采用相应的方式进行创建和维护。通过综合运用这两种方法,可以以互补的方式解决测试数据准备的痛点,如测试数据准备耗时、存在“脏”数据的可能性以及测试环境不稳定造成的测试数据无法创建等问题。 总的来说,本文通过详细讨论了测试数据准备的痛点和解决方法,为读者提供了对测试数据管理的深入了解,尤其是在面对复杂软件架构和高频发布的互联网企业时,提供了有益的建议。读者可以从中了解到不同测试数据准备方法的优缺点,以及如何根据数据特性选择合适的方式进行创建和维护,从而提高测试效率和数据可靠性。

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

全部留言(21)

  • 最新
  • 精选
  • 年轻人的瞎折腾^.
    一般都是两者相结合,由于是分布式架构,都会从各种微服务获取数据,。

    作者回复: 嗯嗯,要取决于业务本身是如何设计的

    2019-01-09
    1
  • 蓝山
    我有一楼同样的困惑,听了大体思路,但无从下手。希望老师能举具体实例说明。

    作者回复: 最先可以下手的部分就是先开始封装自己的测试数据准备函数,函数内部可以用api也可以用数据库,或者两者的结合

    2018-10-09
    1
  • better me
    老师我有个小困惑😯,从第一课到现在,我总有一种思路打开,但是无从下手的感觉,于是我思考了一下,有个小小建议,希望老师讲解的时候理论加业务场景/真实代码实现等具体实践相结合,比如讲到ui自动化框架,可以有几个小demo我能跟着去操作的,这样更有利于我们的吸收和掌握,然后举一反三得去运用到工作中去,不知大家有没有这种感觉。😨
    2018-09-20
    3
    63
  • sylan215
    1.《软件测试的艺术》艺术中提出的「软件测试的原则」中的第一条就是「测试用例中一个必需部分是对预期输入或结果的定义」,测试数据就是预期输入了吧。 2.对于服务端这种公用的数据,建议统一提前准备,就是茹老师说的 Out-of-box 方法,但是对于客户端数据,因为每个人执行的环境不一样,有些环境就是实时准备的,所以建议是 On-the-fly 的方式,这地方可以优化效率的地方是,可以提供一键准备/恢复测试数据的脚本,尽可能减少因为环境/数据准备造成的时间浪费。 3.茹老师提到的脏数据的问题确实很关键,现在我们进行 bug 定位,都会进行环境检查,就是为了确认测试数据准备的正确性,也确实发现,经常有一些 bug 只是数据/环境准备不当造成的。 4.目前我们都是建议使用脚本一键配置/恢复环境/测试数据,执行用例前先恢复再配置,以保证不会被脏数据影响执行结果。 以上,欢迎沟通交流,公众号「sylan215」
    2018-09-19
    7
  • Hunter
    还有一点是避免用例运行是引入脏数据,有时候需要注意恢复环境。比如一个用例创建了一个用户,下次再运行创建用户的用例时,就会因为名称重复报错。
    2018-10-12
    4
  • 捷后愚生
    接触了一些新的概念: On-the-fly 方法 Out-of-box方法 死水数据 活水数据 有收获!
    2020-08-01
    3
  • TJJ
    老师能不能举一些更详细的例子,比如电商模块,哪些适合插数据库,哪些要调接口造
    2018-09-19
    3
  • Robert小七
    我们的数据都是手工创建
    2018-09-19
    2
  • 金子般的心
    这一讲内容在前面章节已有所涉及,以为这一讲会拿出具体案例,有些问题只讲原理如隔靴搔痒
    2021-08-19
    1
  • 口水窝
    一般在做单接口测试时会采用On-the-fly模式,采用压力测试时会采用Out-of-box方式收集数据。进行线上预发布的时候,使用的是线上的真实数据,只是跟生产环境地址不同而已。
    2019-05-13
    1
    1
收起评论
显示
设置
留言
21
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部