How to communicate with development about test scope?

http://www.cnblogs.com/scios/p/5624707.html Reprinted

One of the daily routines of testers is to communicate code changes with development and make functional regressions for the changes, which we call test scope confirmation. For every tester, the following questions may be encountered:

1. What do I do first when I get a code change?

2. What do you ask when communicating with developers?

3. How can I communicate to ask the questions I want to ask? Can we get the regression range more accurately?

4. What should I do if I am worried that the question I ask is too incongruous and will be laughed at by the other party?

5. After the communication with the development is over, what should I do next? Do you just do what the developers say?

 

Old rules, for example:

 

Dialogue Background 1: One day, Lord Wu made several changes to the browser code. Xiaoqiang hurriedly looked at the code changes, then ran to ask Master Wu...

Bad case (Xiaoqiang version)

Xiaoqiang: When there is a code change, change an auto pointer to a unique smart pointer. I learned that both smart pointers can automatically free memory when the object is destroyed.

(Comment: The purpose is not clear, so that the other party does not know your intention)

Master Wu: I don't understand. . .

Xiaoqiang: That is to say, the auto_ptr pointer will transfer the memory block it points to to another pointer when it is assigned, but the unique_ptr will not, right?

(Comment: I still haven't explained the intention, the focus is on the technical details, and the other party still doesn't understand the intention)

Master Wu: I don't understand what you're talking about?

Xiaoqiang: When the code is changed, an auto pointer is replaced with a unique pointer. What effect will the change of this pointer have?

(Comment: I have entered the topic, but it is a closed question, the other party can directly answer yes or no, but I still can't get the answer I want)

Master Wu: You can understand that unique is safer, there is no big problem after the replacement, and the change does not need to be returned.

cockroach:. . .

Good case (Xiao Ming version)

Xiao Ming: I saw a change on SVN, replacing an auto_ptr with a unique_ptr. I learned that these two pointers can automatically release the memory. Why do you need to do such a conversion?

(Comment: The opening question brings the other party to the topic you want to talk about, and let the other party know that I am here to find you to understand the code changes. Then, talk about what you have learned in advance and ask the prepared questions, which can guide you If the other party thinks about the same question as you, it will help to confirm a more accurate return range.)

武爷:原来的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展示都没问题就行吧?如果出现问题可能是错乱等问题,这个函数如果需要深入测试的话到时候会找你了解具体的代码实现。

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

开发:好的

 

 

以下是测试范围确认流程的整体框架,以及每个阶段的实施建议,供大家参考。

**************胜者先胜而后求战,败者先战而后求胜!**************

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325767012&siteId=291194637