• 0
  • 0
分享
  • 软件测试面试知识点:敏捷测试和面试要点——软件测试圈
  • 小丸子🍡 2024-07-03 13:34:05 字数 3904 阅读 449 收藏 0

  敏捷

  敏捷是什么?

  区别于传统的模型,敏捷是一个迭代式的研发模型。

  敏捷开发的最大特点:高度迭代,有周期性,并且能够及时、持续地响应客户的频繁反馈。有时候讲究所有人集中所有精力快速完成一件事情。

  敏捷测试(Agile testing)

  测试的一种, 主张尽早开始测试,重点关注持续迭代地测试新开发的功能.。敏捷的测试团队还要保证整个软件开发过程是正确的是符合用户需求的。

  遵循:

  1、强调从客户的角度,即从使用系统的用户角度,来测试系统。

  2、重点关注持续迭代地测试新开发的功能,而不再强调传统测试过程中严格的测试阶段。

  3、建议尽早开始测试,一旦系统某个层面可测,比如提供了模块功能,就要开始模块层面的单元测试,同时随着测试深入,持续进行回归测试保证之前测试过内容的正确性。

  敏捷测试与传统测试的区别

  · 项目相当于开发与测试并行,项目整体时间较快

  · 模块提交较快,测试时较有压迫感

  · 工作任务划分清晰,工作效率较高

  · 项目规划要合理,不然测试时会出现复测的现象,加大工作量

  · 发现问题需跟紧,项目中人员都比较忙,问题很容易被遗忘

  · 耗时、或较难解决对项目影响不大的问题一般会遗留到下个阶段解决

  · 发现BUG能够很快的解决,对相关的模块的测试影响比较小

  · 版本更换比较勤,影响到测试的速度

  · 要多与开发沟通

  · 要注意版本的更新情况

  · 测试人员几乎要参加整个项目组的所有会议

  敏捷要了解的

  · Incremental test 增量测试

  全回归测试太多了,每次迭代做一部分,分开的总量合起来就是完整的测试用例数量。

  · Exploratory test 探索性测试

1-1.png


  · Retrospective meeting 回顾总结的会议

