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