`
yh_private
  • 浏览: 38853 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
社区版块
存档分类
最新评论

我们到底要怎样才能保持测试数据不变。

阅读更多
一. 数据不稳定,我们能否使用不稳定的数据来写测试?
由于我们的测试环境是基于开发数据库,所以数据经常有变化,尤其是统计功能,基本不能对其进行测试。
办法一:我们使用Spring-mock提供的事物来解决测试过程中出现的脏数据以及解决测试过程中会改变数据库状态。
问题一:由于使用Spring-mock在做测试的时候需要准备大量数据,比如对一个查询进行测试,这个查询关联两张表,就会出现如下场景:
对这两张表进行准备数据,new 出很多VO,将关联信息写在VO中,然后调用不同DAO进行持久,之后测试目标代码,如果得到相同结果测试通过。
这样需要在onSetUp方法中写很多VO的初始化代码。并且很多统计涉及的表并不止两张。造成初始化的工作量很大,导致大家不喜欢写测试。

方法二:就使用现有数据+Spring-mock。这样我们在插入、修改、删除操作时使用Spring_mock,统计或者查询的时候使用数据库中现有数据。
问题二:由于使用开发数据库中的现有数据进行测试,导致开发数据库中数据一旦更变就会出现测试跑不通的情况。程序员又要回来修改以前的测试代码,而且是因为数据库中数据变化导致错误。很影响程序员写测试的积极性。导致大家又不写测试了。

方法三:使用DBunit和Spring-mock进行测试。DBunit负责保证测试时数据不变,Spring-mock提供事物处理。
问题三:由于DBunit在团队中普及度并不是很高,如果使用需要培训。而且需要程序员自己去维护XML,虽然提供了导出的接口和方法,但维护起来相对比较麻烦,而且在进行单元测试时需要插入的数据太多,导致测试效率低下(一张表的单表维护大概要3倍以上的时间)。总之属于很耗费资源而且成本偏高。并且一但表结构改动,相关的测试数据需要重新维护一次。

方法四:使用TestDB+Spring_mock,TestDB保证本身数据不变化。培训成本为0。
问题四:如果使用TestDB来测试,如果表结构改变,就需要同步开发数据库以及测试数据库。如果进行了同步,相关的数据也会变化。导致测试失败。




以上是在我们测试的时候所遇到的一些问题,不知道大家都是如何解决测试数据不变问题的。简单总结过后发现自己心情好多,希望大家可以提供一些意见和方法。我们都是为了写出健壮的代码,正确的行为,获得重构的勇气。
加油!!!
分享到:
评论
3 楼 yh_private 2008-07-31  
郁闷,竟没人理偶,难道大家在做测试的时候都不会遇到上述问题?还是偶的问题太简单了呢?谁给冒个泡????
2 楼 yh_private 2008-07-29  
gigix 写道
yh_private 写道
方法四:使用TestDB+Spring_mock,TestDB保证本身数据不变化。培训成本为0。
问题四:如果使用TestDB来测试,如果表结构改变,就需要同步开发数据库以及测试数据库。如果进行了同步,相关的数据也会变化。导致测试失败。

其实看看Rails怎么做的就已经很明白了。


对于克隆数据库,JAVA方面可以使用DBunit。可是怎么解决表结构变化的呢?还是需要有人去维护。如果初始化数据比较多那初始化数据的代价比较高,通常是很花费时间。对于开发者一个测试要跑上20几秒是什么心情呢。
但主要还是没有办法应对变化。
对Rails的测试理解很肤浅,回去补课 
1 楼 gigix 2008-07-29  
yh_private 写道
方法四:使用TestDB+Spring_mock,TestDB保证本身数据不变化。培训成本为0。
问题四:如果使用TestDB来测试,如果表结构改变,就需要同步开发数据库以及测试数据库。如果进行了同步,相关的数据也会变化。导致测试失败。

其实看看Rails怎么做的就已经很明白了。

相关推荐

    PTA【L1-6 不变初心数】

    8. **测试用例**:在编写代码解决“不变初心数”问题后,需要编写适当的测试用例来验证代码的正确性,确保在各种输入情况下都能得到预期结果。 通过理解和分析题目,我们可以构建出合适的解决方案,同时锻炼我们的...

    HU7个图像不变矩的计算

    本主题聚焦于MATLAB环境下如何计算图像的七个Hu不变矩,并结合了实际的测试数据和图片进行深入探讨。 首先,我们需要理解什么是不变矩。图像矩是基于图像像素强度的加权和,它提供了一种量化图像形状的方式。而不变...

    S7-200 SMART PLC中如何设置掉电保持性存储区?.docx

    这个节点是用来设定哪些存储区在电源循环后应该保持其数据不变。 在“保持范围”中,你可以选择希望在上电后保留的存储区类型,包括V(变量存储区)、M(位存储区)、T(定时器)和C(计数器)。对于定时器,只能...

    不变矩特征提取

    这种技术的核心思想是通过计算图像的几何特性,使其在经过平移、旋转或缩放等几何变换后仍能保持不变,从而实现对图像的稳健描述。 不变矩在数学上可以表示为图像像素灰度的加权积分,这些权重通常是图像坐标的一种...

    第1章 树状数组 测试数据.rar

    在《信息学奥赛一本通(提高篇)》中,提供的测试数据很可能是为了检验读者是否能正确理解和实现树状数组的功能。这些测试数据可能包含各种不同的区间查询和更新问题,以及不同大小和分布的数组,以全面考察选手的编程...

    不变矩VC代码实现:提取实验图像的离散不变矩

    不变矩包括中心矩和规范化矩,它们在平移、缩放或旋转等几何变换下保持不变,如赫维赛德矩、闵可夫斯基矩等。这些矩提供了图像形状的紧凑描述,可以用于识别形状相似的物体。在这个项目中,离散不变矩是通过对图像...

    基于MATLAB的不变矩特征提取

    "两张测试图片"分别是一张原始图像和一张经过旋转的图像,用于验证提取的特征是否能够在图像旋转后仍然保持不变性。 不变矩主要包括经典的Hu不变矩,由七种不同的矩组成,它们是对图像形状的一种高级抽象,可以表示...

    产生Excel不变随机数.rar

    然而,这个函数在每次打开或计算工作簿时都会更新其结果,导致随机数会改变,这可能不适用于需要保持数据不变的情况。 为了创建不变的随机数,我们可以利用Excel的INDIRECT函数结合RANDBETWEEN。INDIRECT函数能够将...

    采样保持器 原理、设计、LF398

    当采样信号为低电平时,开关断开,电容上的电压被保持,使得即使输入信号变化,输出仍能保持在采样时刻的值,直至下一次采样。 二、采样保持器特性 1. 采样精度:采样保持器的精度取决于保持电容的大小和负载条件,...

    基于Hu不变矩的图像检索系统matlab实现版本

    基于Hu不变矩的图像检索系统是利用数学形态学的一种方法来提取图像特征,这种方法具有对图像平移、旋转和缩放的不变性,从而在不同条件下能有效地比较和识别图像。本文将详细介绍如何在MATLAB环境中实现这一系统。 ...

    S7-200 SMART PLC如何组态保持型存储区?.docx

    组态保持型存储区是指在 S7-200 SMART PLC 中的一种存储区域,该区域的数据可以在断电后保持不变。这种存储区域可以用于保存重要的数据,以便在断电后可以快速恢复系统。 组态保持型存储区的设置 -----------------...

    Mallat算法及C语言实现(包含测试数据及结果)

    这种方法在保持信号突变的同时,能较好地去除低幅度噪声。 - **硬阈值化**:若小波系数的绝对值小于阈值,则直接置为0,大于阈值则不变。这种方法处理后信号可能会出现阶梯状失真。 4. **重构**:将经过阈值处理的...

    接口Http测试工具

    测试此接口时,要确保更新的部分数据能正确生效,而未提及的其他数据保持不变。 "Http接口测试工具"简化了这个过程,使得开发者和测试人员无需编写代码就能便捷地执行这些测试。通过工具,我们可以设置各种请求参数...

    PCD数据集,用于变化检测任务

    特征提取如SIFT(Scale-Invariant Feature Transform)和SURF(Speeded Up Robust Features)帮助识别图像中的不变特征,即使在光照、角度或尺度变化下也能保持稳定。差异图像分析通过比较两图像间的像素差异来定位...

    软件测试网络文章集合

    应有一个良好的工作计划,对测试用例及测试的数据要有做良好规划,使测试有章可循,我认为软件测试就是在受控制的条件下对系 统或应用程序进行操作并评价操作的结果。 软件测试是整个软件开发过程中一段非常重要的...

    数据库单元测试总结~~单元测试

    1. **模拟数据**:创建特定的测试数据集,确保测试环境与真实环境一致,同时避免影响生产数据。 2. **事务管理**:在测试开始时开启事务,测试结束后回滚,保持数据库状态不变。 3. **断言**:用于验证测试结果是否...

    基于不变矩特征和RBF神经网络的图像识别.pdf

    实验结果显示,即使图像经过平移、缩放或旋转,基于不变矩特征和RBF神经网络的识别算法也能保持较高的识别正确率,通常在90%以上。 这种方法在图像识别领域具有广泛的应用,如目标检测、车牌识别、医学图像分析等。...

    电信设备-基于骨架信息的时不变及视不变的人体行为识别方法.zip

    本文档“基于骨架信息的时不变及视不变的人体行为识别方法”探讨了如何利用电信设备处理和分析人体骨架数据,实现对各种行为的准确识别,即使在不同的视角或时间变化下也能保持稳定性能。 首先,我们要理解“骨架...

    InfoMask数据管理与漂白一体机介绍.pptx

    InfoMask的漂白技术主要是对敏感数据进行变形,使其无法直接关联到个人或企业,如姓名、身份证号、电话等,同时保持数据的格式、类型、长度等特性不变,以确保数据的可用性。这一过程不影响数据间的关系,如账户间的...

Global site tag (gtag.js) - Google Analytics