1.テスト戦略とは
テスト戦略は、そのシステムやプロジェクトの目標や方針を立てるプロセスです。開発したシステムやソフトウェアは、企業や組織のビジネス目標を達成するために存在しており、企業が掲げるビジネス戦略とは切っても切り離せません。
テスト戦略とテストアプローチの関係は建築の設計図と建築方法の関係に例えられます。戦略が「何を建てるか」を決め、アプローチが「どのように建てるか」を具体化します。テストアプローチはテストプロセスの効率性、効果性、および独立性を確保し、品質保証の目標達成に向けた実行可能なステップとして機能します。
2.テスト戦略とテスト計画の違い
テスト戦略とテスト計画は、品質業務における上流工程に実施します。先立ってテスト戦略を検討することが一般的です。
テスト戦略は、プロジェクトを通して、組織が将来目指す状態・姿を明確にし、それに向かうための施策や投資を検討する過程です。クラウド、自動化、そのほかさまざまなIT技術がテストの実施方法に変化をもたらしています。
品質のレベルを現状からどう上げていきたいのか。このような内外の変化を踏まえてプロジェクトのゴールを設定し、そこに到達するために求められる適切な施策や投資配分を開発初期の段階から考えるのがテスト戦略です。
一方、テスト計画は、具体的な実施計画やスケジュールを示します。これは、テスト戦略の下で、実際にどのようなテストをどのような順序で行うか、誰が担当するか、必要なリソースや環境は何か、などの詳細な計画を提供します。つまり、テスト計画は、戦略的な方針に基づいて具体的なテスト活動を実行するためのロードマップや手順書です。
簡単に言えば、テスト戦略は何をするかを決め、テスト計画はそれを実際にどのように行うかを計画するものです。
3.テスト戦略の主なアプローチや手法
STQB(※)のシラバスでは汎用的な考え方として、以下のテスト戦略が紹介されています。いくつかの手法を組み合わせて、複合的にテスト戦略を構築します。
※JSTQBとは「Japan Software Testing Qualifications Board」の略称で、日本の「ソフトウェアテスト技術者資格」を運営する団体です。
【一般的なテスト戦略(手法)】
分析的 | いくつかの要因(要件やリスクなど)の分析に基づく。分析的アプローチの例としては、リスクのレベルに基づいてテストを設計し優先度付けするリスクベースドテストがある。 |
---|---|
モデルベースド | プロダクトで必要な特性を表すモデル、例えば、機能、ビジネスプロセス、内部構造、非機能特性(信頼性など)などに基づいて、テストを設計する。例として、ビジネスプロセスモデル、状態モデル、信頼度成長モデルなどがある。 |
系統的 | 事前に定義した一連のテストケースまたはテスト条件を体系的に使用する。ここでいうテストケースまたはテスト条件には、一般的または可能性の高い故障を体系的に分類したリスト、重要な品質特性のリスト、モバイルアプリケーションやWebページに対する企業全体のルックアンドフィール標準などがある。 |
プロセス準拠 | 外部のルールや標準を使用してテストの分析、設計、実装を行う。使用する外部のルールや標準には、業界固有の標準、プロセスドキュメント、テストベースの厳密な識別や使用、組織によって課せられるプロセスや標準などがある。 |
指導ベース | テストチームの外部または組織自体の外部のステークホルダー、ビジネスドメインの専門家、技術的専門家からの助言、ガイダンス、指示に基づいてテストを行う。 |
リグレッション回避 | 既存では実現されていた能力のリグレッションを避けることを目的とする。このテスト戦略には、既存のテストウェア(特にテストケースやテストデータ)、高度に自動化されたリグレッションテスト、および標準テストスイートの再利用が含まれる。 |
承認と配布 | テスト対象のコンポーネントやシステム、テスト実行時に発生するイベントに対して対処的にテストを行う。他の戦略とは異なり、テストは事前に計画されない。先に実行したテストの結果により得られた知識に応じて、テストを設計および実装し、多くの場合、即座に実行する。対処的戦略では、探索的テストを一般的に使用する。 |
※引用:JSTQB Foundation Level シラバス バージョン 2018V3.1.J03
これらの手法を活用して、組織やプロジェクトの目指す状態に到達できるよう戦略を構築します。例えば、顧客からのクレームやバグを削減し、製品の品質を改善したい。使いやすさや使い心地、デザイン、パフォーマンスを向上し、顧客満足度を飛躍させたい。機密性、完全性、可用性などのセキュリティ要件を満たし、高いセキュリティ基準にしたい。開発期間の短縮やリソースを最適化し、生産性をアップしたい。このような希望を実現するために、プロジェクトにとって最適な施策を選んでいきます。
4.テスト戦略の立て方
ここまではテスト戦略の概要と、主な手法について紹介しました。組織やプロジェクトの展望を中長期で捉え、俯瞰して施策を選択し、それに費用や工数などの資源を配分することになります。
一般的には、以下の流れでテスト戦略を立てます。
【テスト戦略を立てる手順】
- ① 組織やプロジェクトの目指す状態の確立
- ② 今回のプロジェクトにおけるゴール
- ③ リスク分析と優先順位付け
- ④ テストのアプローチの選択
①組織やプロジェクトの目指す状態の確立
組織やプロジェクトが目指す状態を明確にします。ITを取り巻く環境は大きく変化しています。生成AI(人工知能)やクラウドの登場。社会的課題である働き手の減少が進むなかで、自動化・省人化を促進するDXの需要は拡大しています。また、高機能化・複雑化の一途をたどるソフトウェア開発において、品質への要求は高まり続けています。顧客を含むステークホルダーを中心に、目指す状態の合意を形成するのが最初のステップとなります。
②今回のプロジェクトにおけるゴール
中長期の戦略で定めた、その目指す状態になる過程においては、1回のプロジェクトでは達成できないことがあります。そのため、そこに至るまでの中間点として、今回のプロジェクトでの到達目標を決める必要があります。「何をやるか」も大事ですが、「何をやらないのか」を決めることも重要です。
③リスク分析と優先順位
設定したゴールにたどり着くために、新しい施策を導入することもあるでしょう。このステップでは新しい施策を行うにあたって、既存業務との兼ね合いで優先順位の設定や、リソースの投資配分を検討します。これまでと異なる施策をするので、リスク発生時の対応をあらかじめ想定しておくことで、品質向上につながります。
④テストのアプローチの選択
目標が決まったら、それを実現するためのアプローチを検討します。設定したゴールにあった最適な手法を選択しましょう。バグを減らしたいのか、セキュリティを確保したいのかなど目的に応じて今回のプロジェクトで採用する施策を選んでいきます。
5.まとめ
テスト戦略は、ソフトウェアテスト計画を立てるために重要なものです。企業やプロジェクトのビジネス戦略のひとつになり、新しい施策の導入やそれに伴うリスクがあることも意識してテスト戦略を立てましょう。
株式会社GENZでは、品質管理をコア領域としながらも、上流工程から幅広い範囲でご支援可能な品質コンサルティング事業部があります。お客様PMに伴走しながらプロジェクトのご支援をしていますので、ご相談ください。