如何跟开发就测试范围进行沟通?

测试人员每天的例行工作之一就是与开发沟通代码改动,并对改动进行功能回归,我们称之为测试范围确认。对于每个测试人员来说,可能都会遇到以下问题:

1、拿到一个代码改动后我首先做什么?

2、跟开发沟通时问些什么?

3、我该如何沟通才能问到自己想问的问题?才能更精确的得到回归范围?

4、担心自己问的问题太不搭调,被对方嘲笑怎么办?

5、跟开发沟通结束后,接下来该怎么做?直接按照开发说的去做吗?

举一些工作中的bad case和good case,让大家体会一下,评语是本人自己添加的,有更好的理解可以单聊哦~

对话背景1:一天,武爷对浏览器的代码作了几笔改动。小强匆匆忙忙地看了一下代码变更之后,就跑去问武爷了…

Bad case(小强版)

小强:有一笔代码改动的地方,把一个auto指针, 改成unique智能指针。我了解到这两个智能指针都可以在对象销毁的时候自动释放内存。

(评语:目的不明确,导致对方不清楚你的来意)

武爷:不明白。。。

小强:就是说 auto_ptr 指针会在赋值时把自己所指向的内存块转移到另外一个指针中,而unique_ptr则不会,是这样吧?

(评语:还是没说明来意,关注点停留在技术细节上,对方仍然不明白来意)

武爷:不明白你说的是什么?

小强:就是代码改动的时候把一个auto指针换成了unique指针,这个指针的变动会有什么影响?

(评语:进入主题了,不过封闭式的提问,对方直接回答有或者没有就行,还是没能得到自己想要的答案)

武爷:你可以理解unique更安全,更换后没有太大的问题,那笔改动不用回归。

小强:。。。

Good case(小明版)

小明:在SVN上看到一笔改动,把一个auto_ptr 换成了unique_ptr, 我了解到的这两个指针,都能自动地释放内存,为什么要做这样的转换呢?

(评语:开题就把对方带到了自己想要谈的主题上,让对方知道我是来找你了解代码改动。接着,说了下自己提前了解到的情况并提出准备好的问题,这样能引导对方跟你思考同一个问题,有利于确认到较准确的回归范围。)

武爷:原来的auto是我们自己做的,unique_ptr 是VC11的,VC11已经有自动释放的指针了,我们就就没必要再自己做,直接使用系统提供的就好了。

小明:那这样改动会影响哪些范围呢?

(评语:与对方确认改动的影响范围,这种开放式的提问方式,能够让对方展开来谈论,有利于我们了解到更多内容。)

武爷:应该没有什么影响,要是出问题就崩溃了,看下主路径就行。

小明:那些指针是控制哪些对象的?

(评语:如果提前了解到更多的技术细节,也可以提前准备好疑问,沟通时提出来一起讨论来解答疑惑)

武爷:DC(设备绘图的)

小明:我们对浏览器界面主路径做测试,没有出现大的问题,比如崩溃,就没问题是吧?

(评语:好了,回归范围拿到了,最后就沟通得出的结论总结下,让双方达成一致。)

武爷:是的。

对话背景2:一天,开发添加了一个函数,在SVN上的changelog内容注释的是”添加了一段牛掰代码“,对于看不懂代码的测试童鞋要去找开发确认回归范围了。。。

Bad case(小M版)

小M:我看到了一笔代码改动,想跟你确认下,你看现在方便吗?

(评语:比较有礼貌,沟通时的礼貌用语,会让对方比较舒服)

开发:你说

小M:看到你添加在一段代码,但是这段代码不是特别明白,你看能稍微讲一下吗?

开发:我加的那一段?我加了好多代码。。。

小M:额,你打开SVN看看,我告诉你是哪一笔。

(评语:没有提前准备,需要让开发打开svn changelog查看,浪费了大家的时间)

。(此处打开SVN)

小M:就是这个改动

开发:哦,这个呀,这个你不用回归。这个没什么影响,功能上没什么大问题就行,不用回归。

小M:这个函数的作用是什么啊?

(评语:问到了函数作用,但是没有深入的接着问,导致获得的信息没有帮助)

开发:计算距离的,你黑盒上回归下没问题就行

小M:这个加了以后跟加之前有什么区别吗?

开发:更精确了。这个不用回归,我之前的改动与UI展现相关的没问题就行

小M:也就是说你这块改动是与UI展现、字体展现等相关的是吧?

开发:是的。

Good case1(NaNa版)

nana:想跟你确认下代码改动,你现在有时间吗?

开发:有时间,你说。

nana:刚才发到你QQ上的截图,就是那笔改动,你的注释是”加了一段牛掰代码“。我看了一下,不太了解你这段代码的逻辑,你能跟我讲一下吗?

