Janet Gregory
協作的魔力#
當測試人員和程式設計師開始協作時,神奇的事情就會發生:
- 減少透過缺陷追蹤系統來回傳遞 bug 的時間浪費
- 更多時間用於開發滿足客戶期望的好軟體
- 在編碼開始之前就有許多機會啟動協作
驗收測試驅動開發(ATDD)#
測試人員可以幫助客戶使用 Fit(Framework for Integrated Test)等工具,以領域語言撰寫和自動化驗收測試。當這些測試在編碼前交給程式設計師時,團隊就是在實踐驗收測試驅動開發(Acceptance Test-Driven Development, ATDD):
- 程式設計師撰寫 fixture 來執行測試
- 編寫程式碼使測試通過
- 這些測試成為迴歸測試套件的一部分
這種協作的好處是功能測試能提早完成,讓測試人員有時間進行**探索性測試(exploratory testing)**或測試更大的工作流程。
測試人員的主動參與#
更進一步,測試人員可以在程式設計師開始編寫新功能之前就提供大部分測試想法。當詢問程式設計師是否有建議時,他們幾乎總能提供有助於提升測試覆蓋率的資訊,或幫助避免不必要的測試。
測試常常能釐清最初的想法,預防缺陷的產生。例如,在一個專案中,Fit 測試展示了查詢的預期結果,讓團隊在編碼前就發現了程式設計師對萬用字元搜尋的誤解。
程式設計師與測試人員的雙向合作#
- 程式設計師可以幫助測試人員建立成功的自動化——理解良好的程式設計實踐、幫助建立適合整個團隊的測試自動化套件
- 測試自動化的瓶頸往往在測試人員端,因此程式設計師與他們合作是有意義的
- 提供簡單工具讓測試人員儘早測試,也能給程式設計師另一個回饋循環
當測試人員不再認為自己的唯一工作是找 bug,程式設計師也不再認為測試人員是「來找碴的」,雙方都更願意合作。當程式設計師意識到自己有責任在程式碼中內建品質時,可測試性就自然成為副產品,團隊也能一起自動化更多的迴歸測試。成功團隊合作的魔力就此展開。