• 0
  • 0
分享

  其实大部分类型的测试都需要去准备测试数据。

  ·手工测试:一些基础数据,比如配置数据等等是需要去准备的;

  · 自动化测试:基础需要准备,现有数据,动态运行时产生的数据是需要准备的;

  · 性能测试:跟自动化测试差不多。

  这里就牵扯到了一些关于数据的概念了。

  测试数据的分类

  我们可以给测试数据分一些种类:

  · 基础数据,比如一些内容管理系统会配置站点的标题,友情链接之类的基础配置数据;

  · 存量数据,也就是现有数据。比如在测试一些电商站点的时候会提前插入一些商品信息,类目信息物流信息等;

  · 动态数据,也可以叫做session数据。比如在测试电商站点的发布商品功能的时候,往往会去创建一些新的商品。

  我们可以想象到,基础数据其实可以比较容易的跟生产环境保持一致。测试环境的存量数据会比线上环境要少,测试环境的动态数据可能不会像线上环境那样真实。

  这里就需要讨论测试数据的量级和真实性的问题了。

  测试数据的量级

  大部分情况下,测试数据的量级是没有产生环境多的。所以测试数据可以是真实数据的子集。

  如果有类生产环境或预发布环境的话,可以尽量保持跟线上数据相当的量级。这样一些测试环境不好测出来的由于数据量导致的问题可以在预发布环境测出来。

  测试数据的真实性

  我们测试环境的数据往往跟真实用户产生的数据是有差异的。比如测试论坛系统时,我们在帖子里的贴图可能往往就那么几张,尺寸也是恰到好处,而线上用户的贴图可能是五花八门,从而导致意想不到的问题。

  如何准备基础和存量数据

  基础和存量数据与线上环境越一致,测试中发现问题的概率可能就越高。一般来说,可以有下面的策略:

  · 全量+脱敏策略。直接定期把线上的数据做脱敏,导入到测试环境。这里脱敏是必选,数据泄漏导致的问题严重程度往往比普通的线上bug要严重得多。

  · 定量+脱敏策略。只上一些线上数据,比如只在线上拉1000个商品,1000个用户信息,然后做脱敏。这里技术实现难度会比较高,毕竟要把关联表理顺。

  · 爬虫策略。如果是新项目/产品的话,线上没有存量数据可以导,那么可能要去友商那里爬一些数据,导到测环境做测试。比如做一个旅游站点,开始的时候是没有用户的游记的,这时候就要去类似站点爬一点来测试了。

  · 生成动态数据。如果线上没有数据,友商也没有的爬,那么就要人肉或者自动化的方式去产生一些数据了。系统简单的话可以用sql去跑,复杂点的话可能要调用接口或者用自动化的方式去生成。实在没辙的时候也可以手动去造一些数据。

  关于动态数据

  大家在做自动化或者接口测试后往往会大量的去产生动态数据。那么问题就来了。

  这些数据存在哪里?什么意思呢?如果我们需要用自动化的方式去创建一个商品,那么商品的信息,图片地址该放在哪里呢?其实这是个持久化的问题了。

  · 放文件里。文件格式有很多可以选的,比如xml/csv/json/yaml等。不过不推荐excel,毕竟是私有格式,没有太强的扩展性。而且excel一升级,你的解析代码和库也可能要跟着改一次,嗯,强烈不推荐了。

  · 放数据库里。爬一些商品的信息存到数据库里,然后读数据库也是很好的办法,还能熟悉一下sql的用法,面试经常问到,另外可以用数据库的事务机制来清理测试数据

  · 在代码里动态生成。比如动态随机生成用户的姓名啊性别和年龄之类的

  · 数据生成之后就面临着一个清理的问题。清理问题实际上数据生命周期的问题,测试数据应该有下面一些生命周期吧

  · 短期数据。用例完了就删掉的数据,一般线上做性能测试的数据都是这样的短期数据

  · 长期数据。用例跑出来的数据放在那里也没事,可以一直存在。这种数据太多有时候会影响测试环境的性能

  自动化测试跑出的数据建议做短期数据,跑出来想办法清掉,因为自动化跑的频率其实可以很高,每次都产生一堆数据的话数据的量级可能会在短期变得很大,对测试环境的性能造成影响。

  以上的一些看法是个人的浅显的粗鄙的看法,肯定有很多不成熟的地方,欢迎大家斧正。