(评语:说明来意,直奔主题)

开发:哦,这个呀,这个你不用回归。这个没什么影响,功能上没什么大问题就行,不用回归。

nana:那个代码本身的逻辑你能简单给我讲一下吗?我想了解一下

(评语:深入了解代码逻辑,因为了解到逻辑后,对后面的回归有帮助)

开发:函数本身是计算去一个最佳的距离

nana:什么距离呢?

开发:所有字体布局之间的距离

nana:我们浏览器的主框架?

开发:可以这么理解,所有的布局和字体之间的距离

nana:所有的布局?我们浏览器的UI包括很多,主框架区、对话框,还有气泡等等,是指这些吗?

开发:主框架

nana:是指主框架的收藏栏、地址栏、侧边栏等吗?

(评语:对待每个模糊的回答,能够细化问题,精准的确认影响范围)

开发:是的

nana:这个函数计算的UI距离是指哪些具体的UI呢?

开发:行间距和字体的间距,图片与字体之间的间距

nana:这段代码的逻辑调研过吗?能给我交接下吗?

(评语:明白自己的目的,以学习的心态再次要求开发讲解代码逻辑。这在完全不了解代码逻辑但又必须得了解的情况下是可取的,能避免漏掉细节)

开发:你一定要了解吗?那给你讲讲吧。

Good case2(小明版)

小明:请问有时间吗?跟你沟通下代码改动,确认下回归范围。改动内容已经截图发给你了。

开发:好的

小明:我看你注释的内容是”加了一段牛掰代码“,这段代码是做什么用的?

开发:哦,这个呀,这个你不用回归。这个没什么影响,布局上没什么大问题就行,不用回归。

小明:它会让布局不一样是吧?那它是做什么用的呢?

开发:它主要用于计算距离,一些布局的间距

小明:什么时候会使用呢?

(评语:了解具体的函数使用细节,包括作用、使用时机、使用范围等,有助于确认最后的回归范围,这些都建议提前做准备,有备无患)

开发:展示UI的时候,需要排版时就会调用它来计算间距

小明:是所有UI都要用到吗?

开发:可以这么理解

小明:这个跟DPI有关吗

开发:有,就是在高DPI下用来重新计算距离的

小明:哦,那就是在125%、150%DPI下用到是吧?

开发:是的

小明:那这个如果出问题的话,可能出什么问题呢?

开发:如果出问题,布局就错乱了

小明:那这段函数是咱们自己写的吗?

开发:是

小明:那是否需要我们做内部的调研,去针对性的做一些单测呢?

(评语:引导开发思考修改存在的隐患问题,并提出做单测的想法,提出了如果出问题会如何如何,这样开发会更加谨慎的去回答你提出的问题。)

开发:想做也行

小明:不会出问题吧?要是出问题我就找你哈~~哈哈哈

开发:那做一下吧

小明:那要做的话,请讲一下具体实现吧。

(评语:通过单测的要求,让开发讲解代码实现顺理成章)

开发:balabalabala。。。(讲实现)

小明:我再确认下,这个功能就是在浏览器高DPI下,UI布局展现时计算距离的,我们验证UI时,应该看一下所有的UI布局展现的正确性,包括在移动、刷新时候的UI展示都没问题就行吧?如果出现问题可能是错乱等问题,这个函数如果需要深入测试的话到时候会找你了解具体的代码实现。

(评语:最后,总结下双方的沟通结论,达成一致)

开发:好的

以下是我整理的测试范围确认流程的整体框架,以及每个阶段的实施建议。

供大家参考。有更好的建议可以一起交流^_^

时间: 2024-12-14 10:15:41

如何跟开发就测试范围进行沟通?的相关文章

敏捷开发

学习内容: 敏捷开发 Agile Development 是一种软件开发流程,开发方法,能够知道我们按照规定的环节一步步的去完成项目的开发任务,主要驱动核心是人,采用的是迭代式的开发. 是相对于瀑布开发模式的缺点改进的一种开发模式,就是把一个大项目切分成多个子项目,然后分别开发.测试. 是以用户的需求变化为核心,采用迭代和循序渐进的方式进行软件开发. 四句开发宣言: 个体和互动  胜过     流程和工具 可用的软件    胜过     详尽的文档 客户合作 胜过     合同谈判 响应变化  

一个网站或者APP开发要多少钱

