Flowbird社
ヘルシンキはフィンランドの首都であり、政治、金融、教育、研究の中心地です。エコノミスト・インテリジェンス・ユニット(EIU)の2017年版世界で最も住みやすい都市ランキングでは、世界で9番目に住みやすい都市にランクインしており、フィンランドで最も人口の多い都市でもあります。都市部の人口が150万人を超えるため、近代的な交通機関は通勤する人々のニーズを満たす上で不可欠です。
ヘルシンキ市は、住民に優れた公共交通サービスを提供することに重点を置いており、既存の市境に基づく料金システムを、より新しいゾーン制の料金モデルに刷新することを決定しました。これにより、市境を越える交通機関の料金が大幅に安くなります。この大規模プロジェクトには、すべてのバス、路面電車、地下鉄、地方鉄道、フェリーのための、新しく改良された発券、情報、サポート、メンテナンスシステムの開発も含まれていました。
2012年、Flowbird社は、Tieto Finland OY社およびヘルシンキ地域交通局(HSL)と提携して、ヘルシンキの発券システムプロジェクトに複数の車両技術を提供および統合する事業者として選定されました。Flowbird社(Cale社と合併後、現在はFLOWBIRD)は、スマートシティ向けの発券システムと、ドライバーコンソール、チケットバリデーター、チケット販売機、発券システム、パーキングメーター、バックオフィスソリューションなどの都市モビリティソリューションの提供を専門とするフランスの企業です。
課題
Flowbird社、Tieto社、HSL、およびプロジェクトに関わるその他すべてのパートナーは、6つの異なる国に分散していました。彼らは、約50の設定および監視モジュール、Webサーバーとして300の販売およびサービス拠点、そしてAndroid上で動作する6,000以上の車載および路上デバイスを含む、大規模な発券システムに取り組む必要がありました。3つの異なる国に8つ以上の技術チームとビジネスチームが分散していたため、Flowbird社は、ベンチャーを成功させるためには、チーム間の連携とコミュニケーションをより深める必要があることを認識していました。
最初のステップは、ビジネスチームと技術チームが、開発中の広範な発券システムのさまざまな機能に関して、同じ認識を持っていることを確認することでした。ここでCucumberStudioとBDDが登場します。ビヘイビア駆動開発(BDD)とは、コラボレーションを通じて一般的なユーザーの行動を模倣したシンプルなテストケースを定義することにより、製品の機能に対する共通理解を生み出す、アジャイルなソフトウェア開発手法です。CucumberStudioは、クラウドベースのアジャイルテスト管理ツールであり、チームが受け入れ基準に基づいてテストシナリオを共同設計し、テスト実行を計画し、手動と自動の両方のテスト結果を維持するのに役立ちます。CI/CDパイプラインと直接統合できるネイティブBDDフレームワークとGherkinのサポートにより、CucumberStudioは、すべてのプロジェクト関係者間のリアルタイムの議論とコラボレーションを可能にし、リビングドキュメントを通じてプロジェクトの最新の状態を反映するのに役立ちます。
Flowbird社とそのパートナー企業は、アジャイルテストとBDDフレームワークにCucumberStudioを使用することに加えて、プロジェクト管理にJira、テスト自動化にCucumber、継続的インテグレーションにJenkinsを使用しました。
ソリューション
Flowbird社はこの巨大なプロジェクトに3つのアプローチで取り組みました。最初に、国際的なチームと協力して、この複雑な発券システムを構成するすべての異なるユニットを決定しました。次に、Gherkin構文を使用してBDDでこれらの個々のユニットまたは「モジュール」の動作を定義し、テストシナリオを作成しました。Flowbird社のデリバリーマネージャーであるRaphaël Citeau氏は、「CucumberStudioのBDDとGherkin構文のネイティブサポートにより、テストシナリオの設計が明確になります」と述べています。CucumberStudioにより、Flowbird社はスマートなテストフレームワークを構築し、大規模にBDDテストケースシナリオを開発することができました。
また、チームと顧客の間で共通理解を促進し、新機能を開発するために、共通のビジネス用語が必要であることに気付きました。Flowbird社は「使用しているテクノロジーに関係なく、あらゆるタイプのチームに適合する1つの方法」を探していたため、「CucumberStudioでのテスト手順の再利用により、用語を標準化し、チームのコラボレーションを改善することができます」とRaphaël氏は説明しました。さまざまなモジュールが定義されているため、BDDはこの普遍的なビジネス用語を作成する絶好の機会でした。このビジネス用語は、将来さらにモジュールを作成および定義するために使用されました。このようにして、機能ユニットテストシナリオを作成、再利用、そして迅速に自動化することができ、かなりの時間を節約できました。
次のステップは、以前に定義された機能ユニットテストから統合テストを作成することでした。これらの統合テストは、さまざまなモジュールをまとめてアセンブルするための基礎となり、自動化されました。最終的に、すべてのモジュールをまとめてアセンブルすることにより、完全なシステムが構築されました。このため、Flowbird社は統合手順を使用して、必要なハードウェアコンポーネントとアセンブルされた発券システムモジュールの統合を検証するエンドツーエンドテストを作成しました。
共通のビジネス用語を使用して共通理解を促進し、BDDにGherkin構文を使用することに加えて、Flowbird社はCucumberStudioでテストリファクタリングを実践して、高品質なソフトウェアを作成しました。テストをリファクタリングすることで、重複を特定し、これらのテストの単一保守ポイントを作成することができました。また、テストシナリオを自動的にリファクタリングすることも可能でした。つまり、1つのテスト手順を変更することで、依存するテスト手順を持つすべてのテストが自動的に更新され、時間を節約できます。
BDDでテストシナリオを作成して自動化するだけでなく、CucumberStudioはFlowbird社に、すべての機能をテストケースとして管理し、中央リポジトリに保存し、組織全体で共有するための場所も提供しました。これは、テストケースの最新バージョンを反映し、ビジネス関係者、開発者、テスターが同じ認識を持つようにすることで、テストの保守を簡素化しました。これがリビングドキュメントの真の価値でした。Flowbird社はまた、スクラムとして知られる、2週間ごとの反復的なソフトウェア開発フレームワークを実践しました。これにより、Flowbird社はコラボレーション、適応性、顧客価値の提供への注力を通じて、プロジェクトに段階的な改善を加えることができました。
利点と主な結果
Flowbird社はCucumberStudioとBDDを使用して、1,635の機能ユニットテスト、990のモジュール統合テスト、475のシステムテスト、200のエンドツーエンドテストを作成しました。しかし、ビジネスの観点からは、1,690のテスト手順しか作成していません。残りの1,610のテスト手順は、以前に開発された手順から再利用できるため、手動で作成する必要はありませんでした。「テストのリファクタリングとステップのオートコンプリート機能のおかげで、わずか1,700の手順を実装することで、3,300以上の機能テストを自動化できました。これは間違いなく、大規模な自動テストを加速するための鍵でした」とRaphaël氏は述べています。以前に作成されたテストシナリオを再利用し、300人年以上のマニュアル作業を自動化することで、Flowbird社とそのパートナーチームは長年の時間を節約できました。
さらに、チーム側からの成果物の遅延は1週間を超えることはありませんでした。これは、BDDフレームワークで記述されたテストケースまたはユーザーストーリーの自動化に伴う時間の節約にも起因しています。さらに、開発またはテストにおけるあらゆる種類のやり直しは、チームが行ったすべての作業の3%未満でした。
CucumberStudioのリビングドキュメント機能により、機能を変更し、それぞれのテストシナリオをシームレスに更新することもできました。Flowbird社は、最初の800の機能のうち20%をプロジェクトに影響を与えることなく変更できることを発見しました。これは、さまざまなチームが達成しようと努力したアジャイルマインドセット、つまりユーザーに最大の価値を提供する小さな段階的変更を可能にするマインドセットを強化するものです。
Flowbird社のお気に入りのCucumberStudioの機能について尋ねられたところ、Raphaël氏は、「CucumberStudioは非常に使いやすく、Jiraや継続的インテグレーションプロセスにスムーズに統合できます。手動テストにも適していますが、明らかに自動化を指向しています」と述べています。
そのため、次回ヘルシンキを訪れて、風光明媚なフィンランドの海岸線に沿ってローカルの通勤電車に乗るときは、あなたの経験が…