軟件開(kāi)發(fā)中的結(jié)對(duì)測(cè)試
軟件開(kāi)發(fā)就是培養(yǎng)不同的觀點(diǎn)。存在不同角色(如產(chǎn)品所有者、設(shè)計(jì)師、開(kāi)發(fā)人員、測(cè)試人員、DevOps和項(xiàng)目經(jīng)理)的原因之一是在任何生命周期中都有不同的觀點(diǎn)。它可以是項(xiàng)目生命周期、產(chǎn)品生命周期、軟件開(kāi)發(fā)生命周期、軟件測(cè)試生命周期等。產(chǎn)品負(fù)責(zé)人將以業(yè)務(wù)為導(dǎo)向。這一切都與我們發(fā)布的內(nèi)容及其對(duì)客戶的價(jià)值有關(guān)。開(kāi)發(fā)人員更多地是實(shí)現(xiàn)驅(qū)動(dòng)的。這都是關(guān)于如何在代碼中實(shí)現(xiàn)我們的功能。測(cè)試人員的觀點(diǎn)通常包括技術(shù)方面和業(yè)務(wù)方面。這一切都是關(guān)于建設(shè)性地批評(píng)產(chǎn)品并向利益相關(guān)者提供有價(jià)值的反饋。
培養(yǎng)觀點(diǎn)差異的一種方法是使用結(jié)對(duì)活動(dòng)。結(jié)對(duì)編程和結(jié)對(duì)測(cè)試是最流行的兩種。本文重點(diǎn)介紹結(jié)對(duì)測(cè)試,我將分享團(tuán)隊(duì)如何利用結(jié)對(duì)測(cè)試發(fā)揮優(yōu)勢(shì)的經(jīng)驗(yàn)。
每個(gè)角色的配對(duì)測(cè)試
結(jié)對(duì)測(cè)試可以在測(cè)試人員之間、開(kāi)發(fā)人員之間以及測(cè)試人員和開(kāi)發(fā)人員之間進(jìn)行。只要相關(guān)人員的關(guān)注點(diǎn)和觀點(diǎn)不同,結(jié)對(duì)測(cè)試就會(huì)大有裨益。
測(cè)試人員之間的配對(duì)測(cè)試
無(wú)論測(cè)試計(jì)劃和組織得多么周密,測(cè)試人員之間的配對(duì)都可能會(huì)發(fā)現(xiàn)遺漏的邊緣情況。特別是在具有不同專業(yè)水平的測(cè)試人員之間,在探索性會(huì)話中集思廣益測(cè)試案例將有助于更多地了解被測(cè)系統(tǒng)。例如,可用性測(cè)試人員與后端測(cè)試人員配對(duì)可能會(huì)以可能導(dǎo)致有趣發(fā)現(xiàn)的方式相互補(bǔ)充。每次新功能準(zhǔn)備好進(jìn)行測(cè)試時(shí),不同開(kāi)發(fā)團(tuán)隊(duì)之間的測(cè)試人員都會(huì)安排結(jié)對(duì)測(cè)試會(huì)話。在某些情況下,結(jié)對(duì)測(cè)試安排在測(cè)試執(zhí)行之前和測(cè)試用例設(shè)計(jì)期間。
開(kāi)發(fā)人員之間的結(jié)對(duì)測(cè)試
前端和后端開(kāi)發(fā)人員可以集思廣益,了解為什么事情在需要棘手實(shí)現(xiàn)的用例中以這種方式工作。接下來(lái),不同團(tuán)隊(duì)之間的開(kāi)發(fā)人員可以對(duì)代碼相互依賴性進(jìn)行配對(duì)測(cè)試。一個(gè)團(tuán)隊(duì)使用配對(duì)測(cè)試進(jìn)行單元測(cè)試和集成測(cè)試。其他團(tuán)隊(duì)從單元和集成測(cè)試一直到 API 測(cè)試都是成對(duì)進(jìn)行測(cè)試。最后,一個(gè)沒(méi)有測(cè)試人員的開(kāi)發(fā)團(tuán)隊(duì)使用結(jié)對(duì)測(cè)試來(lái)拓寬他們對(duì)實(shí)現(xiàn)的看法。
測(cè)試人員和開(kāi)發(fā)人員之間的結(jié)對(duì)測(cè)試
這通常是配對(duì)測(cè)試最有效的組合之一。開(kāi)發(fā)人員經(jīng)常進(jìn)行測(cè)試以檢查已實(shí)現(xiàn)的代碼是否按預(yù)期工作。測(cè)試人員經(jīng)常進(jìn)行端到端測(cè)試,以檢查軟件系統(tǒng)是否按預(yù)期運(yùn)行。最重要的是,測(cè)試人員還必須探索系統(tǒng)中的任何類型的風(fēng)險(xiǎn)和意外情況。與開(kāi)發(fā)人員配對(duì)測(cè)試以應(yīng)對(duì)意外和風(fēng)險(xiǎn)可以對(duì)所有相關(guān)人員進(jìn)行教育。測(cè)試人員可以從開(kāi)發(fā)人員那里了解系統(tǒng)為何如此運(yùn)行。開(kāi)發(fā)人員可以學(xué)習(xí)新的方法來(lái)檢查系統(tǒng)和導(dǎo)致問(wèn)題行為的用例。例如,有一個(gè) 6 人的開(kāi)發(fā)團(tuán)隊(duì)在發(fā)布前進(jìn)行了配對(duì)測(cè)試。開(kāi)發(fā)人員已經(jīng)在單元級(jí)別進(jìn)行了測(cè)試,還在 UI 級(jí)別進(jìn)行了冒煙測(cè)試。測(cè)試人員完成了對(duì)系統(tǒng)行為的驗(yàn)證和探索。他們使用了一個(gè)限時(shí)會(huì)議,整個(gè)團(tuán)隊(duì)都參與了最后的綠燈發(fā)布。另一個(gè)團(tuán)隊(duì)在發(fā)布后進(jìn)行了全團(tuán)隊(duì)配對(duì)測(cè)試。在完成所有測(cè)試活動(dòng)并發(fā)布被測(cè)功能后,團(tuán)隊(duì)聚集在一起進(jìn)行全團(tuán)隊(duì)冒煙測(cè)試活動(dòng)。這有助于團(tuán)隊(duì)獲得信心,相信發(fā)布不會(huì)引起不愉快的意外。
更快地發(fā)布功能
在遵循以下循環(huán)的團(tuán)隊(duì)中:開(kāi)發(fā) → 代碼審查 → QA 測(cè)試 → 發(fā)布,在代碼審查之前和開(kāi)發(fā)期間進(jìn)行結(jié)對(duì)測(cè)試有助于更快地發(fā)布功能。開(kāi)發(fā)人員與測(cè)試人員組織了配對(duì)測(cè)試會(huì)議,以演示他們的功能是如何工作的。在配對(duì)測(cè)試中,他們檢查了正面和負(fù)面的情景。UI 的外觀和感覺(jué)進(jìn)行了討論,以及可能的性能瓶頸。當(dāng)雙方都對(duì)結(jié)對(duì)測(cè)試的結(jié)果感到滿意時(shí),開(kāi)發(fā)人員將檢查被測(cè)代碼。隨后將進(jìn)行代碼審查,然后由測(cè)試人員進(jìn)行全面的 QA 測(cè)試。配對(duì)測(cè)試通常會(huì)發(fā)現(xiàn)基本問(wèn)題。這減少了開(kāi)發(fā) → 代碼審查 → QA 測(cè)試周期,用于修復(fù)錯(cuò)誤或在發(fā)布前實(shí)施重要改進(jìn)。更少的周期意味著更快的發(fā)布。
查找更多錯(cuò)誤
配對(duì)測(cè)試可用于發(fā)現(xiàn)新的錯(cuò)誤。無(wú)論我們編寫(xiě)了多少測(cè)試,無(wú)論我們執(zhí)行了多少案例,當(dāng)我們跳出框框思考并以新的方式測(cè)試系統(tǒng)時(shí),我們總是會(huì)發(fā)現(xiàn)更多的錯(cuò)誤。我們可以擁有數(shù)量可觀的測(cè)試用例,涵蓋所有可用的功能和非功能需求。及時(shí),測(cè)試套件將捕獲回歸錯(cuò)誤。雖然回歸錯(cuò)誤對(duì)于查找和修復(fù)很重要,但可能還有其他未識(shí)別的重要錯(cuò)誤。結(jié)對(duì)測(cè)試期間的頭腦風(fēng)暴可能會(huì)帶來(lái)探索和識(shí)別新問(wèn)題所需的創(chuàng)造力。
更快地修復(fù)錯(cuò)誤
在配對(duì)測(cè)試會(huì)話中向同事展示問(wèn)題似乎比在錯(cuò)誤跟蹤系統(tǒng)中發(fā)布錯(cuò)誤并等待同事找時(shí)間修復(fù)錯(cuò)誤更有效。必須在錯(cuò)誤跟蹤系統(tǒng)中跟蹤錯(cuò)誤。然而,在遠(yuǎn)程工作環(huán)境中,人們?cè)诮厝徊煌臅r(shí)區(qū)工作,在配對(duì)測(cè)試會(huì)話中發(fā)現(xiàn)的錯(cuò)誤更有可能更快地得到解決。通過(guò)錯(cuò)誤進(jìn)行溝通和協(xié)作通常可以更有效地解決問(wèn)題。
解釋也有助于解釋者
通常,當(dāng)我們盡我們最大的能力解釋一種現(xiàn)象時(shí),我們往往會(huì)更好地理解我們剛剛解釋的現(xiàn)象。不僅聽(tīng)我們講話的人知道,而且我們也理解得更好。結(jié)對(duì)測(cè)試帶來(lái)的最重要的價(jià)值之一是結(jié)對(duì)可以增進(jìn)雙方的理解。這通常會(huì)帶來(lái)新的想法和問(wèn)題的解決方案,因?yàn)榻涣餍孪敕梢蕴岣邉?chuàng)造力。當(dāng)開(kāi)發(fā)人員試圖解釋新代碼如何工作時(shí),她可能會(huì)理解一開(kāi)始不太清楚的事情。當(dāng)測(cè)試人員解釋重現(xiàn)偶發(fā)問(wèn)題所遵循的操作順序時(shí),問(wèn)題的隱藏細(xì)節(jié)可能對(duì)他來(lái)說(shuō)變得顯而易見(jiàn)。
總結(jié)
可以在軟件開(kāi)發(fā)組中的任何角色之間進(jìn)行配對(duì)測(cè)試。在產(chǎn)品所有者、設(shè)計(jì)師、開(kāi)發(fā)人員和測(cè)試人員之間以及具有相同角色的同事之間。為了充分利用配對(duì),我們需要觀點(diǎn)的多樣性。多樣性可以帶來(lái)創(chuàng)造力。只要多樣性也能帶來(lái)建設(shè)性的反饋,結(jié)對(duì)測(cè)試就可以有效地提高我們對(duì)高質(zhì)量功能發(fā)布的信心。