关于大数据量测试的瞎想

上一篇 / 下一篇  2012-01-04 11:24:28 / 个人分类:测试方法

互联网行业,尤其是像淘宝这样的平台网站,时常会遇到大数据量的测试,也就是说海量的输入数据和海量的输出数据。为了保证数据的多样性以及正确性,我们往往希望利用线上的数据进行测试以达到更高的覆盖率。这时就遇到了一个问题,如何测试海量数据的输出呢?手工计算肯定是不可能的,而让测试写一个一模一样的算法成本高,质量也不一定能保证。

除了传统的设计测试用例的方法以外,这里列出四个方法供大家讨论,如有不对的地方希望指正。

第一,抽样。

我这里所说的抽样不是找出几个数据来算出他的输出,而是找一种或两种情况来看。当我们规定了特定的规则以后,程序判断就变的简单、易行了,这样可能通过一个很简单的程序,甚至是sql就可以解决问题。我瞎编一个例子吧,比如我们要在年终的时候给客户予以积分的反馈,那么根据等级以及购买的东西不同我们可以给予不同的积分。我们可以找一种情况写程序进行测试,例如vip3购买彩票超过500块钱的有3000积分。那么我们只要在大数据中找出这些数据,然后再看看系统算出的积分是否为3000,用户数是否正确就可以了。

第二,代码覆盖归类。

这个办法其实基于分类的思想,也就是根据数据对于代码执行路径的不同进行分类,这样无限的数据最终变为有限的情况,然后在每个类型中选取一个数据进行验证。覆盖的维度可以根据时间的充裕程度进行选择,如果时间很多可以考虑路径覆盖,如果有限责可以考虑branch coverage。

第三,Metamorphic Testing。

首先简单介绍一下metamorphic testing,这个方法的思想很简单,当一个点很难测试的时候可以换一个角度,利用一种或者多种的蜕变关系进行测试。我继续用刚刚那个例子瞎编,对于一个返积分的活动,我们很容易可以想到,当用户购买的金额增加了,那么他所获得的积分也会随之增加。我们可以改变输入的数值,也就是通过增加减少购买的金额的方式,来比较两次结果的趋势。我们也把两个数值作为一个蜕变关系。

第四,两份代码验证。

这个方法是成本最高的一个方法,也就是让两组开发做同样的功能,然后比较两组数据的一致性。但是这个方法有个很大的缺点,两组开发很可能会有同样的错误。


TAG:

 

评分:0

我来说两句

flint1985

flint1985

淘宝北京研发中心测试开发工程师,北京软件测试沙龙组织者,曾在UOW进行回归测试算法的研究。现在主要负责功能测试、接口测试以及结合业务的测试工具开发。

日历

« 2024-05-10  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 3186
  • 日志数: 5
  • 建立时间: 2011-12-30
  • 更新时间: 2012-02-22

RSS订阅

Open Toolbar