軟件開發(fā)中的結(jié)對測試
軟件開發(fā)就是培養(yǎng)不同的觀點(diǎn)。存在不同角色(如產(chǎn)品所有者、設(shè)計師、開發(fā)人員、測試人員、DevOps和項(xiàng)目經(jīng)理)的原因之一是在任何生命周期中都有不同的觀點(diǎn)。它可以是項(xiàng)目生命周期、產(chǎn)品生命周期、軟件開發(fā)生命周期、軟件測試生命周期等。產(chǎn)品負(fù)責(zé)人將以業(yè)務(wù)為導(dǎo)向。這一切都與我們發(fā)布的內(nèi)容及其對客戶的價值有關(guān)。開發(fā)人員更多地是實(shí)現(xiàn)驅(qū)動的。這都是關(guān)于如何在代碼中實(shí)現(xiàn)我們的功能。測試人員的觀點(diǎn)通常包括技術(shù)方面和業(yè)務(wù)方面。這一切都是關(guān)于建設(shè)性地批評產(chǎn)品并向利益相關(guān)者提供有價值的反饋。

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
