作者:软件测试狂阿沐    

来源:http://www.51testing.com/html/79/n-4481079.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   前言  新手在做写代码的时候容易卡壳,尤其当接触的函数以及其他知识比较多的时候,经常会看完需求之后不知道自己该用什么方法来实现它,实现的逻辑可能你有,但怎么该用什么函数给忘了,这其实就是知识的储备不够,你记不住哪个函数有什么作用,自然一头雾水。  这几天我专门整理了Python常用的一些函数,从最基础的输入输出函数到正则等12个板块的,总共100多个常用函数,方便小伙伴们进行快速地记忆,每天快速过一遍,用的时候再加深一下,慢慢地你就会摆脱写代码卡壳的状况。  虽说自学编程的时候我们强调更多的东西是理解和实际去敲代码,但有些东西你是要必须牢记的,否则你写代码将寸步难行。老手当然已经烂记于心,...
            0 0 701
            分享
          •   实战案例  「Q:微博发动态,设计一下测试点」  虽说是发动态,但是测试时不能只是关注发动态这一操作的功能,发完动态之后,我们要确保动态要对外可见(对关注的人可见),单单测试发动态这个操作,实际上意义是不大的,毕竟只测发动态,不能实现测试闭环。  所以测试用例一定要把整个使用流程的case都要涉及到,避免漏测。  「Q:对一台自动售货机进行测试用例设计」  「Q:设计微信发红包测试用例」  「Q:设计抖音直播功能测试用例」  除了下图列举的一些测试点之外,还需要考虑 后台 的测试,譬如:审核后台、监控平台、数据中台 等等   「Q:微信红包是先计算每个人能获得的钱还是当这个人点了再计算。」...
            1 0 4513
            分享
          • 外观测试:屏幕显示不能有花屏、黑点和闪屏,清晰度、亮度、颜色要正常。检测所有按键都能起到相应作用,是否手感不良。UI显示状态、颜色、清晰度、效果。控制:放大,缩小,音量调节功能测试:交叉路口查询测试,点击交叉路口查询后能正确输入城市名称吗关键字查询:点击关键字查询后搜索道路能正确的输入城市名称和关键字进行道路查询吗语音提示方面具有很好的测试表现,提示音语速适中,吐字清晰,结合实际行车路线对比提示是否准确地图的缩放,旋转和浏览:在地图区域内的任意位置应有可放大或缩小的功能,放大或缩小的最大或最小比例。在地图的各个缩放等级下,标记文本和图标的大小应保持不变。显示地图时,应既可以北向上,也可以车头向...
            0 0 3548
            分享
          • 今天主要谈谈职场感悟,在职场跟在家或者与朋友亲人相处还是很不一样的,在职场上,可能会有各色各样的人,大家在一起共事是为了完成一个共同的目标。可能私下里有人的行为让你很看不惯或者很不理解,但是做好自己的事情,与同事配合好才是最重要的,减少对他人的评判。测试岗位的门槛可能相对较低,于是从事这个工作的人也就是五花八门的,并且每个人性格都大相径庭,那我身边遇到的人和事来展开说说:我们公司来了两个00后测试实习生,打扮的很新潮,对于他们的一些举动我还是很不能融入的,比如吃饭的时候特别喜欢拿鬼畜的视频下饭,我就觉得挺魔怔的。再比如,他们追星,是那种很多中年人不理解养成式的追星,或者开盲盒。我虽然能理解,但...
            5 5 6246
            分享
          •   有一份51Testing测试行业调查问卷需要您的助力,差不多三分钟的时间即可填完。我们给您准备了一份价值398元的测试课程作为礼品,感谢您的帮忙~链接:http://vote.51testing.com/  最近,我与微软的高级软件工程师KlausHemstitch进行了交谈。过去7年里,Klaus Hemstitch一直在微软的Office 365团队工作。每天他的团队要确保所有的网络组件能在每个主流浏览器上正常工作。我很想知道在构建可扩展且有益的自动化测试时,他们如何解决那些困难的任务。  · 您在微软工作多久了?以前在哪里工作?  我从2013年开始在微软工作,之前在奥多比(Adob...
            0 0 900
            分享
      • 51testing软件测试圈微信