经常遇到朋友问我:"开发一个京东商城需要多少钱?开发一个滴滴打车需要多少钱?"类似这样的需求,就连我这样一名伪开发者都不愿意去骗客户或者朋友,因为这种问题是很难回答出来的.为什么这么说呢?要知道类似京东商城滴滴打车这样亿级别用户的产品,很难知道他之前经过了多少次版本的迭代,也很难知道他的产品线有多广,很多朋友甚至连"迭代"这样的名词具体概念都不懂,今天我会以Q+A的形式汇总诸多开发过程中遇到的客户问题,希望能给创业中的你一些建议,如果你是一名开发者可以绕道. 首先我

敏捷开发实施方案

今天把前段时间,给公司讲解敏捷开发流程的PPT文档发出来.由于近来比较喜欢用Markdown编写文档,发现博客园不支持Markdown编辑,有点失望.小小吐槽,O(∩_∩)O~ 敏捷开发实施流程 敏捷开发实施流程 1.迭代计划 2.每日晨会 3.看板 4.迭代验收 (ShowCase) 5.迭代回顾会议 6.敏捷使用管理工具 7.敏捷开发总结回顾 8.瀑布模式与敏捷开发区别 敏捷开发的最大特点是:积极响应用户的需求,快速高质量的交付软件; 其核心是:以人为本,发挥人的主观能动性. 1.迭代计划

敏捷开发实战(三)--每日晨会,是否只是摆设?

经过上面总结的两篇博文敏捷开发实践(一)–谈谈我对敏捷开发的理解和敏捷开发实战(二)–你真的了解Scrum吗?,我们已经对Scrum进行了整体的认识和学习,这篇博文我们一起讨论和学习,我在实施敏捷的过程发现的一个问题. 问题描述 相信实施过敏捷开发的博友,每天会在同样的时间和同样的地点召开会议,此会议在Scrum五大活动中被称为每日Scrum会议. 有这样的一种现象,团队中的新成员刚开始接触Scrum时,积极性会特别高,在会议中会比较积极的发言,但是对于大部分经过长时间开发的老成员来说,经常会在

一步步学敏捷开发:5. Scrum的4种会议

在Scrum会议中包括:计划会议.每日站会.评审会议和回顾会议. 1.Sprint计划会(Sprint Planning) 在Scrum中,Sprint计划会议有两部分:1. 决定需要完成哪些工作?2. 决定这些工作如何完成? 第一部分:需要完成哪些工作?参会人员:Team.Scrum Master.Product Owner第一部分的会议,产品负责人向开发团队介绍排好序的产品待办事项,由整个Scrum团队共同理解这些工作.Sprint中需要完成的产品待办事项数目完全由开发团队决定.做多少工作只

谈谈我理解的敏捷开发

"敏捷开发" 几乎成了互联网家户喻晓的一个热门话题.每个人都在聊敏捷.Scrum.XP. 我对"敏捷"的认识还算是在一个正在探索的阶段.网上有非常多的资料,五花八门,对于初学者来说无形之中会设了很多的坎.刚好借此机会写个文章帮助自己进行知识的梳理和总结,另外一方面也希望对刚接触的人有所帮助. "敏捷开发" 知多少? 敏捷开发(Agile Development)是一种以人为核心.迭代.循序渐进的开发方式. 它并不是一门技术,而是一种开发方式,也就

浅谈敏捷软件开发与传统软件开发

本文将介绍传统软件开发与敏捷软件开发,并简单分析二者的优缺. 首先我查阅相关资料大致了解了下为什么会爆发"软件危机"和什么是"软件危机".由于在早期的软件开发活动中有明显的个体化特征,开发流程不规范,人们没有将软件与程序加以详细的区别,对程序之外的数据和相关文档资料没有给予重视,对编写程序之外的软件活动也没有给予重视,因此出现了"软件危机"."软件危机"的特点有:开发成本急剧上升.不能按时交付软件.软件难以维护.无法保证软件质

2016/09/29 瀑布模型开发和敏捷开发

瀑布模型开发 严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等. 使用里程碑的方式,严格定义了各开发阶段的输入和输出.如果达不到要求的输出,下一阶段的工作就不展开. 强调文档,在开发的后期才会看到软件的模样.在这种情况下,文档的重要性仿佛已经超过了代码的重要性. 瀑布模型把开发人员定义为流水线上的工人,由于各阶段的开发人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等.对于客户需求变更,编码人员会比设计人员更容

Swift开发之异常处理及断言(一)

本篇分两部分: 1.错误和异常处理 2.Swift 中的断言 1.错误和异常处理 在 OC 开发中,我们通常会将 error 置为 nil NSError *error; BOOL success = [data writeToFile: path options: options error: &error]; if(error) { // 错误信息 } 在绝大多数情况下,这个方法并不会发生什么错误,所以我们将 error 直接设置为 nil.但是出错的时候可能就会无从下手进行调试.在 Swi