比較表
比較基準 | 単体テスト | システムテスト |
---|---|---|
基本 | コンポーネントの機能検証に焦点を当てています。 | 大規模システムに統合された後でシステムを検証します。 |
フォロー | モジュール仕様 | 要求仕様 |
コード詳細の可視性 | 提供された | 提供されていない |
足場 | 必須 | ドライバー/スタブは不要 |
強調 | 単一モジュールの動作 | システム機能 |
単体テストの定義
単体テストは、ソフトウェア内の最小単位を実証する手法です。 ソフトウェアのこれらの最小コンポーネントは個別にテストされています。 ドライバコンポーネントは、テスト対象のコンポーネントに対するメソッド呼び出しを生成します。 メソッドを利用するコンポーネントはスタブとして模倣されています。 これらのスタブは、置き忘れられたメソッドの最初の代替品です。
単体テストはホワイトボックステストによって行われ、単体テストの手順は複数のコンポーネントに対して同時に実行されます。 それが無視されるなら他のテストが不確実になるのでそれはモジュールインターフェースに沿ってデータの適切な流れをテストすることを強調します。
スタブの操作
- スタブは、コンポーネントのタスクのわかりやすく書かれた模倣を実行できます。
- コンポーネントの実行後にメッセージを表示できます。
上記の操作のいずれかを一度に実行できます。 単体テストはソフトウェアテストの重要な部分であり、開発、デバッグ、サウンドデザイン、ドキュメンテーション、およびフィードバックメカニズムの高速化を図り、さらに全体的なコストを削減します。
システムテストの定義
システムテストはシステムの動作を完全に検証します。 さまざまなテストを順に実行します。 ただし、これらのテストには明確な意図があり、すべてのシステムコンポーネントが統合された方法で正しく機能しているかどうかを確認します。
このテストでは、テストケースは要件仕様に従って設計されており、そのコードはブラックボックスと似ていると言われています。 システムの構造に関する幅広い知識と可視性を持つ開発者が、通常システムテストを実行します。
システムテストの種類
システムテストにはいくつかの形式がありますが、そのうちのいくつかを以下に説明します。
- 回復テスト :このタイプのテストでは、適切な回復プロセスをチェックするためのいくつかの点でソフトウェアが拒否されます。
- セキュリティテスト :セキュリティテストはセキュリティメカニズムを検証し、システムが侵入するのを防ぎます。
- ストレステスト :量、頻度、量などのリソースの異常な状態が要求されるテスト手法です。
- パフォーマンステスト :パフォーマンステストは、システム全体に関連するソフトウェアのランタイムパフォーマンスに焦点を当てています。
単体テストとシステムテストの主な違い
- 単体テストはモジュールの仕様で機能します。 それとは反対に、システムテストはハードウェアと同様にソフトウェアのための統合要求仕様に従います。
- 単体テストでは、コードの詳細がテスターに表示されますが、システムテストではそうではありません。 その理由は、単体テストはモジュールの開発者が実行できることですが、システムテストは、テスト担当者と開発者が別々の操作を実行するための2人の異なるタスクであるという大きなタスクです。
- ユニットテストは、生成されたコードがソフトウェアの一部ではなく、その唯一の目的がテストを中止することである場合、足場の手法を使用します。 それどころか、システムテストでは足場手法は使用されません。
- 単体テストでは、1つのモジュールに重点が置かれていますが、システムテストでは、システム全体の機能が考慮されています。
ソフトウェアテスト戦略におけるユニットテストとシステムテストの関係
以下の図によると、ユニットテストは中心から始まり、実装に従って各ソフトウェアユニット(コンポーネント)に焦点を当てています。 それから、ソフトウェアアーキテクチャの設計と構築が検査される統合テストが来ます。 私たちが外に出ると、検証テストは要求仕様に対する要求が検証される場所に遭遇します。 システムテストは、ソフトウェアとその他のシステム部分を統合コンポーネントとしてテストする最も外側の部分にあります。
結論
単体テストは、プログラムの最小単位をテストするテスト手法です。 一方、システムテストでは、高水準の設計仕様に基づいて、システムの実装がシステム要件の仕様を満たしているかどうかを確認します。