• 13
  • 14
分享
  • 如何在敏捷测试过程中设计交叉测试流程——软件测试圈
  • 曼倩诙谐 2020-12-28 13:09:11 字数 1807 阅读 3084 收藏 14

  一、何为敏捷测试

  敏捷测试,是指接纳了敏捷的核心价值观(沟通,简单,反馈,勇气,尊重),在敏捷软件开发过程中开展的测试。敏捷测试是一种符合敏捷宣言思想,遵守敏捷开发原则,在敏捷开发环境下能够很好地和其整体开发流程融合的一系列的测试实践。敏捷测试和传统测试区别如下表所示:

表1敏捷测试与传统测试区别

1.png


  二、敏捷测试过程中的测试活动有哪些

  敏捷测试要求“测试人员”参与整个敏捷开发过程,并且在迭代周期内遍历整个测试准备——预测试——功能测试——回归测试过程。敏捷测试强调测试启动“越早越好”、“测试与开发并行”,在开发人员进行方案设计时,“测试人员”同步进行测试方法设计;开发人员进行功能开发时,“测试人员”进行测试用例编写;开发人员代码提交后,“测试人员”进行功能验证,并上报故障;开发人员完成故障修复后,“测试人员”进行回归测试。如下图1所示:

2.png


图1迭代内的敏捷测试活动

  三、敏捷测试实践的必由之路——分层测试

  分层测试顾名思义就是分多个层次,由下而上一个层次一个层次的测试,常见的分层测试有单元测试、集成测试和验收测试。在敏捷测试中,为了快速迭代、快速验收地目标,分层测试是不容忽视地选择。

  将单元就是人为规定的最小的被测功能模块,单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。单元测试有利于开发人员提高编码质量,避免出现低级问题。

  集成测试是单元测试地扩展,在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。集成测试有助于发现多个单元模块联动后地故障。

  验收测试是部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试的任务,是验证软件的功能和性能符如同用户的期待。

  四、敏捷测试分层的改进——交叉测试

  01、什么是交叉测试

  顾名思义,交叉测试即交换测试。比如原来A同学负责a模块,B同学负责b模块;那么在一轮测试之后,A同学负责b模块测试,B同学负责a模块测试。

  02、交叉测试的意义

  在软件测试过程中,每个项目一般由多名测试人员组成,每个测试人员分别负责不同模块的测试,并对同一个模块进行多轮测试。经过多轮反复测试,测试人员对自己负责的模块无论从整体到细节都有了非常深刻的掌握,但同时也一个问题,即定向思维。测试的反复循环使得测试人员对自己负责的模块出现测试疲态现象,这严重影响了测试后期故障的检查。这种专注测试模式虽然能加深测试人员对软件部分功能的深入理解,但从某种程度上也影响了产品的最终质量,同时也限制了测试人员对产品整个逻辑和功能的了解。为了解决这个问题,引入叫交叉测试时非常必要的。

  交叉测试,可以使测试人员相互交换测试的模块,这样即可以保持测试人员的测试新鲜感,还可以进一步发掘测试的未知领域,发现交叉测试的模块和之前测试的模块间的联系,甚至可以构建更多的测试场景,提高故障发现率,对提高产品的质量也起到了很大帮助。

  03、如何引入交叉测试

  根据第二节的敏捷测试流程和第三节的测试分层模型,及交叉测试的作用,可以推断出,交叉测试适合在测试结果相对稳定(即测试人员对自己负责的模块测试完成度很高时)、交付产品前进行。因此,可以在集成测试和验收测试之间引入交叉测试。如下图2所示:

3.png


图2引入交叉测试后的测试分层

  交叉测试需要交换测试人员负责的测试模块,但并不是随机、无计划、无组织地随机分配测试模块给不同地测试人员。根据敏捷测试的“全员测试”理论(即人人都是测试人员),在组织交叉测试地时候,重点考虑有功能关联或交互地模块间进行交叉测试,这样可以使测试人员更加清晰模块间地交互和功能革新后的波及性,可以构建新测试场景扩展测试面,发现更多遗漏的软件故障。

  具体交叉测试样例可以参考下表:

