• 0
  • 0
分享
  • 大数据时代,软件测试人如何应对挑战?——软件测试圈
  • 曼倩诙谐 2023-08-21 16:31:37 字数 2162 阅读 859 收藏 0

  互联网的发展催生了大数据行业的诞生和发展。大数据平台和大数据应用成为了各家排兵布阵的重要之地。那么,从测试的视角来看,大数据平台和应用的测试,我们应该关注哪些点呢?

  换个姿势看问题。今天我们从问题域的角度来聊一聊。

  什么是问题域?

  指的是问题的范文,问题之间存在的关系和可能逻辑空间。

  比如,在测试过程中我们面临的“xx接口是否正常?”这样的问题,我们可以将它归纳到某个与之有关的问题域中(比如功能测试)。

  在我们测试的时候,经常会先入为主的提出:功能测试、性能测试、压力测试等等分类。然后在对应的测试类型中设置问题,观察软件或系统的反应,从而解决我们的问题,并依据我们的期望判定问题答案的正确性和优异性。

  举例说明

  现在,让我们逆向思维:开始脑洞

  ——提出问题——然后规划问题域。

  01

  开始脑洞

  在开始本文的主要内容之前,我们先看一个,下图1是百度搜索主页面,我们先来脑洞一些问题吧。

1.png

图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大促活动时,商品推荐算法是否稳定?广告推荐算法受众是否符合规则?

  总结

  我们经常是从测试问题分类然后细分测试问题,但是有时候,我们不妨换个角度,先列举出许多问题,然后划分问题域,最后再从问题域拓展出相关领域。

  也许,这可能会成为一个启发点,你说呢?


作者:刘晓佳Rachel    

来源:http://www.51testing.com/html/99/n-7797299.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 通常我们在谈论性能测试的时候,往往将性能测试分为压力测试和负载测试两大类去讨论,在设计性能测试方案和执行性能测试过程的时候,也是基于这两个角度去思考。在传统意义上,通过这两个手段去评估某个系统的性能表现已经很完美了。但是随着大数据互联网、移动互联网等新兴概念的兴起,传统的性能测试概念、方法已经无法全面的引导我们开展性能测试工作。比如移动端的兴起与广泛应用,移动端的性能也是性能测试的范围;再比如如何评估系统扩展性、弹性性能表现相关的容量测试,也要我们去关注。因为公司最近做服务端容量的相关工作,因此我们就性能测试,容量评估两个角度去重新定义性能测试的工作范围和职责。1、性能测试性能测试的最终目的是...
            0 0 6058
            分享
          •   (一)什么是敏捷测试  首先敏捷测试(Agile testing)是测试的一种,敏捷测试的理念是,和编码一样,测试是开发的一个关键部分。在敏捷中,测试被直接集成到软件开发过程中,以便尽早、频繁地发现bug。因此,测试人员可以在开发过程的每一个节点上发现问题,从而使产品快速走向发布。  (二)敏捷测试的特点  敏捷测试的特点有以下几点:  1) 高度迭代  2) 有周期性  3) 重点关注持续迭代地测试新开发的功能  4) 测试介入的时间特别早。  5) 强调从客户的角度,即从使用系统的用户角度,来测试系统。  (三)传统的瀑布模型  传统测试即基于瀑布模型开发的测试,瀑布模型将软件生命周期...
            0 0 579
            分享
          • 手机相机的测试内容 ,从立项到后期维护期间的测试内容需要多方讨论和打磨,根据项目实际情况安排评测和测试阶段。比如:画质客观评价体系,各个专项测试的方法和评测标准;安排正岗和外包人员工作内容分配,LOG分析培训;功能,性能,稳定性,画质调试测试如何执行并不断优化相机测试用例;需求梳理维护,需求变更的跟进。最重要的,是参与制定手机相机相关测试范围和标准,提供测试意见,和研发深度合作,回顾和拓展用例。后期维护,手机相机用户反馈报告的收集等。测试人员需要有相机硬件和软件的测试经验,才能执行用例,即便是外包同学。尤其外场拍片,没有经验或者经验很少,很容易拍出废片,宝贵的时间和项目的进度不能耽误。本文只叙...
            1 3 3566
            分享
          • 自2018年被评选为编程语言以来,Python在各大排行榜上一直都是名列前茅。目前,它在Tiobe指数中排名第三个,仅次于Java和C。随着该编程语言的广泛使用,基于Python的自动化测试框架也应运而生,且不断发展与丰富。因此,开发与测试人员在为手头的项目选择测试框架时,需要考虑许多方面的因素,其中包括:框架的脚本质量,测试用例的简单性,以及运行模块可能存在的技术弱点。为了避免出现“选择困难症”,我在此为大家准备了五种Python类型的自动化测试框架,以供比较和讨论。1.Robot Framework作为最重要的Python测试框架之一,Robot Framework主要被用在测试驱动(te...
            12 12 2846
            分享
          • 冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。如图所示:代码实现如下:def buddle_sort(l): n=len(l) #把计算长度写到遍历外,可以避免每次都重新计算 for i in range(n-1): #从第一个遍历到倒数第二个 for i in r...
            0 0 1109
            分享
      • 51testing软件测试圈微信