Application testing

アプリケーションテスト:概念、種類とライフサイクル

アプリケーションテストは、開発中のアプリケーションの正確性や機能を検証することを目的としたソフトウェア開発プロセスの最終段階です。本記事では、様々な種類のアプリケーションテストを、異なった方法論、やテストのライフサイクルに基づき解説します。

1.アプリケーションテストとは

アプリケーションテストは、ソフトウェア アプリケーションが仕様どおりに正しく動作することを検証するプロセスを指しています。

アプリケーションテストは次の3つのカテゴリに分類されます。

  • デスクトップアプリテスト
  • Webアプリテスト
  • モバイルアプリテスト
アプリケーションテスト

デスクトップアプリケーションの場合、テストでは、ユーザーインターフェース、ビジネスロジック、データベース、レポート、役割・権限、使いやすさ、整合性、機能性、パフォーマンス、ハードウェアとソフトウェアの互換性、セキュリティ、及びデータフローを考慮する必要があります。

Webアプリケーションの場合、テスターはアプリケーションのパフォーマンス、負荷、及びセキュリティに細心の注意を払う必要があります。機能テスト、クロスブラウザーテスト、UAT、ベータ テスト、互換性テスト、回帰テスト、スモークテスト、探索的テスト、互換性・多言語サポートテストやストレステストは、Webアプリケーションテストの他の主要な種類です。

モバイルアプリケーションの場合、UIテスト、ルールベーステスト、機能テスト、及び回帰・セキュリティ テストは主な種類のテストです。

テスト対象のアプリケーションは、デスクトップソフトウェア、Webサイト、またはモバイルアプリケーションです。

2.アプリケーションテストの方法論

テスト方法論は、ソフトウェアアプリケーションが完全にテストされていることを確認する様々な方法です。組織されておらず効果のないテスト方法は不安定な製品につながる可能性があります。

次の3つのテスト方法があります。

  • ブラックボックステスト
  • ホワイトボックステスト
  • グレーボックステスト

2.1.ブラックボックステスト

ブラックボックステストでは、入力がどのように出力に変換されるかに関係なく、入力と期待される出力を考慮して、アプリケーションが要件に照らして検証されます。テストエンジニアは、アプリケーションのビジネスロジックを実装する内部構造やコードにはほとんど関心を持っていません。

ブラックボックステストのテストケースを設計するには、主に4つの技法があります。

  • 境界値分析 (Boundary Value Analysis – BVA)
  • 同値分割法 (Equivalence Partitioning – EP)
  • 決定表 (Decision Tables)
  • 状態遷移図 (State Transition Tables & Diagrams)

ブラックボックステストは、通常、機能テスト、非機能テスト、及び回帰テストで実行されます。

2.2.ホワイトボックステスト

ホワイトボックステストの主な焦点は、アプリケーションのビジネスロジックがコード・プログラムによってどのように実装されているかを検証することです。

アプリケーションの内部構造はここでテストされます。次の技法があります。

  • コードカバレッジ
  • パスカバレッジ

2.3.グレーボックステスト

グレーボックスはブラック ボックスとホワイト ボックスのハイブリッドです。

グレーボックステストでは、テスターは主にブラックボックステストのアプローチを取り入れて、テストを行います。しかし、ビジネスクリティカルなアプリケーションまたは脆弱なアプリケーションの場合、テスターはホワイトボックステストを実施します。

3.アプリケーションテストのライフサイクル

アプリケーションテストのライフサイクルには次のフェーズがあります。

フェーズ1:要件分析

このフェーズでは、テストの観点から機能要件と非機能要件を調べて、テスト可能なニーズを特定します。顧客、ビジネスアナリスト、ソリューションアーキテクト、テクニカルリード、及びその他のステークホルダーは、品質保証チームと話し合い、顧客の要件を理解し、テストを顧客の仕様に合わせて調整できるようにします。

エントリー基準

  • 仕様書
  • アプリケーションアーキテクチャー

要件分析フェーズの活動

  • 要件を定義し、優先順位を付ける
  • 実現可能性や要件分析のためのブレインストーミング会議を開催する
  • クライアント、テクニカルリード、ソリューションアーキテクトやビジネスアナリストなどが回答するアンケートを作成する

フェーズ2:テスト計画

テスト計画またはテスト戦略は、ソフトウェア テストのライフサイクルにおいて最も重要な段階です。このフェーズでは、ソフトウェアのテストに使用されるすべてのテスト方法が確立されます。テストリーダーは、プロジェクトのコストの見積もりや作業量を決定します。ここでは、様々なテスト活動が計画及び戦略化され、リソースの分析が行われ、テストの目的を達成するのに役立ちます。

ソフトウェアテストは、特に自動テストの場合、有用なテストツールなしでは実行できません。このフェーズでは、ソフトウェアテスト用の適切なツールの選択も計画されています。

エントリー基準

  • 要件を記載した書類
  • 自動化基準に関するレポート

