Googleのような巨大なソフトウェア企業は、ソフトウェアの優先度の低いバグにもかかわらず成功しますが、中小企業や新興企業にはその贅沢はありません。
顧客は、製品が販売ページやドキュメントに記載されていることを行うと期待しています。 そこにたくさんのオプションがあるので、製品が時間とお金を無駄にするならば、船を飛ばすことについて二度考えないだろう。 したがって、ソフトウェアはリリース前に厳格なテストを受け、
元のコンセプトと最終的なアウトプットとの違いを強調する
デザイナーが計画した通りにソフトウェアが動作することを確認する
最終製品を検証する - 製品は顧客要件を満たさなければならない
機能と品質を評価する
テストは厳密な青写真に従います。 これにより、スキル、時間、お金などの貴重なリソースの使用が最適化され、ステークホルダーに製品を前進させるための重要な情報が提供されます。 目標は、強力な品質保証プログラムを通じて良好なエンドユーザーエクスペリエンスを促進することです。 ステークスが非常に高いので、QA管理者はtechのトップキャリアの一部です。テストは通常以下の手順に従います。
管理者が適切なテスト戦略を策定する計画の概要を示す要件分析。
テストが始まり、結果は分析されます。
欠陥は修正され、ソフトウェアは回帰テストを行います。プログラムを確認するシステムは修正後も動作します。
テストクロージャレポートは、プロセス全体と結果を詳細に示します。
ソフトウェアテスト方法
製品の動作と性能を判断するために使用されるさまざまな方法があります。
ブラックボックスとホワイトボックスのテストは、2つの基本的な方法です。
- ブラックボックステスト - 機能テストまたは仕様ベースのテストとも呼ばれ、このメソッドは出力に重点を置いています。 テスターは、内部メカニズムには関係しません。 彼らは、ソフトウェアがそれが想定していることを確認するだけです。 コーディングの知識は必要なく、テスターはユーザーインターフェイスレベルで動作します。
- ホワイトボックステスト - この方法では、テスト手順の一部としてコーディングのノウハウを使用します。 製品が故障すると、テスターは必要に応じて原因を見つけるためにコードに深く入ります。 ソフトウェア開発者は、製品の仕組みを決定するので、これを自分で行います。 構造ベースとガラス・ボックス・テストは、このメソッドの別の名前です。
- 静的テスト - テスターは、ソフトウェアのコードとドキュメントを調べますが、プログラムを実行しません。 静的テストは、検証プロセス中に製品の開発の初期段階から開始されます。
- ダイナミックテスト - ソフトウェアはさまざまな入力で実行され、テスターは予想される動作と出力をこのメソッドと比較します。
- GUIテスト - GUIの特性(テキストフォーマット、テキストボックス、ボタン、リスト、レイアウト、色、フォント、フォントサイズなど)をテストします。 GUIテストは時間がかかり、サードパーティの企業が開発者ではなくタスクを実行することがよくあります。
テストレベル
これらは、ソフトウェア開発ライフサイクルの各フェーズにおける弱点と重複の領域を特定するために必要です。
- ユニットテスト - 開発者は、クラス、インタフェース、関数/プロシージャなどのコードの最も基本的な部分をテストします。 彼らはコードがどのように応答し、出力に応じて調整できるかを知っています。
- コンポーネント テスト - 他の名前は、モジュールまたはプログラムのテストです。 これは単体テストに似ていますが、より高度な統合を含んでいます。 ソフトウェアのモジュールは、個々の機能を検証するために欠陥がテストされます。
- 統合テスト - これは、モジュールが統合されているときのエラーを識別します。 さまざまな統合テストは、ボトムアップ、トップダウン、機能的な増分テストです。
- システム テスト - このメソッドを使用すると、プロジェクトのコンポーネントはさまざまな環境で全体としてテストされます。 それはブラックボックス法に該当し、プロセスの最終テストの1つです。 それは、システムがビジネスとユーザーのニーズを満たす必要があるかどうかを判断します。
- アルファテスト - 社内スタッフが、シミュレーション環境または実際の環境で開発者のサイトでソフトウェアをテストします。 その後、開発者はバグやその他の問題を修正します。
- ベータテスト - フィールドテストとしても知られており、クライアントは現場で自社サイトで製品をテストします。 クライアントは、一連のエンドユーザーにプレリリース版またはベータ版を介してソフトウェアをテストする機会を提供する可能性があります。 改善の可能性に関するフィードバックが開発者に送信されます。
- 受け入れテスト - クライアントは、ブラックボックステストの範囲でも、開発者が希望の仕様にプログラムを作成したかどうかを調べるためにソフトウェアをテストします。
テストの種類
これらのソフトウェアテストは、特定の目的に焦点を当てています。
- インストールテスト - ソフトウェアテストエンジニアと構成マネージャがこのテストを行い、エンドユーザーがプログラムをインストールして実行できることを確認します。 インストールファイル、インストール場所、管理者権限などの領域について説明します。
- 開発テスト - これは欠陥の検出と防止のための一連の同期化された戦略を実装します。 静的コード分析、ピアコードレビュー、トレーサビリティ、およびメトリクス分析が含まれます。 その目的は、リスクを削減し、コストを削減することです。
- ユーザビリティテスト - このテストでは、 ユーザーエクスペリエンスが注目されています。 GUIがどのくらいうまく設計されているか、使いやすさを測定します。 テストでは、機能の精度と効率、テスト対象の感情反応をチェックします。
- サニティテスト - これは、ソフトウェアがさらなるテストを続けるために時間とコストをかけてもらえるかどうかを示します。 あまりにも多くの欠陥やより積極的なテストは行われません。
- 煙のテスト - 煙のテストは、リリースを防ぐのに十分重大な基本的な障害を明らかにする。 これが新しいビルドで実行されるとき、ビルド検証テストと呼ばれます。
- 回帰テスト - システムが変更されると、回帰テストは予期しない動作を監視します。 モジュールやコンポーネントへの悪影響が指摘されています。
- 破壊的テスト - テスターは異常な入力を入力し、予期しない入力を管理するソフトウェアの能力を識別します。 これは、プログラムがエラー管理にどの程度堅牢であるかを開発者に示します。
- 回復テスト - ハードウェアまたは他の機能が失敗した場合、このテストはソフトウェアがどれだけうまく回復して操作を継続できるかを示します。
- 自動テスト - これは、手動で実装するのが難しい機能を実行します。 テストを実行し、実際の結果と予想される結果とのデータを提供するために、特定のソフトウェアを使用します。
- 互換性テスト - ソフトウェアは異なるコンピューティング環境で実行する必要があるため、異なるシステムとの互換性をチェックします。 たとえば、ソフトウェアはさまざまなオペレーティングシステムやWebブラウザで動作しますか?
- パフォーマンステスト - これは、さまざまなシナリオでソフトウェアのパフォーマンスを調べる詳細なテストです。 応答性、安定性、リソース割り当て、および速度に関する情報が収集されます。 さらに、ボリューム、容量、スパイクテストなどのサブテストは、このプロセスの一部です。
- セキュリティテスト - これは、ユーザーのセキュリティを保護するソフトウェアの能力を測定します。 これは、認証機能、認証、機密性、完全性、可用性、および否認防止を意味します。
- アクセシビリティテスト - これはユーザビリティテストと同じではありません。 これは、学習と身体の障害が含まれる異なる能力のユーザーがソフトウェアを使用できる程度を決定します。
- 国際化とローカリゼーションのテスト - 結果は、ソフトウェアがさまざまな言語や地域の要求にどのように適応できるかを示しています。 これには、特定の場所のコンポーネントの追加やテキストの翻訳が含まれます。
ソフトウェアテストは、製品を市場に投入するために不可欠な要素です。 そして、テスターがなければ、広範囲の利用可能なソフトウェアは存在しないでしょう。 BCS、The Chartered Institute for IT、ISTQB®(国際ソフトウェア試験資格審査委員会)、ASQ(旧米国品質学会)などの組織を通じて認定ソフトウェアテスターになります。