この記事はRaj Subrameyerによるゲスト投稿です。
テストフェーズはソフトウェア開発ライフライクルの重要なステップです。大企業からスタートアップ企業まで、あらゆるサイズの企業が積極的にテストフェーズに投資しています。企業が望んでいるのは、顧客の期待に合致する機能を開発し、もっとおおぜいの人たちが製品を使いたくなることです。その結果として、品質の高いソフトウェアをデリバリーするためにかけた労力に対してより多くの見返りが得られます。
開発プロセスの他のフェーズと同様に、効果的なテストを計画するには、できるだけ早期に欠陥を発見できるよう、多方面に注意を払う必要があります。テスト計画を立てる際に、テストフェーズのさまざまな側面を明確にするのはよいやり方です。
以下は、確実なテスト戦略を立て、テストプロセスからあいまいな点を一掃するための6つの方法です。
1.テスト対象モジュールを明確にする
テストプロセスで混乱を引き起こす大きな原因の1つが、どのモジュールをテストするべきかについてチーム共通の認識がないことです。機能がどのように動作するか、またどのモジュールがアプリケーションにとって重要かについて、誰もが異なる見解を持っています。これは災厄のもとです。
衝突や混乱が発生するのを防ぐには、計画フェーズでチームが協力して、テストする必要があるアプリケーション機能を特定する必要があります。そうすることで、テストプロセスにおいてコミュニケーションギャップを防ぐ共通の認識が生まれます。
2.関連リスクを明らかにする
アプリケーションのハッピーパス(期待される処理の流れで一番シンプルで簡単なもの)だけではなく、さまざまなエラーシナリオを考える必要があります。そのための1つの方法が、営業の代表者、開発者、テスターが協力して各モジュールのさまざまなリスクを挙げることです。挙げられたリスクに基づいて、チームはシステムのさまざまな状態を効果的に解析するためのテスト戦略を策定できます。
3.タイムラインと利用可能なリソースを明確にする
チームは、拡大しつづける顧客の要望を満たすため、速いペースで機能を開発し、テストしなければならないというプレッシャーにさらされています。厳しいタイムラインで作業しており、時間を無駄にできない場合も多くあります。そうであれば、利用可能なタイムフレーム内にテストを計画するのは、常に困難な課題となりますが、利用可能な時間に合わせて戦略を変えるべきです。たとえば、リリースが2週間以内に行われる場合と、2か月以内に行われる場合では、テスト戦略は大幅に異なるでしょう。
テストを実行するのに利用可能なリソースも、特定のタイムフレーム内にどれだけの作業を完了できるかに大きく影響します。リソースが豊富であるほど、異なるタイプのテストを実行したり、複数のツールを使用したりして、製品に関する情報をより多く取得できる可能性が高まります。
4.プロセスとツールを標準化する
テストを開始する前に、プロセスとツールの共通セットについて、チーム内で合意を形成する必要があります。これには、ストーリーテストのプロセス、欠陥のテンプレート、テスト計画のテンプレート、自動化ツール、フレームワーク、成果物リポジトリシステム、コミュニケーションツールなどが含まれます。共通の認識を持つことは、より効果的なコラボレーションおよびテストに役立ちます。
5.明確な役割と責任を定義する
テスト アクティビティごとに窓口となる人がいるべきです―自動化の窓口、手動テストの窓口、テスト計画の窓口、テスト作業全体の窓口に加えて、複数のチーム間の連絡係となる人、たいていの場合はテスト リードが必要です。責任がはっきりしていることは、時間内にタスクを完了するうえで無用の混乱を防ぎ、コミュニケーションギャップを防ぎます。
6.完了の定義を決める
無用な欠陥や手戻りが発生する大きな理由の1つは、ユーザーストーリーの要件や完了の定義が明確でないことです。ストーリーはいつ完了とみなされるでしょうか?この質問に答えられない場合、大きな問題があるしるしです。
ストーリーを完了するには何を終わらせる必要があるかをチーム全体で議論するべきです。つまり、いつストーリーが完了したと判断するかです。完了すべき項目には、たとえば、営業/開発/テストの代表者によるミーティングや、すべてのストーリーに単体テストを作成すること、テストの自動化、QAテストの完了などがあります。最後に、プロダクトオーナーまたは営業の代表者にストーリーのデモを行い、機能が期待どおりに実装されたことを確認します。
よく言われるように、計画のない目標は単なる願望です。これは、テストにも当てはまります。開発やテストプロセスを開始する前に、確実なテスト戦略が必要です。初期フェーズで明確になっているほど、全体的なテスト作業の質も高くなります。
Raj Subrameyerは豊富な技術的バックグラウンドを持つ国際的な基調講演者、ライター、技術キャリアコーチです。自身のブログrajsubra.com/blog/では、読者がより良い人生を送るのに役立つニュース、リソース、最新情報を投稿しています。
(この記事は、開発元Gurock社の Blog 「6 Ways to Come Up with a Solid Test Strategy」2021年8月24日の翻訳記事です。)