51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 16794|回复: 30
打印 上一主题 下一主题

如何构建大量的测试数据?(10-04-26)(获奖名单已公布)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-4-26 17:42:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在测试中我们经常需要大量的历史数据或者测试用的数据来验证系统能否正确的执行,少量的数据我们可以通过手工来实现,但是如果我们需要构建大量的(几年的历史数据)测试数据,应该如何处理呢?

如果你也有问题想提出来和大家一起讨论,请点击此处>>
说不定下期讨论的问题就是由你提出的哦,请快快参与吧!



获奖名单
奖项
获奖名单
奖励
答案链接
二等奖
shwonder
300论坛积分
16#
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-4-26 19:03:27 | 只看该作者

这个应该看情况而讨论吧

如果在数据库里面,可以写存储过程吧,循环插入数据
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-4-26 19:25:59 | 只看该作者
写脚本,用自动化实现了。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    4#
    发表于 2010-4-26 21:47:47 | 只看该作者
    方式有很多种,例如:
    1、直接使用SQL语句插入
    2、使用程序批量插入
    3、使用数据生成工具直接生成(如datafactory等)
    4、使用压力测试脚本生成(如LR脚本等)

    当然最快的应该来说还是使用数据生成工具了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-4-27 09:55:24 | 只看该作者
    个人觉得用自动化脚本生成,例如做性能测试,录制LR脚本
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2010-4-27 13:23:34 | 只看该作者
    之前自己也问过这个问题,无非就是楼上说的办法了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2010-4-27 16:50:45 | 只看该作者
    顶下了,关注。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2010-4-28 13:22:28 | 只看该作者
    学习!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2010-4-28 15:30:33 | 只看该作者

    测试数据构建

    1、测试数据分析:根据实际的测试需要,对测试数据进行分类。
    区分正常测试用例数据和异常测试用例数据,并以此将测试数据的各项组成划分,并根据实际情况对各测试项数据进行组合。(数据项等价类划分)

    2、测试数据样例:根据实际的测试数据分析,构建所要的测试数据样例。
    所构建的测试数据样例可以作为功能测试所需的测试数据。
    构建测试数据样例时需要重点考虑测试数据的格式组成(数据库、XML、文本等)

    3、生成大量测试数据
    根据测试数据样例和测试数据格式要求,通过技术手段生成指定数量的测试数据。
    存储过程是针对数据库生成大批量测试数据最好的方法。
    文本格式或XML格式的数据文件,可以使用现成的工具或是自己编写工具来实现。

    [ 本帖最后由 rolei 于 2010-4-30 14:38 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2010-4-29 10:33:27 | 只看该作者

    构建有效的测试数据

    首先,分析测试数据的需求.每个测试环节对测试数据的需求.需要什么类型的数据,需要多少数量级的数据,哪些环节需要非正常数据.

    其次,收集以往开发同类项目的历史数据情报,对其分析,确定是否适合本次测试的需求.或自己根据测试数据需求建立测试数据摸版.

    最后,测试数据的实现.向数据库导入数据或生成需求的数据类.生成方式手工或自动化生成都有.用哪种方式实现都可以.无论是脚本文件或数据库作为数据的存储源都可以互相对导数据,很方便就能实现.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2010-4-29 10:56:52 | 只看该作者
    根据需要,使用相应工具都可以实现的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2010-4-29 14:16:07 | 只看该作者
    #9
    说的非常的全面
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2010-4-29 14:16:26 | 只看该作者
    顶chimera
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-3-3 10:21
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    14#
    发表于 2010-4-29 14:35:47 | 只看该作者
    原帖由 maxwell12 于 2010-4-29 10:33 发表
    首先,分析测试数据的需求.每个测试环节对测试数据的需求.需要什么类型的数据,需要多少数量级的数据,哪些环节需要非正常数据.

    其次,收集以往开发同类项目的历史数据情报,对其分析,确定是否适合本次测试的需求.或自 ...


    支持这位仁兄的观点。 应该先分析需要什么类型的测试数据,确定需求,再选择工具
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-5-1 23:51:11 | 只看该作者
    既然提到这个话题,就一定有构建大量测试数据的需求——我们团队常把这一类测试叫做“大数据量测试”。从过去的项目情况来看,我们仅有大概20%项目需要这做方面的测试,且侧重于产品。扯远了。
           开篇说到,构造海量数据来验证系统是否能正确执行。怎样才算正确的执行呢?定义一个清晰的、可测量的标准很重要。在进行大数据量测试之前,首先对测试需求做清晰的分析。我们一般很少从功能评价的角度进行这项测试,更多的时候是考查系统性能和效率。假设一个本科院校的学籍管理系统,主要是用来管理学生的,学生在系统中的生命周期一般是4年,根据学校现有的在校生数以及未来五年每年的招生数据,基本上可以分析出需要构造的各个学年下的学生数。这样一来,原来在单个学期能正确执行的功能(功能、性能、效率都满足需求,这个需求可以作为大数据量测试时的参考标准),在处理4个学年的数据(8个学期)时,各个业务的功能、服务器性能、业务执行效率(如查询、统计、数据挖掘等)还能满足需求吗?根据业务特点,数据在系统中总是有一个相对确定的生命周期的,我们需要构造的往往是这些全生命周期的数据,注意不同的业务模块生成的数据量是不一样的。没有必要去构造不符合实际情况,数量级过大的测试数据。
           对测试需求做了准确清晰的分析之后,接下来对输入的测试数据进行分析。一方面,我们要求测试数据要尽可能的与生产环境数据一致,尽可能是有意义的数据,可以通过分析使用现有系统的数据或根据业务特点构造数据。另一方面,我们要求测试数据输入要满足输入限制规则,尽可能覆盖到满足规则的不同类型的数据。我们遇到最多的还是在数据库中构造的测试数据,也包括磁盘文件(附件)。
           最后一步就是生成测试数据了。生成测试数据的方法无外乎编写sql脚本(存储过程)在数据库端直接生成、编写程序代码生成(实际上也是要写sql)、使用批量数据生成工具(DataFactory、PL/SQL Developer、TOAD等都可以)、使用工具录制业务参数化之后长时间运行来生成(如4楼的仁兄所说)。不过个人觉得使用sql来做是最灵活的,尤其是涉及到业务数据相互转换需要充分考虑到内部处理逻辑及约束时。
           补充一点,大数据量测试同时也是检测服务器性能的好时机(例如执行数据转换、统计分析的业务过程),包括磁盘的I/O性能、内存、CPU等,甚至也是对数据增长预测的一个验证。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2010-5-5 16:18:05 | 只看该作者
    我们一般是把线上的数据导出来,再导入到测试库中
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2010-5-6 10:30:23 | 只看该作者
    要先分析一下业务,明确哪里需要进行大数据量的测试。比如哪里的数据量增长快,哪里的数据操作频繁。
    然后选取最容易造成压力的数据输入。一般采用SQL就可以了,如果有相互关联,最好调用存储过程。要更接近真实情况的话,就是采用模拟程序,模拟大量用户进行操作。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2010-5-7 13:46:15 | 只看该作者

    瞬联,中软

    借大哥一席之地,我想问个问题,瞬联跟中软哪个更好的,让我过去都是做手机测试的,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2010-5-7 14:11:17 | 只看该作者
    关注下。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2010-5-7 14:11:30 | 只看该作者
    关注下。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 02:53 , Processed in 0.083180 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表