1-2.png


  · Stand up meeting

  · 燃尽图(英語:burn down chart):是用于表示剩余工作量的工作图表,是对需要完成的工作的一种可视化。

    -表示由横轴(X)和纵轴(Y)组成,横轴表示时间,纵轴表示工作量。

    - 这种图表可以直观的预测何时工作将全部完成,常用于软件开发中的敏捷软件开发方式,也可以用于其他类型的工作流程监控。(禅道新版本里面有这个图)

  组织架构

  PO(Product Owner)一名,项目拥有者
  TPM(Technology Project Manager)一名,技术项目经理
  DEV Leader一名,开发组长
  Developer二到四名,码农
  Test Leader一名,测试组长
  Test engineer两名,测试工程师
  Scrum Master一名,除了PO和TPM谁都能争取,是一个服务型领导,沟通、推动用的,可以开发组长或者测试组长选一个

  重点:敏捷面试问题

  以下来自测试大神杰哥(Jeremy老师)的解说:

  1. 敏捷是一种怎么样的模型?

  区别于传统的模型,敏捷是一个迭代式的研发模型。

  迭代就是循环做一件事情:一般正常情况下迭代周期是一周、两周或者四周,面试的时候最好说四周,否则时间太紧搞不定。

  =以一个月举例=:

  第 1 周我们一般做的是需求调研(和开发)。产品经理会给我们介绍,我们这次迭代要交给客户怎么样的功能,完成什么样的新功能,包括一些缺陷的修复,或者说一些功能的优化,这些都是属于敏捷的范围。作为测试来讲,应该是要理清楚这次敏捷,做一些什么任务,(领导会分配任务)。那么如果是对于新需求的话,其实敏捷的第 1 周我们大量的时间是在搞需求研究,研究完以后,就开始做一些测试点的一个设置了。

  第 2 周的早期,我们就尽量把已经设计完了测试点进行一个评审。等评审完以后,开始把这些已经设计过的测试点写成测试用例。

  前两周测试主要是做一些测试设计工作,开发其实也是在做一些需求分析调研,然后他们也在写代码,一般到了第 3 周和第 4 周,就会进入测试执行阶段,执行之前写的测试用例。期间会不断的更新版本,内部的版本一定会加上去,开发也不断地在修复。

  尤其是到了第 4 周,主要就是解决第 3 周执行下来发现的 bug。

  ·如果说第 4 周的周五,我们就要发布这个版本给客户了,那么到了第 4 周的中间比如说周三,我们应该要把所有的功能里面的测试工作都结束,也就是执行工作全部要结束,包含测试用例的执行。然后所有的缺陷全部都要修复完毕以后验证通过。

  · 周四,我们要进行一个回归测试,这个回归测试指的是系统的一个回归测试,包括一些老的功能等等,各模块的功能都要测试一遍,然后抽取那些优先级高的那些测试用例,作为我们的回归测试。

  · 到了周五我们就要上线了,上线前有一个预发布的一个上线,外面也有人叫灰度环境(预发布的测试环境),我们进行一个冒烟测试,对这次要提交的给客户的新功能进行一个大致的测试,也是执行测试用例。预发布通过了以后,我们就正式上线。上线以后以后我们还会快速的进行一下冒烟测试,使用的是生产环境。

  (如果上线之后冒烟测试出问题了,绝对不是测试的问题,有可能是一些开发配置的问题,这种情况下我们的紧急预案就是把它撤回来,回到原来那个版本。)

  敏捷的大致流程就是前两周以写测试用例为主,后两周以集中执行用例为主。但是也有可能在第 2 周的某一天,这时候你已经把功能 c 测试用例设计完了,开发说你可以测试功能 c 了,这时候就要先开始执行测试了。一旦有执行就必须早点执行,早点执行才能早点发现问题,能让开发早点改掉。

  补充:

  回归测试和验证缺陷以及冒烟测试,这些是从测试执行阶段,每一天都在做的。因为冒烟是每一个版本都会去进行冒烟的。开发那边一天可以有几十个版本,但是一般开发和测试会约定好,每天给测试一个可执行的版本,这个可执行的版本提交给测试以后,测试进行一个冒烟测试,看一下主流程通过没有,如果不通过立马打回,让他们立马给一个新版本,通过的话,我们当天就回基于这个版本继续我们后面的工作。

  一般情况我们第 2 天早上拿到的版本,就是开发昨天晚上发的最后一个版本,我们早上拿版本以后,立马进行一个冒烟,如果有问题,有问题是很正常的,经常会发生的,那么我们会立马叫开发出一个新的版本,作为我们今天的测试版本。这个版本里面会包含昨天一天开发所有修复的缺陷。测试在禅道里去看自己的缺陷,哪些是已经修复的状态,它上面传到上面会标版本号,在这个版本上进行缺陷验证。

  回归测试一直要回归的,首先缺陷验证其实就是一种回归,要把之前已经失败的测试用例重新跑一遍,这个也算回归。还有一种情况就是说开发说缺陷我已经修改好代码了,但是可能会影响到另外一个功能,这个时候就要立马对另外一个功能进行回归测试,就要挑选一下另外功能比较重要的进行回归测试。

  回归测试完成后就继续执行那些没有执行过的测试用例,要记住测试用例的执行率必须是 100%。

  (可以跟面试官聊我们的执行通过率,最后上线的标准,也就是交给客户的标准。执行率 100%,测试的通过率 95%,就是说如果有 100 个测试用例,允许有 5 个测试用例不通过,失败了 5%,开发也没有修复。但是这些没有修复的缺陷不可以有严重的缺陷)

  2. 敏捷的过程中有没有用过什么 mock 工具 造数据

  敏捷跟工具没有半毛钱关系,不要陷入面试官的圈套。

  他的意思是说,敏捷可能会发生:比如说你承接的一个任务,任务 a 和任务 b,b 依赖a,但是b开发完,a没有开发完。

  那么为了测试b,就会做一些 mock 数据,做一些临时的数据,可以让测试执行下去。

  3. 敏捷的过程中遇到的问题?

  敏捷过程中最大的问题说白了就是时间的 delay。

  敏捷讲究的是每天要早上开站会,开站会的目的就是比如开发计划好,本周二一定要提交给测试,那么测试周三就可以开始执行测试用例。但是有时候计划赶不上变化,开发没有按照他说的那一天提交给测试,他的代码还没有写完。这时候整个测试计划就被打乱了.

  面试时就说这时候也没有办法,我只能先进行后面的计划,先写一点其他的测试用例或者先执行其它功能的测试用例。这是我们遇到过的一个问题,但是后面我们都改正过来了,团队合作更团结了。

  敏捷里面还会出现比较多的一个问题是,测试有很大一部分工作量在回归测试上面,因为敏捷时间周期比较短,但是之前所有的我们也都要测试,怎么可能在一两天内把几年内积累的所有功能都测一遍,这也是敏捷测试里的一个痛点。

  解决方案就是让开发提供影响性分析,开发改的代码可能会影响到哪些模块,测试就根

  据这份列表,去找 到对应的测试用例,进行回归测试。

  4. 如果需求变更了,有两种情况,一种是客户那边提出的需求变更,还有一种是之前的遗漏的一些点。这种情况怎么解决,怎么跟进的?

  理论上来说,一个好的团队是不允许客户在研发阶段去变更需求的,其实这个问题不应该由测试来解决。但是客户毕竟是上帝,而且我们要拥抱变化,当然这不能是常态,万一紧急的变更怎么办?

  这种情况只能通过加班加点来完成工作,同时为了更有效率进行呢,我还会考虑一下影响性分析,因为只要有需求变更,就说明开发又要改代码了,就可以去问开发有没有哪些可能会影响到的功能模块,然后有策略的做回归测试,

  如果是遗漏点的需求变更也是一样的,还是要先做好影响性分析,然后进行回归测试。


