• 0
  • 0
分享
  • 节省时间的分层测试,到底怎么做?——软件测试圈
  • 恬恬圈 2023-05-26 15:46:54 字数 1580 阅读 1393 收藏 0

  为什么要做分层测试

  从软件工程的角度,结合软件开发的V模型、MVC架构、测试金字塔,综合起来便于理解。

  1.借鉴与软件开发的V模型

  从V模型的底部往右上方向,先做单元测试,再做集成测试一直到最后的验收测试。

1-1.png

  2.来源于MVC架构

  MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。

  我们可以简单理解为V是用户看到的界面,C是中间逻辑,M是数据。对于现在流行的微服务SOA来说,V就是前端WEB或者APP, C就是中间密密麻麻的各种接口,M就是最下层的数据:

1-2.png

  3.来源于测试金子塔

  testing pyramid,类似于V模型,把测试行为从下往上分为单元测试、组件测试、集成测试、系统测试、手工测试。对于测试金字塔,越往下靠越容易自动化,越靠下成本越低,越靠下效率越高。

1-3.png

  分层测试的好处

  1.定位快:测出哪一层问题,很明确。此方法在处理线上问题则比较常用。

  2.针对性强:在用例设计和测试执行时,更具有针对性,思维更清晰。

  3.加强对代码实现逻辑的理解,拓展测试技能。

  4.节约时间成本:1)分层测试是一个迭代的过程,测试可以提前介入,不用等到最后面才介入,缩短整体项目时长。2)提前暴露问题,缩短BUG查找时间和修复BUG的时间。

  怎么做分层测试

  分层测试的测试方法还是原来的测试方法,但对测试人员的代码能力还有自动化测试水平有较高要求,同时要求测试人员和开发团队真正的理解敏捷开发和敏捷测试,甚至要求开发团队达到开发即测试、测试即开发的能力。

  手工测试:需要测试界面、微服务的接口和数据库。

  测试开发:还需要关注分层的自动化测试、单元测试、持续集成和持续发布。

  在测试的时候,不仅要关注需求文档中的需求,还要考虑一些隐藏的需求,以及开发的实现,开发采用不同的实现方式,会产生不一样的测试点。

  要更多的站在用户的角度去考虑用户的使用场景,流程设计是否合理,交互是否顺畅,文字是否有歧义,提示是否明确而友好。

  开发采用了什么技术,什么框架,设计是否合理,是否高效,是否有扩展性,流程是否可控,是否考虑了异常情况,数据处理是否合理,是否存在性能问题,安全性有没有考虑等等。

  针对上面的分层结构,我们在设计测试用例的时候,需要考虑以下图所示的情况(粗略,还需要拓展):

1-4.png

  通常测试人员和开发打交道较多,那么分层测试可以是下图这种模式:

1-5.png

  实施方法

  单元测试由开发人员在代码实现完成后进行,QA主要进行接口和UI层的测试。

  接口层测试:

  项目启动时,相关人员评估是否需要QA介入接口测试;交付节奏快、代码量很小的项目,可以直接从UI层验证,不需要QA人员进行接口测试;其他项目根据需要进行接口测试。

  根据开发计划,确定执行接口测试的时间。

  参与到接口评审,根据接口文档,确定被测接口。

  设计case、准备数据、执行测试。

  跟踪Bug。

  UI层测试:前后端联调完毕后,进入接口层测试。UI层测试除了关注UI交互的问题,更重要的是站在用户的角度,从UI层完成端到端业务流程验证,易用性、稳定性等因素也是这个层面测试需要考虑的事情。

  分层测试自动化:

  从接口层、UI层选择回归频率高的业务流程做自动化回归,降低回归测试成本。

  不是所有业务流程都适合做自动化测试,自动化用例维护也有成本,选择自动化目标时,应考虑选择不频繁变动的流程。

  UI层的变动大,维护成本高,从自动化用例的比例来看,也应该遵循金字塔的结构,UI层应该是占比最少的,把更多的自动化回归放到接口层、单元测试层。