テスト計画フェーズの活動

  • 目的と範囲を定義する
  • 実施するテストの種類と、それぞれに対するアプローチを選択する
  • 役割と責任を決定し、割り当てる
  • 必要なテストリソースと機械を配置する
  • 適切なテストツールを選択する
  • テスト活動を完了するために必要な時間や作業量を見積もる
  • リスク分析を行う

フェーズ3:テストケースの設計と開発

要件を特定し、それに対応するテスト計画を作成した後、創造性を発揮し、このテスト戦略をテストケースに変えて形成する必要があります。

テストケースを設計するには、まず、機能テストと非機能テストの範囲を明確にする要件定義書を作成する必要があります。ビジネスアナリストはこのタスクを担当します。また、要件定義書は、ソフトウェアアプリケーションで考えられるすべてのユーザーシナリオもカバーしています。要件定義書ができたら、テストケースを作成することができます。

テストケースの作成には、テストケースの識別とテストケースの分析という2つのステップがあります。最初のステップは、すべてのユーザーシナリオをカバーできる実行可能なテストケースを特定することです。それらに分析した上で、実行に適していないテストケース、または優先度の低いテストケースを削除します。テスト設計が完了すると、QAチームは効果的なテストケースを作成し始めます。

エントリー基準

  • 仕様書
  • 自動化のフィージビリティに関するレポート

テスト計画の設計・開発フェーズの活動

  • テストケースを設計・作成・レビュー・承認する
  • 該当する既存のテストケースを検討・修正・承認する
  • 必要に応じて自動化スクリプトを作成・検討・承認する

フェーズ4:テスト環境のセットアップ

このフェーズでは、テスト環境を準備します。テスト環境は、ソフトウェアが評価されるパラメータを確立します。これは独立したアクティビティであるため、テストケースの開発プロセスと並行して実行することができます。

テスト環境は企業によって異なります。開発者またはテスターがテスト環境をセットアップする場合もあれば、クライアントが要件に基づいてテスト環境を構築する場合もあります。

顧客または開発者がテスト環境を準備する間、テストチームはスモークテストの準備をします。スモークテストの目的は、テスト環境の準備状況や安定性を判断することで、テスト環境を検証することです。

エントリー基準

  • 利用可能なテスト戦略
  • 利用可能なスモークテストのテストケース
  • 利用可能なテストの結果

テスト環境のセットアップフェーズの活動

  • テストデータを設定する
  • 必要なハードウェアとソフトウェアを収集する
  • テスト環境チェックリストを作成する
  • ネットワーク構成とテストサーバーをセットアップする
  • テスト環境の管理・保守プロセスに関して説明する
  • スモークテストを行い、テスト環境の即応性を確認する

フェーズ5:テスト実行

このフェーズでは、テストチームは、前のフェーズで準備されたテストケースとテスト計画に基づいてテストケースを実行します。

テストケースが成功した場合は、スコアが付けられます。テストケースが失敗した場合は、バグ追跡システムを使用して開発チームに欠陥または問題を通知します。

これらのバグは、将来の参照用にテストケースに関連付けられる場合もあります。理想的には、失敗したすべてのテストケースが欠陥に関連付けられます。開発チームがバグに対処した後、同じテストケースを再実行して、期待どおりに動作するかどうかを確認します。成功、ブロック、失敗、または実行されなかったテストケースを表示するレポートが作成されます。

エントリー基準

  • テスト戦略文書
  • テストシナリオの例
  • レストデータ

テスト実行フェーズの活動

  • テスト計画に従い、テストケースを実行する
  • 達成された成果と期待された成果を比較する
  • 欠陥を見つける
  • 欠陥を記録し、見つかったバグを報告する
  • 欠陥をテストケースにマッピングし、要件のトレーサビリティマトリックスを更新する
  • 開発チームがバグを修正または解消した後に再テストする。
  • 回帰テストを実行する(必要な場合)。
  • 修正されるまで欠陥を追跡する

フェーズ6:テストサイクルのクローズ

テスト終了フェーズは、テスト実行フェーズの完了とソフトウェア製品の配信から始まります。これはサイクル全体が見直される段階です。

エントリー基準

  • テストケースの実行に関するレポート
  • 欠陥に関するレポート
  • テストケースの実行完了

テストサイクルクローズフェーズの活動

  • テストプロセス全体を見直す
  • 終了基準、テスト計画、テストケースなどの変更の必要性について相談する
  • テスト結果を分析・検討する
  • テスト計画、テスト戦略、テストケースなどを含むすべてのテスト成果物を収集し、最新の状態に保つ
  • テストメトリクスとテスト終了レポートを作成する
  • 欠陥の深刻度と優先度を順序付ける

結論

アプリケーションテストは、ソフトウェアアプリケーションが適切に機能し、指定された要件に従っていることを確認するために、ソフトウェア開発プロセスにおいて非常に重要です。ソフトウェアの品質を向上させるためのテスターチームを探している企業様は、CMC Japanにお問い合わせください。弊社はISTQBのプラチナパートナーであることを誇りに思っており、エンドツーエンドのアプローチを適応することにより、お客様が製品の品質を向上させるのを支援いたします。

>> ソフトウェアテストサービスに関する無料相談はこちら