Object-oriented-analysis-design-ooad-testing-quality-assurance
OOAD-テストと品質保証
プログラムコードを作成したら、テストして、その中のすべてのエラーを検出して処理する必要があります。 多くのスキームがテスト目的で使用されています。
別の重要な側面は、プログラムが目的とする目的を果たしているかどうかを確認するプログラムの目的適合性です。 フィットネスはソフトウェアの品質を定義します。
オブジェクト指向システムのテスト
テストは、ソフトウェア開発中の継続的なアクティビティです。 オブジェクト指向システムでは、テストには3つのレベル、つまり単体テスト、サブシステムテスト、およびシステムテストが含まれます。
単体テスト
単体テストでは、個々のクラスがテストされます。 クラス属性が設計に従って実装されているかどうか、およびメソッドとインターフェイスにエラーがないかどうかが確認されます。 ユニットテストは、構造を実装するアプリケーションエンジニアの責任です。
サブシステムのテスト
これには、特定のモジュールまたはサブシステムのテストが含まれ、サブシステムリードの責任です。 サブシステムと外部との相互作用だけでなく、サブシステム内の関連付けのテストも含まれます。 サブシステムテストは、サブシステムの新しくリリースされた各バージョンの回帰テストとして使用できます。
システムテスト
システムテストには、システム全体のテストが含まれ、品質保証チームの責任です。 チームは、新しいリリースをアセンブルするときに、システムテストを回帰テストとして頻繁に使用します。
オブジェクト指向のテスト手法
グレーボックステスト
オブジェクト指向プログラムのテスト用に設計できるさまざまなタイプのテストケースは、グレーボックステストケースと呼ばれます。 グレーボックステストの重要なタイプのいくつかは次のとおりです-
- 状態モデルベースのテスト-これには、状態カバレッジ、状態遷移カバレッジ、および状態遷移パスカバレッジが含まれます。
- ユースケースベースのテスト-各ユースケースの各シナリオがテストされます。
- クラス図ベースのテスト-各クラス、派生クラス、関連付け、および集計がテストされます。
- シーケンス図ベースのテスト-シーケンス図のメッセージのメソッドがテストされます。
サブシステムテストの手法
サブシステムテストの2つの主なアプローチは次のとおりです-
- スレッドベースのテスト-サブシステムで単一のユースケースを実現するために必要なすべてのクラスが統合され、テストされています。
- 使用ベースのテスト-階層の各レベルのモジュールのインターフェイスとサービスがテストされます。 テストは、個々のクラスから始まり、クラスで構成される小さなモジュール、徐々に大きなモジュール、そして最後にすべての主要なサブシステムに進みます。
システムテストのカテゴリ
- アルファテスト-これは、ソフトウェアを開発する組織内のテストチームによって実行されます。
- ベータテスト-これは協力顧客の選択グループによって実行されます。
- 受け入れテスト-これは、成果物を受け入れる前に顧客によって実行されます。
ソフトウェア品質保証
ソフトウェア品質
SchulmeyerとMcManusは、ソフトウェア品質を「ソフトウェア製品全体の使用に対する適合性」と定義しています。 良質のソフトウェアは、本来行うべきことを正確に実行し、ユーザーが定めた要件仕様の満足度の観点から解釈されます。
品質保証
ソフトウェア品質保証は、ソフトウェア製品が使用に適している程度を決定する方法論です。 ソフトウェアの品質を決定するために含まれている活動は-
- 監査
- 標準とガイドラインの開発
- レポートの作成
- 品質システムの見直し
品質要因
- 正確性-正確性は、ソフトウェア要件が適切に満たされるかどうかを決定します。
- ユーザビリティ-ユーザビリティは、ソフトウェアをさまざまなカテゴリのユーザ(初心者、非技術者、および専門家)が使用できるかどうかを決定します。
- 移植性-移植性は、ソフトウェアが異なるハードウェアデバイスを備えた異なるプラットフォームで動作できるかどうかを決定します。
- 保守性-保守性は、エラーを修正し、モジュールを更新できる容易さを決定します。
- 再利用性-再利用性は、モジュールとクラスを他のソフトウェア製品の開発に再利用できるかどうかを決定します。
オブジェクト指向のメトリック
メトリックは、プロジェクトメトリック、製品メトリック、プロセスメトリックの3つのカテゴリに大きく分類できます。
プロジェクト指標
プロジェクトメトリックにより、ソフトウェアプロジェクトマネージャーは進行中のプロジェクトのステータスとパフォーマンスを評価できます。 次のメトリックは、オブジェクト指向ソフトウェアプロジェクトに適しています-
- シナリオスクリプトの数
- キークラスの数
- サポートクラスの数
- サブシステムの数
製品メトリック
製品メトリックは、開発されたソフトウェア製品の特性を測定します。 オブジェクト指向システムに適した製品メトリックは次のとおりです-
- クラスごとのメソッド-クラスの複雑さを決定します。 クラスのすべてのメソッドが同等に複雑であると想定される場合、より多くのメソッドを持つクラスはより複雑であるため、エラーの影響を受けやすくなります。
- 継承構造-いくつかの小さな継承ラティスを持つシステムは、単一の大きな継承ラティスを持つシステムよりもよく構造化されています。 経験則として、継承ツリーのレベル数は7(±2)を超えてはならず、ツリーのバランスをとる必要があります。
- 結合と結合-結合度が低く、結合度が高いモジュールは、再利用性と保守性が向上するため、設計が適切であると見なされます。
- クラスの応答-クラスのインスタンスによって呼び出されるメソッドの効率を測定します。
プロセス指標
プロセスメトリックは、プロセスのパフォーマンスを測定するのに役立ちます。 それらはすべてのプロジェクトで長期間にわたって収集されます。 これらは、ソフトウェアプロセスの長期的な改善の指標として使用されます。 一部のプロセスメトリックは次のとおりです-
- KLOC(キロ行コード)の数
- 欠陥除去効率
- テスト中に検出された平均障害数
- KLOCあたりの潜在的な欠陥の数