Software-testing-overview
ソフトウェアテスト-概要
テストとは何ですか?
テストとは、指定された要件を満たしているかどうかを確認するために、システムまたはそのコンポーネントを評価するプロセスです。 簡単に言えば、テストとは、実際の要件に反して、ギャップ、エラー、または要件の欠落を特定するためにシステムを実行することです。
ANSI/IEEE 1059規格によれば、テストは次のように定義できます-既存の条件と必要な条件(欠陥/エラー/バグ)の違いを検出し、ソフトウェア項目の機能を評価するソフトウェア項目を分析するプロセス。
誰がテストしますか?
それは、プロセスとプロジェクトの関連する利害関係者に依存します。 IT業界では、大企業には、特定の要件に照らして開発されたソフトウェアを評価する責任を持つチームがあります。 さらに、開発者は*単体テスト*と呼ばれるテストも実施します。 ほとんどの場合、次の専門家は、それぞれの能力内でシステムのテストに関与しています-
- ソフトウェアテスター
- ソフトウェア開発者
- プロジェクトリーダー/マネージャー
- エンドユーザー
ソフトウェアテスター、ソフトウェア品質保証エンジニア、QAアナリストなど、経験と知識に基づいてソフトウェアをテストする人には、会社ごとに異なる指定があります。
サイクル中はいつでもソフトウェアをテストすることはできません。 次の2つのセクションでは、SDLC中にテストを開始するタイミングと終了するタイミングを示します。
テストを開始するタイミング
テストを早期に開始することで、クライアントに配信されるエラーのないソフトウェアを作り直して作成するためのコストと時間を削減できます。 ただし、ソフトウェア開発ライフサイクル(SDLC)では、要件収集フェーズからテストを開始し、ソフトウェアの展開まで継続できます。
また、使用されている開発モデルにも依存します。 たとえば、ウォーターフォールモデルでは、テスト段階で正式なテストが行われます。ただし、インクリメンタルモデルでは、すべてのインクリメント/イテレーションの最後にテストが実行され、最後にアプリケーション全体がテストされます。
テストは、SDLCのすべての段階で異なる形式で行われます-
- 要件収集フェーズでは、要件の分析と検証もテストと見なされます。
- 設計を改善する目的で設計段階で設計をレビューすることもテストと見なされます。
- コードの完成時に開発者が実行するテストもテストとして分類されます。
テストを停止するタイミング
テストは終わりのないプロセスであり、ソフトウェアが完全にテストされていると主張することはできないため、いつテストを停止するかを決定することは困難です。 次の側面は、テストプロセスを停止するために考慮されるべきです-
- 期限のテスト
- テストケースの実行の完了
- 特定のポイントまでの機能およびコードカバレッジの完了
- バグ率が特定のレベルを下回り、優先度の高いバグが特定されない
- 経営判断
検証と検証
これらの2つの用語は、ほとんど同じ意味で使用している人にとって非常にわかりにくい用語です。 次の表は、検証と検証の違いを示しています。
Sr.No. | Verification | Validation |
---|---|---|
1 | Verification addresses the concern: "Are you building it right?" | Validation addresses the concern: "Are you building the right thing?" |
2 | Ensures that the software system meets all the functionality. | Ensures that the functionalities meet the intended behavior. |
3 | Verification takes place first and includes the checking for documentation, code, etc. | Validation occurs after verification and mainly involves the checking of the overall product. |
4 | Done by developers. | Done by testers. |
5 | It has static activities, as it includes collecting reviews, walkthroughs, and inspections to verify a software. | It has dynamic activities, as it includes executing the software against the requirements. |
6 | It is an objective process and no subjective decision should be needed to verify a software. | It is a subjective process and involves subjective decisions on how well a software works. |