ソフトウェアテストの種類
ソフトウェアテストの種類
機能テスト
機能テストでは、ブラックボックス技法や仕様に基づくテストケースをよく用い、ソフトウェアが顧客の要件を満たすか確認します。次の確認が役立ちます。
- アプリケーションが何をするべきかを正確に把握します。
- 有効な入力と無効な入力を含む適切なテストデータを用意します。
- 入力データに対する出力を機能仕様と照合します。
- 必要なシナリオを網羅し、最も重大なリスクを優先します。考えられるすべてのシナリオを試すのは、通常は現実的ではありません。
- 入力ごとに実際の結果を記録し、期待される出力と比較します。
さまざまなテストレベルで、また変更後に、機能を確認します。
- 単体テスト
- 結合テスト
- システムテスト
- 回帰テスト
- 受け入れテスト
性能、セキュリティ、ユーザーインターフェースの品質は、重要な非機能要件です。非機能テストは、こうした特性を確認します。主な種類は次のとおりです。
- 性能テスト
- ユーザビリティテスト
- セキュリティテスト
- 移植性テスト
ユーザビリティテストでは、ソフトウェアの使いやすさを確認します。このブラックボックス手法では、便利か、操作できるか、使い方を学べるかという三つの点を確認します。ユーザビリティには次の側面があります。
- 初めてシステムを使うとき、どれだけ容易に慣れるか。
- 利用者が作業を効率よく、どれだけ速く終えられるか。
- 長い間使っていなかったシステムを、どれだけ容易に再び使えるか。
- エラーに遭遇するか、遭遇した場合にどれだけ容易に作業を再開できるか。
- 利用者が体験に満足するか。
グラフィカルユーザーインターフェースのテスト
グラフィカルユーザーインターフェース(GUI)のテストでは、インターフェースが正しく動作し、定められた品質基準を満たすかを確認します。次の要素を調べます。
- レイアウト
- 色
- フォント
- 文字サイズ
- ラベル
- テキストボックスの機能
- テキストの書式
- キャプション
- ボタン
- リスト
- アイコン
- リンク
- コンテンツ
- ショートカットキー
- 処理中に表示される砂時計などの処理インジケーター
GUIはアプリケーションの見た目と操作感を決めます。GUI以外のテストでは、コマンドラインインターフェース、バッチ処理、ユースケースを起動するイベントなど、視覚的な画面以外のやりとりを扱います。
移植性テスト移植性テストでは、環境の変更がソフトウェアの動作や性能にどう影響するかを確認します。例えば、アプリケーションを異なるOSで試したり、ウェブアプリケーションを異なるブラウザーで試したりします。顧客が複数のプラットフォームを使う場合に重要です。
移植性テストはシステムテストの一部です。ソフトウェアを複数の環境にインストールするか、異なるプラットフォームで実行ファイルをビルドして実行します。設計と開発の段階から移植性の要件を考慮します。結合テスト後に、適切な環境で実施します。
セキュリティ、認証、認可のテストセキュリティテストは弱点を探し、必要に応じて顧客の機密情報を保護できるか確認します。認証と認可は、特に重要な領域です。
認証は、アプリケーションにアクセスしようとする人が本人かを確かめます。ユーザー名とパスワードを使う方法が一例です。組み合わせが違う場合は本人であることを確認できないため、アクセスを拒否します。
認可は、制限されたデータ、機能、ユースケースへのアクセスを制御します。認証に成功しても、すべてにアクセスできるわけではありません。例えば、ソーシャルメディアにサインインすると自分のアカウント情報を見られます。他人のアカウントは引き続き保護されます。
セキュリティテストには、機密性、完全性、可用性、否認防止、データの安全性、SQLインジェクション、クロスサイトスクリプティング(XSS)などの課題も含まれます。独立した専門分野です。
データとデータベースの完全性テストデータ完全性テストは、保存されたデータが正確で、期待どおりの結果になるかを確認します。空のデータを取得できるか、保存前にデータを検証するか、保存したデータを更新できるか、必要なデータファイルの種類がテスト対象に含まれるかを確認します。目的は、ライフサイクル全体でデータの正確さと一貫性を保つことです。
データベース完全性テストは、データベースへのアクセスやデータの管理、処理に用いる方法と手順を確認します。データが破損したり、意図せず作成、更新、削除されたりしてはいけません。それぞれの条件を確認するテストケースを用意します。
耐障害性テストとフェイルオーバーテスト耐障害性テストでは、実際の条件で障害が起きたときにアプリケーションがどう反応するかを確認します。ネットワーク接続エラー、アプリケーションサーバーへの接続問題、データベースへの接続障害などを想定します。
フェイルオーバーテストは、ハードウェア障害やクラッシュなどの重大な障害後に、システムが待機中のコンポーネントやサービスに切り替わるかを確認します。切り替え中に重要な処理を継続できるかも確かめます。その後、復旧テストで元のサービスが期待どおりの状態に戻るかを確認できます。
構成テストとデプロイテスト構成テストは、システムの構成が異なるときの性能を確認します。テスト環境での応答時間と、期待される性能を達成するために必要な構成を調べます。新しい環境やハードウェア仕様との互換性を確認し、別のプラットフォームへの移行にも役立ちます。
デプロイテストは、デプロイしたシステムが正しく動くかを確認します。動作の遅さやクラッシュがないか調べ、実際の条件での動作と、予定したフォルダーに正しく配置されたことを確かめます。
回帰テスト見つかった欠陥は修正を依頼します。修正で元の問題が解消されたことを確認します。次に回帰テストを行い、変更箇所、アプリケーションの別の部分、または業務ロジックに望ましくない影響がないか調べます。結果をもとに、次のテスト段階へ進めるかを判断します。
性能テスト性能テストは、ネットワークの遅延、データの描画、データベースのトランザクション処理、サーバー間の負荷分散を調べます。個々の機能の欠陥に限らず、性能上の問題に注目します。安定性、拡張性、速度、応答時間、データの描画を評価するために使います。
負荷テストと性能ベンチマーク負荷テストでは、最大負荷やピーク負荷でのソフトウェアの動作を確認します。JMeter、LoadRunner、Silk Performer などのツールは仮想ユーザーを作成し、スクリプトを実行して同時アクセスを再現します。テスト担当者は仮想ユーザー数を調整し、システムの挙動を観察します。
ストレステストストレステストでは、意図的に通常と異なる条件を作り、性能を観察します。許容範囲を超える負荷をかけたり、資源を減らしたりして、障害が起こる点を調べます。例えば、データベースの停止と再起動、ネットワークポートの無作為な閉鎖や再起動、大量の資源を消費するプロセスの実行などです。
| Testing Type | Unit Testing | Integration Testing | System Testing | Acceptance Testing |
|---|---|---|---|---|
| Functional Testing | Yes | Yes | Yes | Yes |
| Configuration Testing | No | No | Yes | Yes |
| User Interface Testing | No | No | Yes | Yes |
| Usability Testing | No | No | Yes | Yes |
| Installation Testing | No | No | Yes | Yes |
| Document Testing | Yes | Yes | Yes | Yes |
| Performance Testing | Yes | Yes | Yes | Yes |
| Security Testing | No | Yes | Yes | Yes |
| Scalability Testing | No | Yes | Yes | No |
ソフトウェアテストの種類のまとめ
無料オンライン研修でソフトウェアテスト認定試験に合格できることを保証します。
-
01
オンラインで登録
認定プログラムを選び、登録を完了してください。
-
02
アクセスコードを受け取る
試験用のアクセスコードがすぐにメールで届きます。
-
03
準備して試験を受ける
無料トレーニングで学び、オンラインで 50 問の選択式問題に答えます。
-
04
生涯有効な認定資格を取得
世界で有効な認定証と、検証可能なデジタルバッジを受け取ります。
無料のプレミアムオンライン研修
Software Testing Revealed 第2版をご用意しました。
この研修は、主要な各業界の著名な経営者やチームリーダー、ソフトウェアテストのコーチ、メンター、専門家、第一人者と共同で開発しました。International Software Test Institute™ にアクセスするすべての方が利用できます。教材は、 無料のソフトウェアテスト書籍 および 無料プレミアムソフトウェアテスト研修 の項目から利用できます。どちらも画面上部のメニューにあります。
これらの教材は International Software Test Institute™ の知的財産で、著作権により保護されています。私たちの知見を共有することでソフトウェアテストの専門家を支援し、この分野の発展に貢献できると考え、すべての方に無料で公開しています。
認定試験は選択式です。オンライン研修で、試験に合格してソフトウェアテスト認定を取得するために必要な知識を身につけてください。
無料のプレミアムオンライン研修でソフトウェアテスト認定試験に合格できることを保証します。
