软件测试52讲
茹炳晟
eBay中国研发中心,测试基础架构技术主管
立即订阅
13425 人已学习
课程目录
已完结 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讲
登录|注册

36 | 浅谈测试数据的痛点

茹炳晟 2018-09-19
你好,我是茹炳晟。今天我和你分享的主题是:浅谈测试数据的痛点。
在上一篇文章中,我和你分享了创建测试数据的四大类方法,即基于 GUI 操作生成测试数据、通过 API 调用生成测试数据、通过数据库操作生成测试数据,以及综合运用 API 和数据库的方式生成测试数据。
但是,我并没有谈到应该在什么时机创建这些测试数据。比如,是在测试用例中实时创建测试数据,还是在准备测试环境时一下子准备好所有的测试数据呢。
其实,在不同的时机创建测试数据,就是为了解决准备测试数据的不同痛点。那么,准备测试数据的痛点,都体现在哪些方面呢?
在测试用例执行过程中,创建所需的数据往往会耗时较长,从而使得测试用例执行的时间变长;
在测试执行之前,先批量生成所有需要用到的测试数据,就有可能出现在测试用例执行时,这些事先创建好的数据已经被修改而无法正常使用了的情况;
在微服务架构下,测试环境本身的不稳定,也会阻碍测试数据的顺利创建。
那么,今天我们就先来聊聊与测试数据创建时机相关的话题。
从测试数据创建的时机来看,主要分为 On-the-fly(实时创建)和 Out-of-box(事先创建测试数据)两类方法。这两类方法都有各自的优缺点,以及适用的最佳场景。而且在工程实践中,我们往往会综合使用这两种方法。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件测试52讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(14)

  • better me
    老师我有个小困惑😯,从第一课到现在,我总有一种思路打开,但是无从下手的感觉,于是我思考了一下,有个小小建议,希望老师讲解的时候理论加业务场景/真实代码实现等具体实践相结合,比如讲到ui自动化框架,可以有几个小demo我能跟着去操作的,这样更有利于我们的吸收和掌握,然后举一反三得去运用到工作中去,不知大家有没有这种感觉。😨
    2018-09-20
    26
  • sylan215
    1.《软件测试的艺术》艺术中提出的「软件测试的原则」中的第一条就是「测试用例中一个必需部分是对预期输入或结果的定义」,测试数据就是预期输入了吧。

    2.对于服务端这种公用的数据,建议统一提前准备,就是茹老师说的 Out-of-box 方法,但是对于客户端数据,因为每个人执行的环境不一样,有些环境就是实时准备的,所以建议是 On-the-fly 的方式,这地方可以优化效率的地方是,可以提供一键准备/恢复测试数据的脚本,尽可能减少因为环境/数据准备造成的时间浪费。

    3.茹老师提到的脏数据的问题确实很关键,现在我们进行 bug 定位,都会进行环境检查,就是为了确认测试数据准备的正确性,也确实发现,经常有一些 bug 只是数据/环境准备不当造成的。

    4.目前我们都是建议使用脚本一键配置/恢复环境/测试数据,执行用例前先恢复再配置,以保证不会被脏数据影响执行结果。

    以上,欢迎沟通交流,公众号「sylan215」
    2018-09-19
    3
  • Hunter
    还有一点是避免用例运行是引入脏数据,有时候需要注意恢复环境。比如一个用例创建了一个用户,下次再运行创建用户的用例时,就会因为名称重复报错。
    2018-10-12
    2
  • 口水窝
    一般在做单接口测试时会采用On-the-fly模式,采用压力测试时会采用Out-of-box方式收集数据。进行线上预发布的时候,使用的是线上的真实数据,只是跟生产环境地址不同而已。
    2019-05-13
  • 年轻人的瞎折腾^.
    一般都是两者相结合,由于是分布式架构,都会从各种微服务获取数据,。

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

    2019-01-09
  • 静静张
    我们针对服务端的接口测试需要活水数据,用例执行前构造数据,执行后清除数据。
    尽可能保证用例之间互不影响,同时避免脏数据的产生。
    前提是我们的规模小,哈哈
    2018-11-18
  • 小老鼠
    测试环境一定要独立开发环境与运行环境
    2018-11-07
  • 小老鼠
    可不可以每次执行前先用Out-of-box创建数据,然后再执行测试用例。在Teardown 中消除脏数据。但是在测试过程中发生异常,执行不了teardown方法,产生脏数据。如何办。
    2018-11-07
    1
  • 胖虫子
    数据这个最麻烦
    2018-11-02
  • 希涛
    老师,在执行自动化测试的时候,肯定会生成很多测试数据,对于线上环境来讲,这些都是测试数据,一般怎么处理
    2018-10-13
  • 蓝山
    我有一楼同样的困惑,听了大体思路,但无从下手。希望老师能举具体实例说明。

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

    2018-10-09
  • TJJ
    老师能不能举一些更详细的例子,比如电商模块,哪些适合插数据库,哪些要调接口造
    2018-09-19
  • Robert小七
    我们的数据都是手工创建
    2018-09-19
  • 青木
    老师能不能讲下大数据,机器学习这种效果评测的内容
    2018-09-19
收起评论
14
返回
顶部