Flowbird
赫爾辛基是芬蘭的首都,也是該國最重要的政治、金融、教育和研究中心。根據經濟學人智庫(EIU)的2017 年全球宜居城市報告,赫爾辛基被評為全球第九宜居城市,同時也是芬蘭人口最多的城市。赫爾辛基的都市人口超過 150 萬,因此現代化的運輸設施對於滿足其通勤人口至關重要。
赫爾辛基致力於為居民提供優質的公共運輸服務,促使該市將現有的以市轄區為基礎的票價系統改為新的以區域為基礎的票價模式,這將使跨市運輸更加便宜。這項大規模專案還包括為所有公車、電車、地鐵、當地鐵路和渡輪開發新的和改進的票務、資訊、支援和維護系統。
2012 年,Flowbird 被選中與 Tieto Finland OY 和赫爾辛基區域運輸管理局(HSL)合作,為赫爾辛基的票務系統專案交付和整合多種車輛技術。Flowbird(在與 Cale 合併後現在稱為 FLOWBIRD)是一家法國公司,專門為智慧城市提供票務系統,並提供城市移動解決方案,如駕駛員控制台、票證驗證機、自動售票機、票務系統、停車計費器和後台解決方案。
問題
Flowbird、Tieto、HSL 以及參與該專案的所有其他合作夥伴分佈在 6 個不同的國家/地區。他們必須開發一個大型票務系統,其中涉及大約 50 個配置和監控模組、300 個作為 Web 伺服器的銷售和服務點,以及 6,000 多個在 Android 上運作的車載和街道級裝置。由於有超過 8 個分佈在 3 個不同國家的技術和業務團隊,Flowbird 意識到,更深層次的協作和溝通是讓團隊更緊密合作以取得成功專案的必要條件。
第一步是確保業務和技術團隊對於正在開發的大型票務系統的不同功能有相同的理解。這就是 CucumberStudio 和 BDD 發揮作用的地方。行為驅動開發(Behavior Driven Development,BDD)是一種敏捷軟體開發方法,它通過定義模仿使用者常見行為的簡單測試案例,來建立對產品功能的共同理解。CucumberStudio 是一種基於雲端的敏捷測試管理工具,可幫助團隊根據驗收標準共同設計測試情境、規劃測試執行,並維護手動和自動化測試結果。CucumberStudio 具有原生 BDD 框架和 Gherkin 支援,可直接與 CI/CD 管道整合,實現所有專案利害關係人之間的即時討論和協作,並通過即時文件反映專案的最新狀態。
除了使用 CucumberStudio 進行敏捷測試和 BDD 框架外,Flowbird 及其合作夥伴公司還使用 Jira 進行專案管理、使用 Cucumber 進行測試自動化,以及使用 Jenkins 進行持續整合。
解決方案
Flowbird 採用三管齊下的方法來處理這個龐大的專案。他們首先與國際團隊合作,確定構成這個複雜票務系統的所有不同單元。然後,他們使用 Gherkin 語法,通過 BDD 定義這些單個單元或「模組」的行為,以建立測試情境。Flowbird 的交付經理 Raphaël Citeau 說:「CucumberStudio 中對 BDD 和 Gherkin 語法的原生支援,為測試情境的設計帶來了清晰度。」CucumberStudio 允許 Flowbird 擁有一個智慧測試框架,並大規模開發 BDD 測試案例情境。
他們也意識到需要一個通用的業務術語,以便促進團隊和客戶之間對開發新功能的共同理解。Raphaël 解釋說:「CucumberStudio 中測試步驟的重複使用使我們能夠標準化術語並改善團隊協作」,因為 Flowbird 正在尋找「一種可以適用於所有類型團隊的方法,無論他們使用何種技術。」BDD 是創造這種通用業務術語的絕佳機會,因為定義了各種模組。這個業務術語用於在未來建立和定義更多模組。通過這種方式,可以創建、重複使用並立即自動化功能單元測試情境,從而節省大量時間。
下一步是從先前定義的功能單元測試中建立整合測試。這些整合測試將成為將不同模組組裝在一起的基礎,並且會被自動化。最後,通過將所有模組組裝在一起來構建完整的系統。為此,Flowbird 使用整合步驟來進行端到端測試,驗證所需硬體元件與組裝好的票務系統模組的整合。
除了使用一致的業務術語來促進共同理解,以及使用 Gherkin 語法進行 BDD 外,Flowbird 還使用 CucumberStudio 進行測試重構,以創建高品質的軟體。通過重構他們的測試,他們能夠識別重複項,並為這些測試創建單一維護點。也可以自動重構測試情境,這表示通過更改一個測試步驟,所有具有相關測試步驟的測試都會自動更新,從而節省時間。
除了使用 BDD 建立測試情境並將其自動化外,CucumberStudio 還為 Flowbird 提供了一個地方來管理他們的所有功能(作為測試案例),將其儲存在中央儲存庫中,並在整個組織中共享。這反映了測試案例的最新版本,並幫助業務利害關係人、開發人員和測試人員保持一致,從而簡化了測試維護。這就是即時文件的真正價值。Flowbird 還實踐了軟體開發的雙週迭代框架,稱為 Scrum。這使 Flowbird 能夠通過協作、適應性和專注於交付客戶價值來對專案進行漸進式改進。
效益與主要成果
Flowbird 使用 CucumberStudio 和 BDD 建立 1,635 個功能單元測試、990 個模組整合測試、475 個系統測試和 200 個端到端測試。然而,在業務方面,他們只建立了 1,690 個測試步驟。其餘的 1,610 個測試步驟不需要手動建立,因為它們可以重複使用先前開發的步驟。Raphaël 說:「由於測試重構和步驟自動完成功能,我們通過僅實作 1,700 個步驟就自動化了 3,300 多個功能測試!這絕對是加速大規模自動化測試的關鍵。」重複使用先前建立的測試情境,並自動化超過 300 個人年的手動工作,為 Flowbird 及其合作夥伴團隊節省了多年的時間。
此外,團隊的任何交付成果都沒有超過一週的延誤。這也歸功於使用 BDD 框架編寫的測試案例或使用者故事自動化所節省的時間。此外,開發或測試中的任何類型返工都只佔團隊完成的所有工作量的 3% 以下。
CucumberStudio 的即時文件功能也確保了功能可以更改,並且可以無縫更新相應的測試情境。Flowbird 發現初始 800 個功能中有 20% 的功能可以在不影響專案的情況下更改。這強化了不同團隊努力實現的敏捷思維模式;一種允許進行小的增量更改,從而為使用者提供最大價值的思維模式。
當被問及 Flowbird 在 CucumberStudio 中最喜歡的功能時,Raphaël 說:「CucumberStudio 非常容易使用,並且可以順利整合到 Jira 和我們的持續整合流程中。它也很適合手動測試,但顯然是以自動化為導向。」
因此,下次您訪問赫爾辛基並沿著風景如畫的芬蘭海岸線搭乘當地通勤鐵路時,請了解您的體驗