
Hannah Son著
効果的なテストは、まぐれ当たりではなく、綿密な計画の結果です。問題の早期発見と解決が肝心です。それにはテストプロセス全体に目配りするよく練られたテスト戦略が必要です。
以下は優れたテスト戦略立案の鍵となる6つのアプローチです。
- アジャイルテスト4象限分類
- シフトレフトパラダイム: 検証およびテストの早期実施
- シフトライトパラダイム: 運用中の欠陥および利用パターンの分析
- 非機能要件の評価
- データセットおよびリソースの決定
- テスト管理ツールを使用したテスト戦略の強化
アジャイルテスト4象限分類
アジャイルテスト4象限は、アジャイル開発で実施されるさまざまなタイプのテストアクティビティを構造的に分類する方法を提供し、アジャイル環境におけるソフトウェア開発ライフサイクル全体をカバーする包括的なテストを確実に行うための指針として役立ちます。

4象限の使用方法:
4象限はさまざまなテストの目的と範囲を理解するのに役立ちます。以下の3ステップで4象限を使用できます。
- 生み出される成果がビジネス面か技術面かを判断します。
- 開発サイクルまたはスプリント内のどのステージにいるかに応じて、テストが開発を導くか、製品の評価を目的としているかを判断します。
- その結果、該当スプリントで実施すべきテストのタイプが明確になります。

