从功能测试角度谈大数据测试

大数据,已经成为了一个时代的代名词,当今的互联网属于大数据时代,大数据时代的到来,颠覆了以往对数据的惯性思考方式,要保证数据执行,软件质量,测试质量,数据使用场景等,都须要从新变换一个新的角度,对软件进行更全方面的思考。sql


 以前大数据不多有测试,开发会以为:测试环境又没有那么多数据,你怎么测?抛开大数据的数据量大的特色,究其根本,他也是为业务服务的,有一句话我很是赞同: 一切技术都是为业务服务,脱离业务的技术一文不值,这句话在大数据时代的今天,依然适用,而且会一直适用下去。测试的工做就是要保证数据的正确性,业务逻辑正确。大数据脚本也有输入、输出,这有点相似与功能测试中的后台逻辑测试,没有界面,一切都是后台服务器处理的,测试人员必需要清楚整个处理流程,每一个数据的流转,每一个步骤的输入和输出,才能判断最后的输出结果是否正确,对于大数据测试也是同样,咱们要清楚每一个脚本的功能,每一个脚本的输入和输出,总体数据流转过程,来判断大数据实现的功能是否正确。数据库


一个数据脚本或者一段数据计算逻辑,在大数据下运行正确的前提,必须是其功能是正确的,这也是咱们测试人员首先要保证的,今天我想从功能测试的角度,讨论大数据的功能测试要怎么作,用例怎么设计,才能覆盖面更广,更好的保证其正确性。服务器


  一、编写测试用例ide

功能测试编写测试用例的经常使用方法:等价类、边界值(这两个方法估计作测试的都知道),一样适用于大数据测试编写用例,与一般意义上的功能测试不一样的是,他的输入再也不是一个输入框,而是一个数据库字段或者一个有特殊意义的数据集(包含多个数据)。工具


咱们先回顾一下等价类和边界值两种经常使用的功能测试设计用例的方法。首先划分等价类:是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的表明值就等于对这一类其它值的测试.所以,能够把所有输入数据合理划分为若干等价类,在每个等价类中取一个数据做为测试的输入条件,就能够用少许表明性的测试数据.取得较好的测试结果.边界值是对等价类的补充,其测试用例来自于每一个等价类用例的边界。oop


那么这两种方法如何用在大数据测试用例的编写上呢?学习


拿咱们以前测试的一个大数据脚本举例,脚本的主要功能是统计某家店铺某一天的订单量,根据设置的每一个商品不一样的返利规则,计算店铺天天的利润。测试


首先输入分析条件:大数据

一、指定店铺 spa

二、指定某一天

三、不一样时间,不一样的商品,不一样的返点

商品1:2016.12.6  13:00:00------2016.12.6  15:00:00 返利为5%

商品2:2016.12.7  00:00:00------2016.12.7  23:59:59  返利为15%

全部商品,除指定时间外, 返利均为1%

他的等价类再也不是一个输入,而是一个条件,知足这个条件的咱们划到有效等价类上,不知足这个条件的,咱们划分到无效等价类上,而在条件边界上的数据则是咱们的边界值。

用例划分结果:

QQ截图20171213120901.png 

其余编写功能测试用例的方法,如场景分析法、分支覆盖法,也一样能够用在编写大数据测试用例中,任何测试都不能脱离实际业务,单纯的测试数据,或者单纯的测试输入,没什么意义,咱们必须结合不一样的场景,设计更全面、更有效率的测试用例。


二、准备测试数据

根据编写的测试用例,准备不一样类型的测试数据,这个也与功能测试同样,测试数据不在数量的多少,而在于覆盖的全面性,若是你准备了几千条数据,可是数据类型都同样,覆盖的代码分支也都是一条,那这些数据只有一条能称之为有效测试数据,其余的所有是无效测试数据。

其中准备测试数据,能够有几种方法:

1)本身写sql单条插入  

2)使用存储过程 

3)从线上导导出数据,直接导入到测试环境。

同时要注意,准备测试数据时,尽可能和实际数据保持一致,如时间的值,精确到时分秒仍是只到年月日,还有金额保留几位小数等。


三、执行测试脚本,检查测试结果

准备好测试数据后,就能够执行测试脚本,脚本多是在hadoop平台上,也多是在其余平台上,但这些都只是一个操做,相似咱们学习一个工具怎么使用,知道怎么运行脚本后,接下来的工做就又回归到测试上来,这时候测试人员要作的事情就是利用准备好的数据,执行脚本,检查预期结果和实际结果是否一致,判断脚本逻辑是否正确,这彻底是咱们功能测试的工做如出一辙。


因此,无论什么类型的测试,其测试过程都是通用的,测试方法都是可借鉴的,咱们储备了足够多的测试基础和测试方法,就能够轻松应对各类不一样的测试。

QQ截图20171031083313.png

相关文章
相关标签/搜索