第6章云计算、大数据的软件测试方法
云计算和大数据是当前最热门的话题和技术,IT时代也将逐步转入到DT时代。这是个历史性的转变,同时对从事软件测试行业的人来说也是一个巨大的挑战。如何测试大数据产品和云端软件产品呢?由于云计算与大数据的测试仍在研究中,这里只简单介绍基于云和大数据产品应该如何测试以及应注意的事项。本章的内容共分以下4部分。
- 对大数据软件产品进行测试的方法。
- 云测试中应注意的13个问题。
- 云计算的优缺点。古人云:知己知彼,百战不殆。只有了解了云计算的优缺点,才能更好地测试云端的软件产品。
- 对云端软件测试产品的文档、环境、数据如何进行管理。
关于大数据的知识,请参见参考文献【32】;关于云计算的知识,请参见本篇附录C。
6.1 如何对大数据软件产品进行软件测试
6.1.1 前言
本节仅考虑大数据产品的系统以及验收阶段的测试,不考虑单元及集成阶段的测试。
6.1.2 新产品的软件测试
案例6-1:小象网
小像网是专门从事儿童用品的网上超市,随着大数据的普及,小象网决定推出一个新功能:根据登录用户的历史购物情况以及购买同类产品用户的购物情况,对单一用户进行定向产品推荐。这个功能的实现无疑需要用到大数据的技术,但是,黑盒软件测试工程师无需了解开发工程师是如何实现的,只需考虑:对这个用户推荐的产品是否合理。比如,这个用户家里有个男孩,经常在小象网上买一些男孩类的产品,而网站推荐的产品是一条裙子,这显然是不合适的。
这里采用基于场景的测试法(对于场景的设计方法,参见本篇第3.2节“基于场景的测试”)进行测试,可以设计以下几个用户场景:
(1)顾客小王曾经为他的宝宝购买10个汽车模型玩具,其他产品从来没有购买过。现在网站添加一款新的汽车模型玩具,测试该产品是否推荐给顾客小王。
(2)顾客小张在小象网上曾经购买过一条连衣裙,而购买这条连衣裙的其他4名顾客还购买了芭比娃娃玩具。当顾客小张再次登录小象网时,测试该网站是否也给她推荐了芭比娃娃玩具。
(3)然后逐步增加难度。比如,顾客小李在小象网上为她的小公主购买衣服、玩具、幼儿食品3类产品;顾客小张和顾客小李在网上购买的产品类型差不多。检查系统能否把小张和小李归为一类人群,即把小张购买的一些产品介绍给小李;并把小李购买的一些产品介绍给小张。
(4)最后逐步增加用户以及产品的数量设计更复杂的测试用例。
(5)当产品的数量与客户的数量达到一定数量级别后,可以把系统放在真实环境下进行软件测试,用户数据来自于正式的用户环境,但是这时在页面上的接口不要放开,在真实数据环境下进行测试,这时可能还会发现一些软件缺陷。
(6)当通过以上5个测试步骤后,认为产品可以正式上线了。这时正式打开这个功能,同时给用户提供一个使用该功能的反馈渠道,从而使得用户在实际使用过程中遇到的一些问题,可以通过反馈渠道反馈。
6.1.3 老产品的升级测试
大数据产品往往有两种部署场景:
(1)系统输出数据放在本地,而云端仅用来计算、存储log等信息。
(2)所有工作都在云端进行,输出数据也放在云端。
首先来看情形1。
步骤一,我们首先在云端部署一套新的系统,然后把输入的数据源同时引入新的系统和旧的系统中。运行一段时间后,比较新旧两套系统的差异。
步骤二,如果测试步骤一的场景没有问题,仍旧把新系统的输出数据放入云端,先把20%的输入信息流引入到新系统中,80%的数据引入到旧系统。没有问题再逐步把40%的新数据引入到新系统中(注意,更换前要把之前旧系统中的数据先导入到新系统中)。测试没有问题后再逐步增加到60%、80%,一直逐步增加到100%,在此过程中如果发现问题,应及时进行修复甚至回退。
步骤三,如果100%的信息在新系统中运行没有问题,就把云端输出数据迁移到本地。停止旧系统运行,启动新系统(迁移前,注意对旧系统进行备份,一旦迁移出问题,可以立即恢复回来)。
情形2与情形1基本类似,但是没有步骤三。在情形2步骤一中,除了可以检查新旧产品在功能上的差异外,还可以检测性能上的差异。
顾翔凡言:
不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。