【JSTQB(FL)対策】第5章テストマネジメント<5.1テスト組織~5.2テスト計画作業と見積り
こちらの記事ではJSTQBのシラバスのうち、第5章テストマネジメント分野<5.1テスト組織~5.2テスト計画作業と見積り>における以下の分野の学習内容及び学習してみて私が思ったことについて記載します。
1. テスト組織
1-1. 独立したテスト
ある程度の独立性を確保すると開発担当者とテスト担当者の間の認知バイアスの相違により、効果的に欠陥を発見することが可能である。
自分の誤りは自分では気づきにくいことが多いため、第三者に客観的に見てもらうことが有効である。
テストにおける独立性のレベルを以下に列挙する。
(列挙順が上であるほど独立性のレベルが低い)
・独立したテスト担当者不在(開発担当者が自分のコードをテストするのみ)
・開発チーム(もしくはプロジェクトチーム内)に所属する、独立した開発担当者、またはテスト担当者(開発担当者が同僚の成果物をテストする場合もある)
・組織内にある独立したテストチーム、またはグループでプロジェクトマネージャーや上位管理者の直属の組織
・顧客やユーザーコミュニティから派遣されたテスト担当者、またはセキュリティや使用性、移植性など特定のテストタイプ専門の独立したテスト担当者
・組織外から独立したテスト担当者(オンサイト、またはオフサイトで作業する)
独立したテストを実施することによる利点と欠点をそれぞれ以下に記載する。
・利点
→独立したテスト担当者は開発担当者とは違った背景、技術的視点、バイアスを持つため、開発担当者とは違った種類の故障を検出する可能性が高い。
→独立したテスト担当者は顧客が行った仮定について検証、説明の要求、または、反証を仕様作成時及び実装時に行うことができる。
→独立したテスト担当者は顧客に対して圧力なしに正直に客観的な態度で報告が可能である。
・欠点
→開発チームから隔絶された場合、協力関係の欠落や開発チームへのフィードバック提供の遅延、開発チームとの対立を引き起こしてしまう恐れがある。
→開発担当者の品質に対する責任感を薄れることがある。
→独立したテスト担当者はボトルネック(進捗の妨げ)として見られることがある。
→独立したテスト担当者にテスト対象の情報などの重要な情報が伝わらないことがある。
1-2. テストマネージャーとテスト担当者のタスク
テストマネージャーのタスクはテストプロセスに対して全体的な責任を持ち、テスト活動においてリーダーシップを適切に発揮することである。
テストマネージャーの典型的なタスクは以下のとおりである。
・組織のテストポリシーやテスト戦略を開発もしくはレビューを実施する。
・プロジェクトの背景を考慮したうえでテスト活動を計画する。
(テストアプローチの選択やテスト実施の際に必要な時間・工数・コストの見積もり、リソースの獲得、テストレベルやテストサイクルの定義、欠陥マネジメントの計画を含む)
・テスト計画書の作成および更新を実施する。
・テスト進捗レポートとテストサマリーレポート収集した情報に基づいて準備し、配布する。
・テスト結果やテスト進捗に基づいて計画を修正し、テストコントロールのために必要なあらゆる対策を講じる。
・構築するテスト環境を決定する。
テスト担当者はテストマネージャーの指示に従い、テストの準備や実行をする。
テスト担当者の典型的なタスクは以下のとおりである。
・テスト計画をテスト担当者の観点でレビューすることによって貢献する。
・テストケースとテスト基準を設計し、実装する
・テスト環境を設計、セットアップし、検証する
・テストデータを作成、及び入手をする。
・詳細なテスト実行スケジュールを作成する。
・テストケースを実行し、結果を評価して期待結果との逸脱を文書化する
・適切なテストツールを使用して、テストプロセスを円滑にする。
・必要に応じてテスト自動化をする
・ほかの人が開発したテストケースをレビューする。
2. テスト計画作業と見積り
2-1. テスト計画書の目的と内容
テスト活動のテスト計画の内容としては以下の通りである。
・テストに対し、どのような範囲で、どのような目的で、どのようなリスクで実施するかを決定する。
・テストに対するアプローチを定義する。
・テスト活動に対する人的リソースやその他リソースを決定する。
・テスト分析、設計、実装、実行、評価の活動を日付や状況を考慮してスケジューリングする。
・テストに対するモニタリングとコントロールのためのメトリクスを選ぶ
・テスト活動に対する予算を決定する。
・テストドキュメントの詳細度と構造を提供する。
2-2. テスト戦略とテストアプローチ
3. テスト戦略とテストアプローチ
テスト戦略の種類としては以下の7種類があげられる。
・分析的
・モデルベースド
・系統的
・プロセス準拠
・指導ベース
・リグレッション回避
・対処的
分析的
要件やリスクなどといった様々な要因の分析に基づき、どのようにテストを実行していくのかを決定する。
モデルベースド
機能や内部構造などといったプロダクトで必要な特性を表すモデルに基づいてテスト設計をする。
系統的
重要な品質特性リストなどといった事前に定義した一連のテストケースまたは、テスト条件に基づいてテストを実施する。
プロセス準拠
外部ルールや標準に基づいてテストの分析・設計・実装を行う。
指導ベース
外部のステークホルダーや専門家の助言、ガイダンス、指示に基づいてテストを実施する。
リグレッション回避
既存では実現されていた能力のリグレッションを避けることを目的としてテスト戦略である。
対処的
テスト対象のコンポーネントやシステム、テスト実行時に発生するイベントに対してテストを実行するテストを実施する。
3-1. 開始基準と終了基準
開始基準はテスト活動開始するための事前条件を定義する。
開始基準を満たしてテスト活動を開始しないと、難易度が上がり、要する時間が増加し、コストやリスクが発生する。
終了基準はテストレベル、または一連のテスト完了を宣言するための達成条件を定義する。
開始基準はテスト可能な要件、ユーザーストーリー、テストアイテム、テスト環境、テストツール、テストデータ、リソースの準備ができていることを指す。
終了基準は計画したテスト実行の完了やカバレッジ、未解決の欠陥件数が号された制限内であること、在損欠陥想定数が少ないこと、品質特性を十分評価していることを達成していることを指す。
3-2. テスト実行スケジュール
テスト実行スケジュールは優先度と依存関係によって効率的なテスト順序を決めていく。
テストケースの実行順序は優先度が最も高いテストケースを最初に実行するのが一般的であるがテストケース、またはテスト対象の機能に依存関係がある場合は依存関係も視野に入れる。
3-3. テスト工数に影響する要因
テスト工数の見積もりに関しては以下の要素を考慮しなければならない。
・プロダクトの特性
→プロダクトに関連するリスク
→テストベースの品質
→プロダクトの規模
→プロダクトドメインの規模
→品質特性の要件
→テストドキュメントの詳細度に関する要求レベル
→法規制への適合性の要件
・開発プロセスの特性
→組織の安定度合いと成熟度合い
→使用している開発モデル
→テストアプローチ
→使用ツール
→テストプロセス
→納期に対するプレッシャー
・人の特性
→参加メンバーのスキルや経験
→チームのまとまりやリーダーシップ
・テスト結果
→検出した欠陥の数と重要度
→必要な再作業の量
3-4. テスト見積りの技術
テストを正しく実行するために必要な工数は以下の技術を使用して工数を見積もる必要がある。
・メトリクスを活用する
→以前の類似プロジェクトのメトリクスや典型的な値を基にしてテスト工数を見積もる。
・専門家の知識を基にする
→テスト担当者の経験や専門家の見積もりに基づいてテスト工数を見積もる。
4. エピローグ
第5章テストマネジメント分野<5.1テスト組織~5.2テスト計画作業と見積り>を学習してみて、今までの案件でテスト実行を指示していたテストマネジメントがどのようなことを考慮してどのように作業をするのかが一段階理解できたような気がしました。