第4回:自動ビルドによるプログラムの品質・保守の有効性 (1/4)

個人からチームの生産性向上へ
チーム開発ここまできた、個人からチームの生産性向上へ

第4回:自動ビルドによるプログラムの品質・保守の有効性
著者:日本ユニシス  井上 浩司  2006/1/24
1   2  3  4  次のページ
はじめに

   ソフトウェアにおいてバグはつきものです。1人のプログラマが一度に書けるバグのないコードは最大で数十ステップといわれています。当然、業務システムは数万から数十万ステップにもなるわけですから、バグは存在していて当然です。

   そしてバグは、できるだけ早く見つけるに越したことはありません。早期に発見できたバグは、問題の追及が比較的楽になるからです。逆にかなり前から潜んでいたバグは、考慮すべきソースコードの範囲が広くなるために問題の追及が困難になってしまいます。

   そこでXP(eXtreme Programming)などのアジャイル開発プロセスでは、常時結合(Continuous integration)というプラクティスが提唱されています。

   これは、「最新のソースコードを常に自動テストし、常に動作するソースコードを入手できる状態にしておく」ことです。これにより開発の早い段階からバグを発見することができるため、品質が向上します。

   またバグは、開発フェーズだけに存在している訳ではありません。本番運用後にも突如として発生するものです。そのため、保守フェーズにもテストは必要です。常時結合を考えると、つい開発フェーズだけに目を向けがちですが、保守フェーズまでも含めたテストの枠組みを考えておく必要があります。

   というわけで本連載「チーム開発ここまできた、個人からチームの生産性向上へ」の最終回は、Visual Studio 2005 Team Foundation Server(VS2005 TFS)の自動ビルドによるプログラムの品質および保守面での有効性について考察していきます。


常時結合しないときの問題

   Visual Studio 2005以前でもテストの自動化は行っていました。例えば、テスト自動化のためのツールであるNUnitを使い、テストプログラムを記述してきました。


   しかしテストの自動化までは行っても、テストの実行を自動化する(常時結合)まで行っているプロジェクトそれほど多くはないと思います。そして、常時結合を行わない場合、次のような問題が発生する可能性があると考えます。

   例えばプログラマは開発フェーズにおいて、とにかく自分の担当分の単体テストと実装が完了し、報告できればよいと考えます。ですから、テストプログラムで環境に依存するコードを記述していても気にしません。つまりデバッグ用のログを特定のドライブに出力するようにソースコードを記述するハードコードのような場合です。

   このような場合、本番後に発生した問題の修正後、リグレッションテストのためにすべてのテストを実行しても、テストが動作しないことがあります。

   環境依存しているテストプログラムの問題は保守フェーズに表面化するわけですから、開発フェーズの時にはそのプログラムに問題があるとは気づきにくくなります。

   往々にしてプロジェクトの初期フェーズにおいては、開発チームの意見が取り入れられがちです。というのも、とりわけモジュールが完成することに注力しているからです。

   そのためプロジェクトの立ち上げ段階で、「常時結合までは不要である」と判断されることが多いです。

1   2  3  4  次のページ


日本ユニシス株式会社 井上 浩司
著者プロフィール
日本ユニシス株式会社  井上 浩司
総合技術研究所 所属
オープンミドルウェアMIDMOST for .NETの開発や、MSCSを補完するACABの開発に従事しています。


INDEX
第4回:自動ビルドによるプログラムの品質・保守の有効性
はじめに
  VS2005 TFS以前の常時結合と問題点
  VS2005 TFSの自動ビルドの概要
  自動ビルドの結果
チーム開発ここまできた、個人からチームの生産性向上へ
第1回 Visual Studio 2005によるプロジェクトの進捗管理
第2回 Visual Studio 2005の変更管理の有効性
第3回 成果物の管理とプロジェクトのコミュニケーション向上
第4回 自動ビルドによるプログラムの品質・保守の有効性
Visual Studio 2005を活用した、テスト駆動開発とソフトウェア品質向上アプローチ
第1回 テストは開発者から利用者の視点へ
第2回 Visual Studio 2005で進めるテスト駆動開発
第3回 Visual Studio 2005 Team Systemで補うテスト駆動開発
第4回 チーム開発における品質向上策とVisual Studio 2005
開発ライフサイクルとVisual Studio 2005という選択肢
第1回 開発ライフサイクルが生むメリット
第2回 アーキテクチャ策定における有効性を探る
第3回 Visual Studio 2005による開発とテスト環境
第4回 チーム開発とVisual Studio 2005 Team Foundation Server

人気記事トップ10

人気記事ランキングをもっと見る