アジャイルテスト4象限のベストプラクティス
以下はテスト戦略のガイドとしてアジャイルテスト4象限を使用する際のベストプラクティスです。
- ゴールを理解する: プロジェクトのゴールに基づいてテストのニーズを明らかにし、対応する象限にマッピングします。
- テスト計画: 象限ごとにテスト作業を調整し、テストに優先順位を付け、戦略を立てます。
- テストの作成と実行: 象限固有のゴールに従ってテストを作成し、実行します。
- 継続的改善: 各象限からのフィードバックに基づいてテスト戦略を調整します。
- コラボレーションとコミュニケーション: 象限固有のテストに基づいてチームのコラボレーションと透明性の高いレポートを促進します。
- 柔軟性と適応性: プロジェクトのニーズの変化に応じて常に柔軟にテスト戦略を調整します。
- 継続的学習: すべての象限で知識共有とスキル開発のカルチャーを促進します。
次の表は、さまざまなシナリオでアジャイルテストの各象限をどのように適用できるか、ソフトウェアテストプロセスでの実践的例を示しています。
象限 | 象限の使用例 | 現実的なサンプル | 使用方法 |
象限1: 技術面のテスト | 単体テスト、コンポーネントテスト | コード内の関数またはメソッドに対して単体テストを実施します。 | 個々のコンポーネントをテストし、それぞれが独立して期待どおり動作していることを確認します。 |
象限2: ビジネス面のテスト | 受け入れテスト、ユーザビリティテスト | Webサイトまたはアプリケーションに対してユーザビリティテストを実施し、ユーザーエクスペリエンスを検証します。 | ソフトウェアがビジネス要件やユーザーの期待を満たしているかを検証します。 |
象限3: ビジネス面のテスト | アルファ/ベータテスト、顧客受け入れテスト | 外部ユーザーのグループによるモバイルアプリケーションのベータテストを行います。 | ユーザーからのフィードバックを検証し、ソフトウェアがユーザーの期待に沿っていることを確認します。 |
象限4: 技術面のテスト | 自動化されたGUIテスト、パフォーマンスプロファイリング | Webアプリケーションに対してパフォーマンステストを実行し、スケーラビリティを評価します。 | システムのパフォーマンスおよびさまざまな条件下での動作を評価します。 |
シフトレフトパラダイム: 検証およびテストの早期実施
ソフトウェア開発では、テスト設計および要件を評価することが重要です。シフトレフトテストでの早期検証が重要である理由として、ソフトウェアの最適化とより円滑な開発プラクティスの促進に対する影響が挙げられます。
設計および要件の改善
コーディングが始まる前に設計と要件をより良いものにすることが重要です。このステップによって明確な筋道が確立され、開発中の混乱と逸脱を緩和できます。
ステークホルダーのコラボレーション
ステークホルダー間の早期のコラボレーションは、後で認識が食い違うのを防ぎます。開発者、テスター、ビジネスアナリストを巻き込むことで共通のビジョンが確立されます。
早期レビューによるリスク低減
設計の欠陥を早期に検出して修正すると、開発サイクルの後段階でエラーが発生する可能性が大幅に減ります。複数の要件の矛盾や競合を早期に検出することはリスクを最小化し、大きな手戻りが必要になる可能性を低減し、リソースを最大限に活用することを可能にします。
品質保証フレームワークの確立
早期の検証プロセスはテスト計画の下地を作ります。網羅的なテストケースおよびシナリオを作成することが可能になり、品質保証施策に機能テスト、非機能テスト、エッジケースなどのさまざまなテストシナリオが確実に含まれ、製品の全体的な品質が向上します。
開発の合理化
早期検証というプラクティスを取り入れると、開発ライフサイクル全体が合理化されます。早期にあいまいさを排除することで、より効率的なテストアプローチで進めることができます。結果として、テスト成果物がユーザーの期待やビジネスおよびテスト目標に密接に関連した最適なものになります。
早期テストのシフトレフトのサンプルシナリオ
次の表は、架空のタスク管理アプリケーションに対するシフトレフトテストでの早期検証ステップの概要を示しています。
ステップ | シナリオ | アクション | 結果 |
設計および要件の改善 | コーディング開始前の作業 | ステークホルダーを招集して設計および要件を改善します。 | 明確に定義された詳細な機能、ユーザーストーリー、ワイヤフレーム |
ステークホルダーのコラボレーション | 幅広いチームメンバーが早期に関与 | ワークショップまたはミーティングを実施してステークホルダーから意見を収集します。 | ゴール、機能、ユーザーエクスペリエンスに関する共通認識 |
早期エラー検出 | 初期ワイヤフレームおよびユーザーストーリーの検証 | 設計の欠陥および矛盾を徹底的にレビューします。 | 潜在的エラーの早期検出および修正 |
テスト計画精度 | アプリケーションのさまざまな側面をカバーするテスト計画 | 機能テスト、UIテスト、パフォーマンステストをカバーするテスト戦略を策定します。 | アプリケーションのさまざまな側面にわたって品質を保証する包括的なテストフレームワーク |
開発の合理化 | 明確性に基づく開発の推進 | コーディングおよび反復的開発サイクルを開始します。 | テストを統合し、不確定性を低減することで開発プロセスを合理化します |
設計および要件のレビューなど、シフトレフトテストの枠組みにおける早期検証手順は、ソフトウェア開発プラクティスの最適化と高品質のソフトウェア製品の確実なデリバリーに貢献します。
シフトライトパラダイム: 運用中の欠陥および利用パターンの分析
ソフトウェア開発を巡る流動的な状況において、ユーザーがどのように稼働中のシステムを利用しているかを理解することは、リリース前テストとして重要です。シフトライトテストによって製品の欠陥およびユーザーの振る舞いを調べることは、開発終了後にソフトウェア品質を改善するのに欠かせません。
開発後に行う製品の欠陥およびユーザー行動の分析には、以下のようなものがあります。
欠陥解析
ログ、エラーレポート、ユーザーからのフィードバックを確認し、稼働環境でユーザーが遭遇した問題を特定し、分類します。
例: E-コマースプラットフォームで、カートが放置されるケースが増えたことが確認されました。エラーログおよびユーザーセッションを調査すると、特定のバージョンのブラウザーで支払いが失敗するバグがあることがわかりました。
アクション: 開発チームがエラーログを確認してブラウザー固有の問題を特定し、すみやかに修正をリリースしました。

