51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

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

[复制链接]

该用户从未签到

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

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



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

使用道具 举报

该用户从未签到

30#
发表于 2010-6-25 17:09:38 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2010-6-25 16:13:32 | 只看该作者
别YY了,居然用sql去做,估计大家都没做过吧,在大型的系统这个是行不通的,最简单最有效的方法是用API,
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2010-5-11 11:29:02 | 只看该作者
这个问题没营养
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2010-5-10 16:14:24 | 只看该作者
应自动化工具 写脚本
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2010-5-10 15:35:31 | 只看该作者
首先根据系统特点,区分被测程序到底是需要“量”的数据或是“质”的数据,从而策划不同书数据填充处理方式,
如果是做行业软件,每个行业都有一些特殊之处,要注意搜集并汇总,这样干满几年,不管是什么数据,对你来说都是很轻松的事情。所以要注意搜集和整理。
1、量:
   如果当前数据只是对量要求,那么就可以使用sql、程序、某些软件自动生成批量的书记即可;
2、质:
   需要根据行业特点,当前系统数据库结构、系统用户提出的特殊要求模拟出易测、易发现问题的数据。
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2010-5-10 15:25:31 | 只看该作者
同意楼上分为量和质的处理方式。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2016-4-26 13:27
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    24#
    发表于 2010-5-10 13:22:22 | 只看该作者
    大量数据的构建,在我测试中一般应用在性能测试和报表功能测试中。构建数据我们重点考考虑“量”(数据多少)还是“质”(量多的同时,又考虑复杂的逻辑关系)

    如果考虑以量为主可以使用一工具(datafactory,QTP,lr)和存诸过程
    如果考虑质与量并重,有两种方法:
        最好可以获取实际项目(客户)的正式数据。但是往往又会碰到版本问题,那这必须版本进行改造,如表结构不一致。客户的数据是sql,现在是oralce那么进行相应的转换。
        如果没有或者没法获取实际项目(客户)的正式数据,那么使用工具时参数化时,要详细考虑表之间的关系以及业务关系,如果表的主外键,业务逻辑状态,数据值正常值,跨月,跨年情况,已达到近似(客户)的正式数据。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23#
    发表于 2010-5-10 10:16:11 | 只看该作者
    大家都提到使用sql是比较灵活的,这一点实在难以认同。如果直接使用SQL语句产生数据(数据生成工具,程序级SQL,存储过程等)是没有办法完成业务逻辑的处理的,这样产生出来的数据是没有太多实用价值的,最多只能充量,而不具有测试性。

    好的方法当然还是写代码,只不过不是SQL代码,而是(业务逻辑+多线程),我们产生数据的代码必须要实现业务逻辑,商业流程,多线程当然只是为了生成时速度更快,不是这里主要考虑的。而怎么样可以完全按照业务逻辑来生成数据呢,有两种方法:如果熟悉软件开发的代码或者API,直接调用封装好的API实现。或者使用诸如LoadRunner一类的性能测试工具从客户端的角度开发测试脚本,以此产生大量数据,这样产生出来的数据才是正确的数据,才有质量。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22#
    发表于 2010-5-9 16:49:43 | 只看该作者
    生成测试数据的方法无外乎编写sql脚本(存储过程)在数据库端直接生成、编写程序代码生成(实际上也是要写sql)、使用批量数据生成工具(DataFactory、PL/SQL Developer、TOAD等都可以)、使用工具录制业务参数化之后长时间运行来生成(如4楼的仁兄所说)。不过个人觉得使用sql来做是最灵活的,尤其是涉及到业务数据相互转换需要充分考虑到内部处理逻辑及约束时。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
    发表于 2010-5-7 17:56:55 | 只看该作者
    其实在项目测试时,如果涉及到了大数据量的测试,一般情况下,直接从客户那里获得客户的原始数据肯定是第一选择.但一般的时候客户那里可能并没有原始数据.所以我们就需要自己创造大数据量数据.创造的方法其实无外乎楼上诸位提到过的SQL脚本,程序代码,造数工具等.大数量造数的难度其实在于我们创造的数据与客户实际的数据的存在较大的差距,从而造成测试结果的偏差.
        如果创造和客户实际数据尽可能符合的数据呢,其实可以分析客户的或者实际的能够获得的部分数据.我们在分析时,主要是分析在我们要造的数据中哪些值或者列是关键的,是必须正确的或者符合一定的要求的,哪些是必须随机的,哪些是必须等于固定值的,哪些是必填的,而哪些是完全可以由我们自由创造的.而这些信息的获得一部分是从客户那边获得,一部分要靠我们对测试软件业务的了解和经验的积累.所以造数简单,但是造出符合实际,符合测试要求的数难.
        其实在分析过后,我们会发现许多的数时有规律的或者是固定的,有些我们根本不需要去管的,从而能够减少我们的工作量.
        以上拙见,请各位批评
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

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

    瞬联,中软

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]测试排长

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

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


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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-6 11:23 , Processed in 0.085418 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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