ソフトウェア開発において、不確実性にどのように立ち向かっていくかは大きな課題です。
PHPerとしては、開発中にいかにコード品質を上げるかといったことは大きな関心で、その一つの規律のとり方としてTDDを実践されてきた方は多いのではないでしょうか。
トークの表題であるATDDは、Acceptance Test Driven Developmentの略です。TDD Cycleよりももう一つ大きなスコープでのフィードバックループをテストによって駆動します。特にアジャイル開発の文脈で「Agile Testing」という一つのテーマ内で紹介されることが多い手法です。
ユニットテスト・コンポーネントテストをカバーするテストによって開発を駆動するTDDに対して、ATDDはよりビジネスフォーカスの強いテストによって開発を駆動します。ATDDの開発プロセスの実践によって、技術レイヤ横断的な製品全体の回帰テストの整備につながり、直接的な顧客価値となる外部品質の明確化・維持・向上が期待できます。
このトークでは次の内容について話します。
- ATDDとはなにか、Example-driven Developmentの考え方
- 前提となる「Agile Testing」の考え方
- ATDDを実践する開発プロセス
- テスト自動実行基盤の構築プロセス・構築例
- ATDDを実現するツール選定とツールを用いた「受け入れテスト自動化」
- エンドツーエンドなテスト構築(APIサービスとブラウザベースサービス)
- TDDからATDDへ、自動化テストピラミッドを登っていく
内容は特定技術の実装からインフラ・CI基盤、開発文化・プロセス自体と多岐にわたりますが、ソフトウェアテストという側面で開発を駆動させるあり方として参考にしていただければ幸いです。
https://fortee.jp/phperkaigi-2021/proposal/74efffd2-0ac3-4591-beaf-541f48879d6e