テストプロセス
ソフトウェアテストは、ただテストをして結果を確認するだけではありません。計画から完了までにさまざまな作業があり、そのすべてがプロセスに該当します。
ステップは主に6つあり、スムーズに実施するためには、実際のソフトウェアテストの流れを把握することが重要です。
まずは、テスト計画から始めます。この段階ではテストの目的を設定しますが、ほかにも重要になるのが、テスト対象の定義と実行範囲です。
開発後のリスクを想定し、実施するテストで保証されるべき部分と、優先順位や重要度をもとに、何のために、どのようにテストを行うか決めます。
また、テストプロセス全体にわたって重要となるのが「テストモニタリング」と「テストコントロール」です。これらは、特定の工程に限定されるものではなく、計画、分析、設計、実装、実行、完了といった各フェーズで継続的に行われるべきプロセスです。
テスト活動の進捗状況、品質、リスク、欠陥などを継続的に監視・記録する「モニタリング」を行い、さらに、テスト計画と実際の進捗を比較して計画からの乖離を把握し、必要に応じて是正措置を講じる「コントロール」を実施します。
テストの進行状況を追跡している過程で問題が発生した場合は、再度テスト計画を修正しましょう。
計画が決まったら、テスト分析を行います。テスト対象の仕様を詳しく分析し、確認すべき機能を設定しましょう。
具体的には、要件仕様書をもとに情報収集し、それをテストの目的と合わせ、実行するテストの手法や条件、テストタイプを決定します。
次に行うのはテスト設計です。ここでは分析結果をもとに、テストケースやテストデータを作成します。
その際、テストの目的や条件に合うテストパターンを想定し、適切なケースを設定しましょう。さらに、想定するテスト環境における条件の洗い出しも行うことで、スムーズに次の段階につなげられます。
続いてのプロセスは、テスト実装です。ここでは、実施手順やテスト内容を落とし込んだテストケースを作成します。
このとき、テストケースに記載する実施手順やテスト内容は、誰が実行しても同一の結果になるよう具体的に記述しましょう。実装段階では、テストケースをさらにスクリプトにして、実行できる形に落とし込み、適切なテスト環境を構築することも含まれます。
テスト環境が整ったら、テスト実行の段階に移行します。設計したテストケースに沿ってシステムを操作し、事前に定義した結果と実際の結果を比較しましょう。
テスト工程で確認した結果は、すべて記録に残すことが重要です。もし、テスト実行途中に問題点が見つかった場合、欠陥を報告し、原因を特定します。
システムの修正が必要な際は、内容を把握したうえでテストの再実行をして、同じ問題が発生しないようにしましょう。
すべてのテストケースを消化したら、結果を総括します。このとき、開発者やクライアントに報告もしましょう。基本的に欠陥が修正され、品質基準を満たしていることが確認できたら、テスト自体は終了です。
これに加えて、レポート作成を行うのも忘れてはいけません。テストプロセスの振り返りを行い、今後のプロジェクトで改善すべき点を整理することで、次回以降のソフトウェアテストに生かせます。
しかし、こうしたプロセスどおりに行ったとしても、完璧なソフトウェアを構築できるわけではありません。今回は、60代以下の全国の男女(有効回答数740)へ実施した「アプリやwebサイトのバグに関するアンケート」でのデータと合わせて、実際のユーザーの声を取り上げました。
「アプリやwebサイトなどの利用時に不具合やバグに出くわした経験はありますか?」という質問に対して「ある」と回答した方は、全体のほぼ半数にものぼりました。この結果から、非常に多くの方がソフトウェアの不具合を経験したことがわかります。
では、具体的にどのようなバグが発生したのでしょうか。実際に起こった事象としては、以下の声が寄せられました。
「アプリを開いてもページが表示されない(20代・女性)」
「画面がフリーズする(20代・男性)」
「ポイントを獲得しても反映されない(30代・女性)」
このように、そもそもサイトにアクセスできないといったバグや、画面が読み込んだままフリーズしてしまう事象が頻繁に発生しているようです。また、ポイントが反映されず、ユーザーにとって不利益になるバグも確認されました。
調査データ引用元:https://prtimes.jp/main/html/rd/p/000001581.000044800.html
これらのバグは、ユーザーにとってストレスとなるだけでなく、アプリやwebサイトの評価に影響を与えます。
こうした問題を防ぐためには、開発側がテストを綿密に行い、定期的にシステムの確認をすることが重要です。もし、バグが発生した場合は、修正とアップデートを実施しましょう。ユーザーが快適に利用できる環境を整えるために、適切な対応を行うことが大切です。
ソフトウェアテストのプロセスに携わる人々
ここまでソフトウェアテストのプロセスを解説しましたが、その過程には多くの人々が携わっています。それぞれの役割を知ることで、より効率的にソフトウェアテストを実施できるでしょう。それでは代表的な役割を紹介します。
テストマネージャーは、ソフトウェアテスト全体を担当する役職です。テスト計画を行い、進捗をモニタリングしながら、テスト完了まで携わります。
チームを指導しながら、全体のパフォーマンスを向上させ、品質目標を達成するための適切な手法を決定する重要な役割です。同時にリスク管理も請け負い、問題が発生した際には、迅速に対応策を考え、計画を再調整することも求められます。
テストアナリストは、テスト分析と設計にかかわる専門家です。主な役割は、要求仕様書をもとにテスト条件を分析し、テストケースの設計とテストデータの準備を行います。効果的なテストを実施するためには欠かせない役割です。
テストエンジニアは、主にテスト実装と実行を行います。テストスクリプトを作成し、テスト環境の設定をする技術者です。実際のソフトウェアテストは、テストエンジニアによって実施されます。
品質保証担当者は、ソフトウェア全体の品質を保証する役割です。また、テスト完了の際にはテスト結果を評価し、最終レポートの作成をします。品質保証担当者は、ソフトウェアの全体像を把握し、長期的な品質向上に向けた戦略を策定する重要なポジションです。
このように、ソフトウェアテストには多くの人々が関与し、それぞれが連携することで、高品質なソフトウェアが開発できます。しかし、どれだけ品質に注意を払っても、欠陥が生じてしまうのがソフトウェアの開発現場です。
先程のアンケート調査では、回答したユーザーの約90%と非常に多くの方が「こうした不具合に対してストレスを感じる」と答えました。なかでも、とくに強いストレスを感じる方は全体の60%にものぼります。実際に寄せられた声は、以下の内容でした。
「作業が止まってしまい、無駄な時間が発生するから(20代・女性)」
「何が原因か自分で判断できない(20代・男性)」
「動画視聴や調べ物など、やりたいことができずにイライラする(30代・女性)」
作業中にバグが発生すると、思わぬ時間のロスにつながり、いらだちを感じる方が多いようです。さらに、原因がわからないまま対処できない状況が、よりユーザーの焦りを生みだしています。
こうしたユーザビリティの問題を解決するには、ソフトウェアテストを行い、システムの安定性を十分に高めることが重要です。
まとめ
本記事ではソフトウェアテストの6つのステップと、それに携わる人々を解説しました。ソフトウェアの品質を向上させるためには、適切なテストプロセスを実施し、欠陥を未然に防ぐことが必要です。
欠陥を完全になくすことは難しいですが、継続的なチェックと改善を重ねることで、より高品質なソフトウェアを提供できます。十分なリソースが割けない場合は、ソフトウェアテストを外部に委託するのもよいでしょう。
ポールトゥウィン株式会社(PTW)では、ビジネスのパフォーマンスを最大限に引き出す環境を構築できるような支援をしています。AIを活用して業務プロセスの効率化を図り、人にしかできない技術を融合しながら、開発や運用で発生する課題解決が可能です。
ソフトウェアテストでお悩みの方は、ぜひお気軽にお問い合わせください。