DevOps時代の開発とテスト

CI/CDの実現のために、それぞれのプロセスをスムーズに「つなぐ」必要性は理解できたと思います。では、ソフトウェア開発で時間を多くかける「開発」と「テスト」のアジリティを上げるにはどうすればよいでしょうか?
Fadi Stephan氏の「Testing From Day 1」は、DevOps時代の開発と、それに伴うテストについて、とても分かりやすく説明されたセッションでした。
例えば、アジャイル開発をはじめようとして、タイムボックス(スプリントやイテレーション)のサイズを2週間にしたとします。もし、それぞれのスプリントで、要件定義、設計、コーディング、テストをしていたらどうでしょう? これはアジャイルな開発になるでしょうか?

「最後にテストする」のではなく、このセッションのタイトル「Testing From Day 1」のとおり、「最初からずっとテストしていく」のが、フィードバックサイクルを繰り返していくDevOps時代のテストなのです。
スクラムを導入し、1か月(4週間)のスプリントを採用した場合はどうでしょう? 1つのスプリントの中で要件定義して、設計して、コーディングにとても時間がかかってしまい……残りのわずかな時間でテストをしていませんか?

こういったウォーターフォールモデルを小さくしただけのアジャイル開発をよく見かけますが、タイムボックスが設定されただけで、小さく開発をしていくことにはなるでしょうが、本質的な変化は起きていません。

開発やテストが「工程である」という認識が残っている限り、この問題は解決しません。テストはテスターだけではなく、開発に関わる全員の責任となり、1つのスプリントで同時並行的に実行しなければ、漸進的な開発による恩恵は得られないでしょう。
そして、自動化できるテストがあれば、できる限り自動化していかなければアジリティを高められません。また、機能レベルのテストがUIを通さずできるようなアーキテクチャも必要になってきます。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- 「Agile 2018」レポート連載記事一覧
-
- モバイルアプリ開発における継続的デリバリー、そしてDevOps時代のための開発とテスト【A...
- アジャイル開発におけるテストとは? その未来とは何か?【Agile 2018】
- アトラシアン社の組織づくりやスケールさせるためのヒント【Agile 2018】
- この記事の著者
-
Agile 2018レポートチーム(株式会社メルカリ)(アジャイル ニセンジュウハチ レポートチーム)
菅原 史晴 QAエンジニア 木下 祐実 QAエンジニア 近藤 久志 QAエンジニア 藤原 大 Automation & QA グループ エンジニアリングマネージャ
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