表2交叉测试设计样例

4.png


  其中,A和C,B和D模块之间存在功能关联。

  04、交叉测试带来的效益

  经过实践发现,交叉测试引入前后对比,发现故障数有所提高,测试人员对不同模块的了解度更加深入,产品质量得到更高的保障。



作者:刘晓佳   

来源:51Testing软件测试网原创


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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 做接口测试中,对于一般性的单业务接口测试很多工具可供选择,但是对于一些相关业务相关性的关联接口测试就比较麻烦,使用工具比如jmeter、postman、soapui等等就比较麻烦。我比较偏重脚本化执行测试用例,所以选择了groovy作为主要语言来进行接口测试,但是脚本依赖的库还是基于之前所在的java为主的测试框架,有兴趣的可以翻翻以前的文章。项目的架构思路是以模块为基础把接口分类,然后对于接口的请求单独进行实现。通过一个user作为一个用户,携带各种属性,如:uname,pwd,token,userinfobean等信息。来作为各个模块类之间的信息传递。回到修改密码接口,简单说一下我们接口的...
            1 0 2342
            分享
          •   据报道,当地时间周四,美国微软公司和德国汽车厂商梅赛德斯奔驰公司宣布,双方将展开合作,把ChatGPT人工智能服务整合到存量汽车中,美国地区90万辆汽车将因此受益。  梅赛德斯奔驰是全球知名豪华车制造商,该公司介绍,未来车主在使用“嗨!梅赛德斯”语音助手提问时,ChatGPT将会负责回答问题,ChatGPT的到来将会极大增强这一汽车语音助手的功能。  微软公司发言人介绍称,这也是ChatGPT产品第一次应用在汽车环境中。  梅赛德斯奔驰表示,从本周五开始,美国的汽车用户将以测试版的方式,使用上ChatGPT驱动的语音助手。车主可以通过该公司官方软件“梅赛德斯me”加入这一测试计划,也可以直...
            0 0 1151
            分享
          • 在做并发测试时,遇到了设置持续时间,但是到达了持续时间后,一直不停止;线程组设置的信息如下:从图中线程组设置可以看出Jmeter需要开启100个线程并且在300s内持续性的给后端服务器发请求,运行后从右上角看到,已经运行超过了300s,但是线程一直没有停止。从jemeter.log 日志查看不停的打印Stopping because end time detected by thread从网上查资料得知是因为某些线程被阻塞了,出现线程阻塞的原因是JMeter的所申请的内存不足导致的,解决该问题有几种方法:调整脚本,可以通过调整并发数、减少断言,尽量不要使用监听器来减少额外的内存开销非GPU模式...
            0 0 16939
            分享
          • 我选择的想要做研究的网站是:宜家(https://www.ikea.cn/)宜家家居背景:宜家家居于1943年创建于瑞典,“为大多数人创造更加美好的日常生活”是宜家公司自创立以来一直努力的方向。宜家将主要消费群体瞄准为25-35岁的“新中产阶层”,因为年轻化和时尚化,决定了他们对家具和家居产品的要求是强调设计以及能够体现流行的不同搭配。这种定位是十分巧妙准确的,IKEA抓住了这个新生消费层,向他们提供设计精良、功能完善、价格相对低廉的家居产品,来迎合他们注重品质和品位、并兼顾价格的消费习惯,网站的整体风格和设计也都明显偏向于白领阶层的喜好。随着互联网的无孔不入,越来越多的人开始使用互联网作为信...
            0 0 2906
            分享
          • 蓦然回首自己做IT这个行业已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路!路其实一直都在那里,只是我们看不到而已!以前我一直被公司和技术牵着走,并不是自己在选择技术,而是不自觉地被推到了这个位置上。想想有多少人对于自己将来要从事的职业和技术类型进行过深入思考和比较呢?当我跳出编码后,我开始思考和程序及程序员职业生涯相关的问题,最后发现,影响我们走入今天的困局的竟然是一些我们常常挂在嘴边的话(观念)...
            0 2 3105
            分享
      • 51testing软件测试圈微信