利用パターン
ユーザーの操作、ナビゲーションパス、機能利用状況、パフォーマンスメトリクスを調査し、ユーザーがどのようにソフトウェアを利用しているかを理解します。
例: ソーシャルメディアアプリケーションで、アップデート後にユーザーエンゲージメントの急落が観察されました。利用状況分析によって、特定の機能が導入された後、ユーザーがアプリケーションに費やす時間が減少していることがわかりました。
アクション: 製品チームは、ユーザーの行動データを調査することで、新機能が複雑であるためにユーザーが利用をためらっていることを認識しました。機能を簡略化することで、エンゲージメントの増加につなげました。
フィードバック収集
アンケート、ユーザーインタビュー、専用のフィードバックチャネルなどを通じてフィードバックを収集し、ユーザーの感じ方や好みを把握します。
例: あるソフトウェア企業がプロジェクト管理ツールをローンチしました。アプリケーション内にユーザーフィードバックフォームを用意し、ユーザーの意見や提案を収集しました。
アクション: フィードバックの分析から、一貫して特定の統合機能がリクエストされていることがわかりました。このデータに基づいて、該当の統合機能を優先して実装し、ユーザーの満足度を上げました。
データ駆動型洞察
解析ツールおよびユーザーの行動追跡を活用してソフトウェアの改善に役立つ洞察を得ます。
例: モバイルゲームの開発企業がゲームの新バージョンをリリースしました。ユーザーの行動を追跡すると、特定のレベルに到達した後、ユーザーの継続率が顕著に下落していることがわかりました。
アクション: データを分析すると、レベルの難易度が高すぎることがわかりました。レベルの難易度を調整し、プレーヤーの継続率の改善につなげました。

デプロイメント後に製品の欠陥とユーザーの行動を分析すると、問題を発見し、洞察を得て改善に活かすことができ、ユーザーに寄り添ったよりよいソフトウェアエクスペリエンスにつながります。
非機能要件の評価
パフォーマンス要件やセキュリティ要件などの非機能要件の評価では、ソフトウェアシステムの基本的な機能性以上の側面を測定します。以下は評価を検討するべき重要な非機能要件を分類したものです。
- パフォーマンス: 速度、応答性、スケーラビリティ、リソース使用量の観点からソフトウェアのパフォーマンスを解析します。パフォーマンスの評価によって、負荷が高い状況や同時実行ユーザー数が多い状況など、さまざまな条件下でソフトウェアがパフォーマンス要件を満たすことを保証します。
- セキュリティ: セキュリティテストは、潜在的な脆弱性を発見し、未認可のアクセスやデータ侵害、悪意のある攻撃に対してソフトウェアの安全を確保することを特に目的とします。脅威に対するシステムのレジリエンス性やセキュリティ標準に準拠しているかを評価します。
- 信頼性: 信頼性とは、予期しないエラーやダウンタイムを発生させることなく、さまざまな条件下で一貫性と信頼性をもって動作する能力を意味します。
- スケーラビリティ: パフォーマンスを低下させたり、大きな変更を必要としたりせずに負荷やユーザーインタラクションの増加に対処する能力を測定します。
- ユーザビリティ: ユーザーインターフェイス、直感性、全体的なユーザーエクスペリエンスに着目し、ユーザーが容易かつ効率的にソフトウェアを操作できるかどうかを評価します。
機能的側面と並行してこれらの非機能要件を評価し、対処することは、意図したとおり動作するだけでなく、信頼性、ユーザビリティなどのより幅広い期待に応えられる包括的なソフトウェアソリューションを提供するうえで重要です。
データセットおよびリソースの決定
徹底的かつ効果的なテストを実施するのに必要なデータセットおよびリソースを決定することは、テストプロセスに漏れがなく、現実的で、さまざまなシナリオをカバーしていることを保証するのに重要です。包括的なテストに必要なデータセットおよびリソースには、以下のようなものがあります。
- テストデータ管理: さまざまなテストシナリオの実施に必要なデータセットを特定し、作成し、管理します。テストに使用されるデータが現実のシナリオを反映し、可能性のある入力値を幅広くカバーしていることを保証します。

