SCRUM/Agile 與自動化測試的關係

SCRUM/Agile 與自動化測試的關係

這篇文章主要說明自動化測試的執行與 Agile/SCRUM practices的關係,

其實兩者可以說是沒有關係也可以說是有關係。

兩者可以說沒有關係,因為這些自動化測試工具在 Agile/SCRUM之前就已經誕生,

自動化測試工具的誕生不是特別為 Agile/SCRUM practices設計,

自動化測試核心要解決的問題是減少重複性的操作、驗證實際與預期結果、產生測試報告結果。

既然Agile/SCRUM變成熱門的話題,因此目前許多的工具都想要跟 Agile/SCRUM拉上關係。

這篇文章我們就來探討,”自動化測試” and “Agile/SCRUM”到底有什麼關聯?

 

Agile/SCRUM (敏捷開發)vs 自動化測試

自動化測試的方法或是工具不會受到團隊用怎樣的開發流程而有很大的差異

如果要將 Agile + Automation Testing 兩者合一的話,可以設定下列目標

  • 開發與測試同步進行
  • 每個人都為品質負責 (開發團隊可以執行 UnitTest,測試團隊可以執行 Acceptance Automation testing)
  • 持續的整合、建構與測試 + 客戶的反饋
  • 每個 iteration 定義 working software 用自動化測試盡早發現問題

Agile/SCRUM所但來的挑戰

我們假設兩個星期一個 iteration,有10個工作日。

對於測試團隊來說,測試活動細分為下圖所示:

10day QA process

因此測試所遇到的挑戰為:

  • 有限時間內,如何與開發團隊緊密的合作,完成”開發” + “測試” + “自動化測試”!
  • 未完成的功能或是會經常修改的功能如何執行自動化測試,讓自動化測試程式可以重複被使用,提高 ROI

要解決這兩個挑戰,整個開發與測試團隊必須要緊密的合作並且對自動化測試有一定的共識。

要在軟體開發週期適當的規劃自動化測試,這邊筆者針對 SCRUM/Agile 的每一個階段說明:

Product Planning 階段

如果這個專案有機會從產品一開始規劃的時候就有測試團隊的參與,可以考慮下列測試事項;

  • 根據商業價值決定哪些功能是測試的主軸與優先權重,例如,這次主打的功能是報表。因此,報表的測試應該要佔比較大的比重。
  • 定義自動化測試的範圍。自動化測試的目標不是追求 100%自動化測試,而是先追求 ROI 比較高的測試範圍進行自動化測試。
  • 選擇適當的測試工具

 

Sprint Planing

執行階段,針對每一次要完成的 sprint安排一定的 backlog

自動化測試的工作其實算是 non-functional ,因為不會有產品把”自動化測試”列為是產品功能

因此,開發與測試部門在進行工作的展開時,必須要將自動化測試的工作做一定的計畫

自動化測試的規劃可以分為兩種策略,

  • 一種是前面的 sprint 1, sprint 2 …先完成整個自動化測試所需的環境、測試的架構等。缺點是初期看不出成效,但是慢慢到後期才會發生自動化測試的功效
  • 另外一個策略是優先完成重複性步驟的工作,接著再完成整體測試的架構。優點是很快就可以得到自動化測試的成效,缺點是之後需要整個團隊的整合、整體測試的架構與測試報告時,需要再進一步加工。

哪一種比較好呢?其實都可以。因為該完成的工作都要完成。只是先坐後座而已

實務筆者比較建議優先完成重複性步驟的工作。

因為比較快看到成效的情況下,團隊會慢慢有信心,越來越多人一起完成。也比較容易得到管理階層的支持。

之後,再完成整體的測試架構會更容易。

另外,開發團隊可以思考 “Design for Automation”,比較簡單可以做的事,在每個網頁的原件定義好自動化測試需要的 Tag

例如,下面這個例子。 Email 輸入欄位,定義好 id = “Email”。如此一來,測試開發就可以根據 id = “Email”對於網頁操作做自動化。

Sprint Review/Demo

這個階段,不外乎 Demo working software

看看完成的功能是否可以解決客戶問題,提供原本預期的產品服務價值

如果可以,可以利用自動化測試 來進行 Demo,這樣一來,除了可以展示產品功能,也可以展示自動化測試的成效。

Retrospective

團隊(QA, RD, PM)聚一起討論下一次 sprint 怎樣做會更好。對於自動化測試演進的方向可能會是:

  • 哪些設計上可以幫助自動化測試. 例如:定義 ID
  • 自動化測試還可以包含哪些範圍
  • 有沒有哪些工具可以幫助自動化測試
  • 是否要導入 Data Driven Testing
  • 是否要導入 Behavior Driven Testing
  • 自動化測試結果報告如果讓整個團隊了解品質狀況
  • ……

透過每次的 sprint 規劃、執行、demo與回顧,自動化測試就會慢慢的越來越穩定與成熟。

 

 

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *