互联网的发展催生了大数据行业的诞生和发展。大数据平台和大数据应用成为了各家排兵布阵的重要之地。那么,从测试的视角来看,大数据平台和应用的测试,我们应该关注哪些点呢?
换个姿势看问题。今天我们从问题域的角度来聊一聊。
什么是问题域?
指的是问题的范文,问题之间存在的关系和可能逻辑空间。
比如,在测试过程中我们面临的“xx接口是否正常?”这样的问题,我们可以将它归纳到某个与之有关的问题域中(比如功能测试)。
在我们测试的时候,经常会先入为主的提出:功能测试、性能测试、压力测试等等分类。然后在对应的测试类型中设置问题,观察软件或系统的反应,从而解决我们的问题,并依据我们的期望判定问题答案的正确性和优异性。
举例说明
现在,让我们逆向思维:开始脑洞
——提出问题——然后规划问题域。
01
开始脑洞
在开始本文的主要内容之前,我们先看一个,下图1是百度搜索主页面,我们先来脑洞一些问题吧。
图1百度搜索主页
02
提出问题
1、“我搜索‘周杰伦’会是什么结果?能不能帮我找到周杰伦的电话号码?”
2、“我想什么都不输入,能不能点击搜索按钮?”
3、“我点击相机图标会是什么结果?如果我拍一朵不认识的野花,能帮我找到它的名字吗?”
4、“这个推荐是我想喜欢的吗?”
5、“热搜是实时的吗?”
6、“怎么看上海的天气?”
7、“语音播报正不正常?”
8、“我要是输入一大堆乱码或无意义的文字,是什么结果?”
......
还有没有其他问题?我想答案是肯定的。那么,我们来分分类,找找所属的问题域。
03
规划问题域
明显,如果我们从传统的测试分类来看,1-8都可以归纳到功能性测试与验证上。但是,从大数据平台和应用的角度出发(百度搜索能算的上一款大数据应用,我想大家应该认同吧),还有其他的问题域划分。
比如:
1、数据提取验证;
2、数据更新的实时性测试;
3、算法效果验证;
4、响应及时性;
5、算法稳定性;
6、数据转换和传输验证;
7、数据加载和显示验证;
以及其他问题域。
为什么要如此划分?因为有两个方面原因:
一是从平台和应用的角度出发;
二是从大数据本身特点出发。
大数据应用(比如淘宝)除了我们认知的基础大数据平台之外,还涉及一定的算法推荐(比如猜你喜欢)。所以我们不仅要考虑平台,还要考虑应用本身。
那么,我们再进一步划分下大数据平台和应用测试的问题域。大数据平台主要是为上层应用提供支撑,例如:数据采集、数据提取、数据转换等功能。因此,我们可以将:
1、6、7归到平台问题域;
将2、3、4、5、归类到大数据应用域。
我们主要简单讲讲,对于这些问题域,我们需要关注的一些重点问题。
大数据平台问题域
01
数据提取验证
大数据平台的数据来源可以有、音频、文字等等,所以在各个渠道入口,我们需要验证数据提取的正确性和高效性。
举个例子:淘宝平台的搜索框功能测试,我们需要验证文字检索、检索等等方式。
02
数据转换和传输验证
因为数据来源的多样性,我们还需要关注数据在转换和传输过程中的正确性。
举个例子:试想一下,淘宝软件是如何将转换成数据进行搜索的?
03
数据加载和显示验证
所有的系统或软件,最终都要以一种“合适”的方式展示给用户。这是一项基本能力,也是一项基本测试项。
举个例子:浏览淘宝页面时,页面布局和大小,是否与你的手机尺寸相适应?是否清晰?
大数据应用问题域
01
数据更新的实时性测试
对于大数据应用来说,数据的实时性更新非常重要,是一个测试的要点。因为数据是不断产生的,而应用需要及时地将数据经过处理呈现出来。
举个例子:当你在淘宝搜索你想要的物品时,替换关键字搜索,结果是否实时更新?或者,你在头条等平台发表文章,成功后是否能够被及时搜索到?
02
算法效果验证
这个问题,相比应该很好理解。所谓算法效果验证,值得就是针对大数据应用的一些检索算法、计算模型等方法的验证。
举个例子:如何验证头条的限流算法?从应用层来说,发表一篇包含违禁关键词的文章,看看是否被限流或者不能公开发表?
03
响应及时性
响应及时性在常规系统或软件中也是一个常测试的功能。通俗来讲,可以理解为效率性测试。对于大数据应用来说,响应及时性尤为重要。因为大数据应用本身的数据量特定,及时响应成为了一个业务难题和重要的命题。
举个例子:在双11大促活动中,试试搜索某个商品,是否及时显示?抢单是否成功?
04
算法稳定性
算法稳定性其实可以和算法效果验证并站一排。一个是功能验证,一个算是性能验证。稳定性测试需要长久的时间积累和验证,或者在不同环境下测试。
举个例子:双11大促活动时,商品推荐算法是否稳定?广告推荐算法受众是否符合规则?
总结
我们经常是从测试问题分类然后细分测试问题,但是有时候,我们不妨换个角度,先列举出许多问题,然后划分问题域,最后再从问题域拓展出相关领域。
也许,这可能会成为一个启发点,你说呢?
最后:
可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试持续集成、测试架构开发测试框架、性能测试等。
这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!