如何跟開發就測試範圍進行溝通?

http://www.cnblogs.com/scios/p/5624707.html 轉載

測試人員每天的例行工作之一就是與開發溝通代碼改動,並對改動進行功能迴歸,我們稱之爲測試範圍確認。對於每個測試人員來說,可能都會遇到以下問題:

1、拿到一個代碼改動後我首先做什麼?

2、跟開發溝通時問些什麼?

3、我該如何溝通才能問到自己想問的問題?才能更精確的得到迴歸範圍?

4、擔心自己問的問題太不搭調,被對方嘲笑怎麼辦?

5、跟開發溝通結束後,接下來該怎麼做?直接按照開發說的去做嗎?

 

老規矩,舉例說明:

 

對話背景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展示都沒問題就行吧?如果出現問題可能是錯亂等問題,這個函數如果需要深入測試的話到時候會找你瞭解具體的代碼實現。

(評語:最後,總結下雙方的溝通結論,達成一致)

開發:好的

 

 

以下是測試範圍確認流程的整體框架,以及每個階段的實施建議,供大家參考。

**************勝者先勝而後求戰,敗者先戰而後求勝!**************

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章