- テスト環境: テストに必要なハードウェア、ソフトウェア、ネットワーク構成を認識し、確保します。さまざまな環境(開発、ステージング、運用など)を確定し、これらの環境が現実の条件を正確に再現していることを保証します。
- テストケースおよびシナリオ: ソフトウェアの多様な機能的側面および非機能的側面をカバーするテストケースを定義し、さまざまなシナリオを幅広くカバーできるようにします。
- テストツールおよびフレームワーク: 適切なツールおよびフレームワーク(テスト自動化ツール、パフォーマンステストフレームワークなど)を活用して効率的かつ包括的なテストを実現します。
- ドキュメント: 要件定義書、設計仕様書、ユーザーストーリーなどの必要なテスト戦略ドキュメントにアクセスし、ソフトウェアの期待される動作との整合性を確保します。
- テストの実行レポート: テストの実行レポートを生成、格納、分析するシステムはテスト結果に対する洞察を提供し、改善可能な領域を特定します。
- バージョン管理および構成管理: 適切なバージョン管理システムおよび構成管理ツールを使用することで、変更を追跡し、複数のテスト環境にわたって一貫性を維持します。
- トレーニングおよびスキルセット: テストチームに適切なトレーニングを受けさせ、多様なテストアクティビティを効果的かつ効率的に実施するためのスキルセットを身に着けさせます。
テスト管理ツールを使用したテスト戦略の強化
TestRailなどのテスト管理ツールは、以下のような重要な機能を通じて、QAチームが強力で効果的なテスト戦略を構築するのを支援します。
一元化されたテスト計画
テスト計画が一元化されていると、テストケースの整理が効率的になり、複数のシナリオによって幅広いカバレッジを達成できるほか、プロジェクトの目標との一貫性が保たれます。複数のQAチームにわたる効率的な管理、更新、コラボレーションが容易になり、透明性が促進され、目標に従ってテスト作業を配分することが可能になります。

トレーサビリティおよびカバレッジ分析
トレーサビリティおよびカバレッジ分析によって、プロジェクトの目標に照らして包括的にテスト戦略を検証することが可能になり、テストカバレッジに不足があれば検出し、複数のシナリオおよび要件にわたって徹底的なテストを行うことができるようになります。TestRailを利用すると、テスト成果物と要件および欠陥を関連付け、定義からデリバリーまで作業を追跡することができます。また、TestRailでは、包括的なプロジェクトレポートを生成し、テストカバレッジを追跡し、要件、テスト、欠陥の間のトレーサビリティを確保できます。

カスタマイズおよび柔軟性
カスタマイズおよび柔軟性は、QAチームがプロジェクト固有のニーズに合わせてテストケース、テストスイート、テストレポートを容易に調整できるようにします。このような適応性は、テスト戦略が変化するプロジェクト要件に常に対応できるよう保証し、プロジェクトの進展に伴ってシームレスに戦略を調整することを可能にします。

テストの実行およびレポート
テストの実行およびレポート機能は、テストの実行をスムーズにするとともに、詳細なレポートおよび解析を提供します。この機能は、進捗の追跡や改善が必要な領域の識別、そしてテスト戦略の調整のためのデータに基づいた決定を支援します。

コラボレーションおよびコミュニケーション
コラボレーションおよびコミュニケーション機能は、QAのさまざまな担当者やプロジェクトのステークホルダーが関わるワークフローを合理化し、目標、戦略、テスト結果に関して誰もが同じ認識に立つことを保証します。

これらの機能を活用することで、QAチームは問題に早期に対処することが可能になり、結果として、ユーザーのニーズやビジネス上の狙いに合致する高品質のソフトウェアにつながります。
よく考え抜かれたテスト戦略は、単に重要であるだけではなく、ソフトウェアの成功のための基礎であり、継続的改善およびシームレスなユーザーへの対応に向けてチームを導きます。
(この記事は、開発元Gurock社の Blog 「Test Strategy Optimization: 6 Key Approaches to Crafting a Robust Test Strategy」2024年1月2日の翻訳記事です。)
関連する製品
テスト管理ツール TestRail
テストケースの管理やテスト結果の記録、チームでの情報共有など、Excelを使ったテスト管理の業務に限界を感じていませんか?TestRailはシンプルで使いやすいUIを提供し、テストにかかるさまざまな管理コストの削減に貢献します。
■ TestRailの特長 ■
- テストにさまざまな情報を関連づけて一元管理
- Webブラウザー上でテストケースを簡単に入力や編集可能
- テスト実施の準備と結果の共有が容易
- 進捗や比較などのレポートを提供
- 要件 / 課題管理ツールやテスト自動化ツールと連携
日本国内では、テスト管理にExcelを使っていたお客さまからの乗り換えが多く、Web上で完結するテスト管理を実現されています。
TestRail でテスト管理のお悩みを解決しませんか?