|
|
Visual Studio 2005を活用した、テスト駆動開発とソフトウェア品質向上アプローチ |
第1回:テストは開発者から利用者の視点へ
著者:日本ユニシス 小川 英惠 2005/11/29
|
|
|
前のページ 1 2 3 4
|
|
Webテストと手動テスト
|
WebアプリケーションやWindowsアプリケーションなどのユーザインターフェースのテスト実行は自動化したいものだと思います。Webフォームのテスト実行の記録と自動化は、VS2005 Team SystemのWebテストの機能によって満たされます。
VS2003のユーザインターフェースのテスト実行機能はApplication Center Testで行えましたが、記録されるスクリプトをカスタマイズしたい場合は、VBScriptを修正しなければならず、厄介でした。
しかしVS2005 Team SystemのWebテストでは記録されるスクリプトがVisual C#やVisual Basicであるため、効率よくカスタマイズすることができます。
Windowsフォームのテストの自動化については、手動テストという形で提供されます。この手動テストというのは、自動化が困難なテストの場合にテスト手順をドキュメント化してくれる機能です。Windowsフォームのテスト実行の自動化機能は提供されないことは残念ですが、開発環境にこういったドキュメントが組み込まれることで、スムーズな開発ができると考えます。
|
負荷テストとコードプロファイラ
|
システム構築において、非機能要件の1つである性能要求を満たしているかを確認することは重要であり、システムテストにおいて負荷テストやパフォーマンス測定を行えます。
VS2005 Team Systemはロードテストという機能で、負荷テストをサポートします。例えば、Webテストの機能を利用し、複数ユーザ実行として実行するというシナリオで負荷テストが行えます。ロードテストでは、同時ユーザ数やその増加数、ネットワーク速度といった条件設定を行い、CPUやネットワークなどのリソース消費状況やレスポンスタイムやスループットの測定が可能です。
また、メモリなどのリソースがボトルネックになったり、一部のプログラムの負荷により大幅に時間がかかったりすることは、システムに致命的な影響を与えアーキテクチャレベルでの変更が発生するような状況に陥ってしまうことにもつながります。
このような、パフォーマンス要求を満たしているかのテストは、VS2005 Team Systemのプロファイリング機能であるコードプロファイラが有効です。コードプロファイラは、アプリケーションの動作時間とパフォーマンスに関する情報を収集し、処理の遅い箇所を特定することが可能です。
|
テストケース管理
|
テストケースの管理やテストの進捗管理、不具合状況の管理などのプログラム開発の進捗状況やテスト状況を適宜把握し、判断・指示を迅速に行うことが必要です。VS2005 Team Systemではテストケース管理としてTest Case Managementという機能があります。
Test Case Managementは、チームへのテスト実施状況の報告や情報共有を開発環境と一体化した仕組みとして提供し、テストを効率よく管理/実施することを可能にします。
|
おわりに
|
テスト駆動の有効性およびVS2005 Team Systemのテスト機能の概略を述べましたが、なんといってもVisual Studioの開発生産性の高さにプラスして、テストの機能が十分に加わったことにより、効率のよい開発が期待できます。
旧バージョンのVS2003では、開発という点では高いパフォーマンスを提供していたもののテストツールとなるとIDE(統合開発環境)にテストツールが統合されておらず、開発者が自分でツールを探してVS2003にアドインして実行するという不便さがありました。
同様にVS2005単体には、テストをサポートするための、すべてのツールがそろっているわけではありません。また、VS2005に含まれるツールがテストを必ずしも十分に満たしてくれるというわけでもありません。
しかし、VS2005 Team Systemにおいては開発生産性に加え、テストツールが正式機能として搭載&機能アップされて、格段に開発がしやすくなりました。
次回以降は、実際にVS2005 Team Systemを利用する方法とその有効性を検証し、テストおよびテスト駆動をどのように支えてくれるのかを、より具体的に解説したいと思います。
|
前のページ 1 2 3 4
|
|
|
|
著者プロフィール
日本ユニシス株式会社 小川 英惠
テクノロジコンサルティングサービス本部 コンピテンスセンタ .NET開発コンサルティング所属
オープン系システム開発を中心とした業務を担当し、システム構築から運用・サポートまでの一連の業務を経験。2002年より、.NET開発においてアーキテクトの経験を積み重ね現在に至る。「個人技ではなく、チームとして成果をだすこと」がモットー。
|
|
|
|