作者:BruceHelloWorld    

来源:http://www.51testing.com/html/70/n-7793970.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 如何进行需求管理?需求采集、需求分析、需求筛选、需求处理这4个步骤有什么成体系的方法吗?有适合的工具进行管理吗?可以介绍一下工作中的具体方法吗?结合上面的问题,我们来具体了解一下需求管理,需求管理源于业务需要,始于需求挖掘,继而需求分析,需求定义,需求验证。周而复始。一、业务需要说明需求产生的原因,可能是高层制定的目标,中层对工作流程的调整,基层碰到无法解决的问题,用户需要,外部环境变化,竞争对手策略变化或者政府政策调整等。需求人员在明确业务需要时,首先明确干系人,其次获取干系人要求/需求。可以采用的方法包括:行业基准(竞品),业务规则分析(产品分析),头脑风暴,焦点小组,功能分解,根源分析等...
            0 0 954
            分享
          • 1、异常优化考虑以下情形。def testLogin(){   #从Excel文件中读入测试数据,比如:Jerry/123456   #继续后续测试   }   def teardown(){   #从数据库表中删除的读入的数据,比如:Jerry/123456   ...   }比如测试程序在继续后续测试的时候出现了一个异常,比如元素没有找到,系统会自动退出,而不去执行teardown方法,也就是说数据库中的数据没有得到清除,这样如果下一次测试同样的case,采用同样的测试数据就会使测试程序发生脏数据异常,为了解决这个问题我们通过使用Python的try-catch来捕获异...
            0 2 3142
            分享
          •   背景  由其他的team做的项目,配置到一个新的环境下。由于项目需要与别的公司的项目接连,所以需要创建公开的API接口,利用apifox来进行测试(postman,jmeter都可以)。此次利用apifox来创建测试API接口的测试。  1. 在官网下载apifox工具  下载地址和使用文档的URL : https://www.apifox.cn/help/  下载之后需要注册登入自己的账号。  2.创建简单API的测试接口  可以使用文档来操作。  3.前置操作和后置操作  在测试API时首先需要取得一个token,在取得token的时候还需要【SHA256】加密处理,所以需要创建一个前...
            0 0 1345
            分享
          •   前言  从当初偶然的机会进入测试领域,到现在已经多年了,在这些年做过测试执行、测试技术研究、测试工具等测试相关的工作。最近在工作上有些迷茫,不知道后面的职业道路怎么走,感觉很多测试技能,经验都没得到很好的总结和思考。之前接触过思维导图,但是一直没有发现其价值所在,最近又重新关注,发现思维导图真是个好东东,对测试工作有很大的帮助,所以特总结一下,分享给大家。  正文  一、测试是否需要建模  通常一谈到建模,大家普遍都认为开发才需要,对测试来说,最多可能是在测试设计阶段才需要建模。对于测试模型,一般都谈的比较少,因为很多人都认为测试要求不高,不需要什么模型,也没有什么模型。那么我们分析一下测...
            1 1 2572
            分享
          •   现如今互联网行业飞速发展,IT行业也是水涨船高,软件行业的未来发展也是越来越好。而软件测试在软件行业可谓是一个必不可少的职业,它不仅算得上一个长青工作,而且也是一个在需求持续增长的职业。如果你已经入行软件测试了,那就沉住气继续努力下去,保持不断学习的习惯,你会越来越吃香,随着时间的增长和个人经验的不断增加,你在软件测试这个行业的眼光、见识、技能都会持续增长。据不完全统计,每年都有十多万的测试需求在增长,国内软件测试的人员缺口在持续增加,工作前景也比较好,想要入软件测试这行得趁早啦。 根据十来余年的工作经验和个人经历,有以下这么几点,只要你满足了,就大胆的进入软测这行即可:  1、有个大专以...
            0 0 1214
            分享
      • 51testing软件测试圈微信