blackseven 发表于 2010-5-7 17:56:55

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

tiankong912 发表于 2010-5-9 16:49:43

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

dennyqiang 发表于 2010-5-10 10:16:11

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

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

liaoxj 发表于 2010-5-10 13:22:22

大量数据的构建,在我测试中一般应用在性能测试和报表功能测试中。构建数据我们重点考考虑“量”(数据多少)还是“质”(量多的同时,又考虑复杂的逻辑关系)

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

changyi_lfx 发表于 2010-5-10 15:25:31

同意楼上分为量和质的处理方式。

changyi_lfx 发表于 2010-5-10 15:35:31

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

mcfnhm 发表于 2010-5-10 16:14:24

应自动化工具 写脚本

liuchunyanli 发表于 2010-5-11 11:29:02

这个问题没营养

dlh2002 发表于 2010-6-25 16:13:32

别YY了,居然用sql去做,估计大家都没做过吧,在大型的系统这个是行不通的,最简单最有效的方法是用API,:lol,

steven_xia 发表于 2010-6-25 17:09:38

学习了:)
页: 1 [2]
查看完整版本: 如何构建大量的测试数据?(10-04-26)(获奖名单已公布)