Visual Studio Team Systemによる実践
そこで、Visual Studio Team System 2008(以下、VSTS)の場合を考えてみる。VSTSは複数の製品で構成されるが、その中で各Team EditionはVisual Studio 2008 Professional Edition(以下、VS2008 Pro)の全機能に加え各エディションで目的に応じた最適な統合開発環境を開発チームに提供している。
Development Editionでは、実装工程時に品質を作り込むための機能を包括的に提供しており、検証や確認作業をカバーする機能が包含されている。コーディングのプラクティスをチェックするためのコード分析機能や、ソースコードの変更のしやすさを数値化するコードメトリックス機能、単体テストフレームワーク(VSTSおよびVS2008 Proで提供)およびコードカバレッジ機能、ソースコードの実行状況をレポートしてボトルネック箇所を検知するプロファイラ機能などは、Visual Studioでの開発作業の延長線上で行えるようになっている。
特に、単体テスト機能では開発対象のソースコードに一切影響を与えない形でテスト用のプログラムコードを記述し、即座にテストが実行できる。繰り返し何度でもテストを実行することも容易だ。
VSTSのコードカバレッジ機能を併用すれば、単体テストがソースコードのどれくらいをカバーできているかを把握することができるため、テストの網羅性、つまりソースコードの信頼性を記録することができる。これらは、テスト駆動開発を実践するにも多くの支援を提供してくれる。
これらの検証や確認作業は、Visual Studioの統合開発環境上で行えるため、チームメンバー全員が同じ機能を同じように利用することができる環境が即座に整うことになる。
(画像をクリックすると別ウィンドウに拡大図を表示します)
Visual Studio Team Systemによるチーム開発環境のススメ
VSTSには前回までで紹介したTeam Foundation Server(以下、TFS)も含まれる。Development Editionなどの各Team EditionとTFSを併用することでより付加価値を得ることができる。例えば、コード分析の実施の徹底や、あらかじめ設定しておいた単体テストが成功していないとソースコードをチェックインできないようにするチェックインポリシーを設定したりすることもできる。変更セットのサポートにより、ソースコードと単体テストのコードを1つの塊として認識できることも大きな特長だ。
そして、TFSのチームビルド機能により、ビルドサーバ上での自動ビルドが実現できるだけではなく、このビルドのプロセスにおいてコード分析や単体テストなどのテストの自動実行と成功/失敗の検知までも自動化することができる。これを用いてソースコードのチェックインと同時に、ビルド、コード分析、単体テストの実行を行う継続的インテグレーションもサポートしている。これはソースコードが結合(共有)されたと同時に、結合されたソースコードに対しての評価を行い、バグの混在を察知し、開発者に知らせてくれるものだ。
ここではVSTSに含まれる製品それぞれの説明は割愛するが、詳しくは「Visual Studio 2008製品情報」を参照いただきたい。
本連載ではバグ管理を見つめ直し、チーム開発の在り方、そしてチーム開発における開発環境の在り方の1つの解を提示したつもりである。バグ管理とソースコード管理の統合という全体最適と、さらにはそれらを利用する開発チームメンバーのロールごとに特化した個別最適な環境を用意することがバグを作り込まないために重要であることをご理解いただければ幸いだ。そして、Visual Studio Team Systemはその1つの解として、提供されている。また、本連載に関する質問は著者のブログでも受け付けている。