前言
本文仅考虑大数据产品的系统以及验收阶段的测试,而不考虑单元及集成阶段的测试,我认为大数据产品在单元及集成阶段的测试应该与普通产品的测试没有多大区别。
案例
本文以该案例作为讨论对象:小象网是专门从事儿童用品的网上超市,随着大数据的普及,小象网决定在**内推出一个新功能:即根据某人的历史购物情况以及购买同类产品人的购物情况,对单一用户进行定向产品推荐。这个功能的实现无疑需要用到大数据的技术,但是作为一门黑盒测试工程师,我们无需了解开发人员是如何用什么技术实现的,而我们只需要考虑的问题是:对这个客户推荐的产品是否合理。比如这个用户家里有个男孩,经常在小象网上买一些男孩类的产品,而你推荐的产品而是一条裙子,这显而易见是不合适的。
对产品刚下线时的测试:
这个时候我们需要基于场景简单的设计一些测试用例,进行测试,比如:
1.顾客王斌曾经为他的宝宝购买十个汽车模型玩具,其他产品从来没有购买过。现在添加一条新的汽车模型玩具产品,测试是否可以推荐给了顾客王斌;
2.顾客李湘在大象网上曾经购买了一条连衣裙给她的宝贝女儿,而购买这条连衣裙的其他4名顾客还给他们家公主购买了芭比娃娃玩具。当顾客李湘再次登录大象网,看看我们是否给李湘推荐了芭比娃娃玩具。
3.然后我们可以逐步增加难度,比如顾客李悦在大象网上为她公主购买衣服,玩具,幼儿食品三类产品;顾客张蕾和顾客李悦在网上购买的产品类型差不多。检查系统能否把张蕾和李悦归为一类人群,即把张蕾购买的一些产品介绍给李悦;而把李悦购买的一些产品介绍给张蕾。
4.最后我们逐步增加用户以及产品的数量来,设计更加复杂的测试用例,在这里希望大家自己考虑。
5.当产品的数量与客户的数量达到一定的数量级别,我们可以把系统放在正式环境下进行测试(当然需要用到云),用户数据来自于正式的用户环境,但是这时在页面上的接口不要放开,在正式环境下来进行测试,这个时候我们可能会发现一些软件缺陷。
6.当我们通过以上5步,认为产品可以正式上线了,通过网页上打开这个功能。给用户提供一个使用该功能的反馈渠道,用户在实际使用过程中使用会遇到一写问题,通过反馈渠道反馈给我们,我们客户以及时修复。
对升级产品进行测试:
大数据产品往往有两种部署场景:
1)处理出来的数据放在本地,而云端仅仅用来计算,存储log等信息;
2)所有处理都在云端进行处理,处理出来的数据也放在云端
首先让我们来看看情形
1)如何来进行测试和版本更新。
步骤一,这种情况我们首先在云端部署一套新的系统,然后把输入数据源同时引入新的系统与老的系统。运行一段时间后比较新旧两套系统的差异,新系统应该优于老系统;若更仔细些我们可以比对新老数据库中的数据情况。
步骤二,如果我们测试步骤一的场景没有问题,我们仍旧把新系统的数据放入云端,先把20%的输入信息流引入到新系统中,80%的数据引入到老系统;没有问题再逐步把40%的新数据引入到新系统中(注意引入之前要把测试20%数据引入到新系统时候的80%引入到老系统中的数据先引入到新系统中);测试没有问题再逐步增加到60%,80%,一直逐步增加到100%的数据引入到新系统,在此过程中如果发现问题及时修复。