作者:bingolina    

来源:http://www.51testing.com/html/80/n-7794880.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   小B是某业务方向的QA(Quality Assurance Engineer,质量保障工程师)负责人,该方向共3名QA同学,按双周对齐需求测试进展时发现,该方向有多个需求提测后需要等待几天时间,QA同学才能介入测试。虽然出现这种情况,跟该方向近期的需求数量变多有直接关系,但依然有两个可持续的改进方向:需求测试效率的进一步提升;部分需求应推动RD(Research and Development Engineer,研发工程师)自测,实行QA免测。  小D是该方向的一名QA,工作3年左右,对于这两个改进方向,他能理解,但也有一点困惑。需求测试效率提升很容易理解,因为效率提升后,QA资源能够尽快...
            0 0 447
            分享
          • 近些年,随着对于客户体验、管理水平、业务发展要求的提升,业务越来越复杂,迭代周期越来越快,如何做好提高功能测试质量?是很多技术负责人或者测试人员面对的问题。下面针对自己经验,分享一下功能测试精髓。一、功能测试面临的问题1、测试关联度复杂IT系统规模越来越大、集中度高、架构复杂、耦合度增强,使得业务和技术复杂度越来越高,测试设计和测试实施难度大,IT系统质量保障压力持续加大。2、测试周期越来越短业务需求提出到 IT 实现的周期越来越短,预留给测试的时间越来越短。面对复杂系统测试,如何压缩测试周期,提升测试效率,对测试部门管理能力和实施效率要求越来越高。3、测试组织与协同难测试规模越来越大、关联性...
            0 0 5759
            分享
          •   3个月时间,如何从一个功能测试进阶自动化测试的,我整理了一份1000字的超全学习指南。  一、学习自动化之前,我们应该先了解自动化测试是什么?  自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。  二、自动化测试如何学习,自动化测试又有那些类型  1.自动化测试的类型  什么可以自动化?实际上很多,但是通常容易误解这个问题。  有两个主要类型,功能性和非功能性:  · 功能性:测试...
            10 11 1410
            分享
          • 有一段时间没关注性能测试,但时常还能看到有小伙伴讨论性能,对于一些概念的理解很想深入讨论,但三言两语说不清,于是,还是花点时间写写吧!今天有一个同学问:“一个小的系统,用户并发数为20个,那事务平均响应时间大概在什么范围内?”怕麻烦直接告诉他2/5/8原则,钻牛角尖的话,需要进一步确认什么样的小系统?提供的什么类型的业务?用户行为是什么样的?用户对系统的使用频率?就算同响应时时间一样,前端通过不同展现方法,用户的感知可能完全不一样。下面就真对这个问题延伸讨论一下从用户感知的角度看软件性能测试。2/5/8原则2/5/8原则是上个世纪80年代某公司真对自己公司的应用做的一个调查,调查的结果就是当用...
            0 0 1080
            分享
          • 前言现在很多公司写后端代码和前端代码已经分工很明确了,前后端把接口定义好,然后各自写各自的代码就可以了。那么对于服务端的开发人员来说,写好了代码后,对外提供了API,这时候没有页面可以调用调试,如果等着客户端写完代码再测试的话,那样工作的效率是及其低下的。那么服务端要学会模拟客户端的调用,来调试自己的代码,提早发现问题,这样后续跟客户端进行联调的时候,就大大提高了效率。我们今天讲讲Postman模拟客户端调试工具,这是我平时工作中最常用的工具之一。Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它只要在Chrome里安装一个插件即可完成强大的功能。但是由于201...
            0 0 950
            分享
      • 51testing软件测试圈微信