デバッグ・サイクルを高速に回してコード品質を改善する(1) ―― 「繰り返しビルド&テスト」に必要な環境とは
[コラム] 週に何回ビルドしてますか?
情報処理推進機構 ソフトウェア・エンジニアリング・センター(IPA SEC)の報告によると,日本国内で「非ウォータ・フォール型開発」を行っているのは全体の10%程度であり,残りはウォータ・フォール型開発だそうです(非ウォーターフォール型開発に関する調査結果を参照).品質を確保できれば,無理にアジャイル・プロセスを導入する必要はないと思われます.また,筆者がこれまでお会いした方で,「うちの会社(プロジェクト)はウォータ・フォールだから,CIは必要ありません」と言われる方もおられました.
しかし,そのような開発プロジェクトでもテスト工程を考えてみると,「コード修正-->ビルド-->単体テスト-->インテグレーション・テスト」の工程を,短いサイクルで繰り返し行っています.これが,ウォータ・フォール型開発のプロセスでは「テスト」フェーズに隠れている,「バグ修正」フェーズになります.プロジェクトの公式ビルドは週に1回(これが,管理者の考える「ビルド」)のペースで行っている場合でも,公式ビルドの間で,数えきれないほどのビルドが行われています.
継続的インテグレーションを導入することで,コードのコミットをトリガとしてビルドからテストの工程を自動実行し,各担当者のビルドの正当性を確認することができれば,開発期間を通じて品質が下がることはないでしょう.追加されたテストを,自動化の対象としてさらに追加していくことで,最終製品の品質を保証することができます.
まきた・ひろふみ
(株)エーアイコーポレーション