こちらの記事ではJSTQBのシラバスのうち、第6章テスト支援ツールにおける以下の分野の学習内容及び学習してみて私が思ったことについて記載します。
【JSTQB(FL)対策】第6章テスト支援ツール
1. テストツールの考慮事項
1つ以上のテスト活動を支援するテストツールは以下のようなツールを使用できる。
・直接的にテストに利用できるツール(テスト実行ツール)
・要件、テスト手順、テスト結果などを効率よく扱うツール、及びテスト実行のモニタリングとレポートのためのツール
・分析と評価に利用できるツール
・テスト活動にて役に立つ様々なツール
1-1. テストツールの分類
テストツールの導入に関しては、状況に応じ、以下に記すもの1つ以上を目的とする。
・受動で実施すると大量のリソースを必要とする反復作業を自動化することにより、テスト活動の効率を向上させる。
・テストプロセス全体を通して、手動で行うテスト活動を支援することによって、テスト活動の効率を向上させる。
・テストの一貫性や欠陥の再現性を高めることで、テスト活動の品質を改善する。
・大規模な性能テストなどといった手動では実行できない活動を自動化する。
・データ比較の自動化や動作シミュレーションによりテスト信頼度を向上させる。
テストツールが支援するテスト活動によって以下のようにツールを分類する。
テストツールの中にはテスト実行結果に影響を及ぼすものがあるが、このようにツールが結果に影響を及ぼす効果をプローブ効果と呼ぶ。
・テストとテストウェアのマネジメントの支援ツール
・静的テストの支援ツール
・テスト設計とテスト実装の支援ツール
・テスト実行と結果記録の支援ツール
・性能計測と動的解析の支援ツール
・特定のテストに対する支援ツール
テストとテストウェアのマネジメントの支援ツール
マネジメントツールによってはソフトウェアライフサイクル全体であらゆるテスト活動に適用できる。
テストウェアのマネジメントを支援するツールには以下のツールがある。
・テストマネジメントツールとアプリケーションライフサイクルマネジメントツール
・要件マネジメントツール
・欠陥マネジメントツール
・構成管理ツール
・継続的インテグレーションツール
静的テストの支援ツール
対象ツールには静的解析ツールがある。
テスト設計とテスト実装の支援ツール
テスト設計ツールはテスト設計と実装で保守性の高い作業成果物の作成を支援する。
対象ツールには以下のものがある。
・モデルベースドテストツール
・モデルデータ準備ツール
テスト実行と結果記録の支援ツール
テスト実行と結果記録活動を支援する。対象ツールには以下のものがある。
・テスト実行ツール
・カバレッジツール
・テストハーネス
性能計測と動的解析の支援ツール
性能テストとロードテストには主導では効果的に実行ができないため、これらのテスト活動では性能計測ツールと動的解析ツールが必要不可欠となる。
対象ツールには以下のものがある。
・静的テストツール
・動的解析ツール
特定のテストに対する支援ツール
全般的なテストプロセスを支援するツールに加え、非機能特性にために特定のテストの問題を支援するツールも存在する。
1-2. テスト自動化の利点とリスク
テスト自動化の利点としては以下のものがあげられる。
・反復する手動作業の削減と時間の節約が可能である。
・一貫性や再実行性が向上する。
・評価の客観性が向上する。
・テストに関する情報へのアクセスの容易性が向上する。
テスト自動化のリスクとしては以下のものがあげられる。
・機能や使いやすさといった、テストツールの効果を課題に期待する。
・初めてテストツールと導入する場合に要する時間やコスト、工数を過小評価する。
・大きな効果を継続的に向上させるために必要な時間や工数を過小評価する。
・ツールが生成するテスト作業成果物をメンテナンスするために必要な工数を過小評価する。
・ツールの過剰な依存をする。
・ツール内にあるテスト作業成果物のバージョン管理を怠る。
・重要なツール間での関係性や相互運用性の問題を無視する傾向にある。
・ツールベンダーがビジネスを廃業したり、ツール販売から撤退したり、別ベンダーにツールを売ったりするリスクがある。
・ツールのサポート、アップグレード、欠陥修正に対するベンダーの対応が悪い。
・オープンソースプロジェクトが停止する。
・新しいプラットフォームや新規技術をサポートできない。
・ツールに対する当事者意識が明確でない。
1-3. テスト実行ツールとテストマネジメントツールの特別な考慮事項
テスト実行ツール
テスト実行ツールは自動化テストスクリプトを使用してテストを実行する。
テスト実行ツールで大きな効果を出すために、以下のアプローチを実施する。
・テストをキャプチャするアプローチ
→手動テスト担当者の操作をそのまま記録することでテスト実行手順をキャプチャ―するのは魅力的であるが、大量のテストスクリプトのための拡張は不可能である。
予期しない事象が起きると動作が不安定になるためメンテナンス作業が必要になる。
・データ駆動テストアプローチ
→テスト入力と期待結果をスプレッドシートに記述してスクリプトから分離する。
そして、入力データを読み込み、異なるテストデータで同一のテストスクリプトを実行する。
・キーワード駆動テストアプローチ
→実行動作を定義するキーワードを汎用スクリプトが処理し、キーワードスクリプトを呼び出して付随するテストデータの処理を行う。
テストマネジメントツール
テストマネジメントツールが他ツールやスプレッドシートとのインターフェースが必要になる理由は以下のとおりである。
・組織が必要とするフォーマットで利用可能な情報を作成する。
・要件マネジメントツールで要件に対する一貫したトレーサビリティを維持する。
・構成管理ツールを使用して、テスト対象のバージョン情報を同期する。
2. ツールの効果的な使い方
2-1. ツールを選択する際の基本原則
組織に向けたツールを選択する際の基本原則は以下のとおりである。
・自分たちの所属する組織の成熟度、長所と短所を評価する。
・ツール活用のためにテストプロセスを改善する機会を識別する。
・テスト対象で使用する技術を理解して、その技術と互換性のあるツールを選択する。
・組織内で既に使用しているツール(ビルドツール、継続的インテグレーションツール)を理解して、互換性と統合の可否を明らかにする。
・明確な要件と客観的な基準を背景にツールを評価する。
・無料試行期間があるか否や確認する。
・ツールベンダー、もしくは無料ツールのサポートを評価する。
・ツールを使用するためのコーチング及びメンタリングに関する組織内での要件を識別する。
・ツールに携わる担当者のテストスキルを考慮し、トレーニングの必要性を評価する。
・様々なライセンスモデルの長所・短所を考慮する。
・具体的なビジネスケースに基づいて、費用対効果を見積もる。
・最後にテスト対象のソフトウェアに対し、インフラストラクチャーの中で効果的に使用可能なツールかどうかを立証する。(コンセプトの証明を行う)
2-2. ツールを組織に導入するためのパイロットプロジェクト
・ツールの知識を深め、強み・弱みを理解する。
・現状のプロセスや実践しているやり方にツールをどう適用させるかを評価する。
・ツールやテスト作業成果物の標準的な使用方法、管理方法、格納方法、メンテナンス方法を決定する。
・想定する効果が妥当なコストでジル現可能かどうかを見極める。
・ツールによって収集およびレポートをさせたいメトリクスを理解し、メトリクスを確実に記録し、レポートするようにツールを設定する。
2-3. ツール導入の成功要因
組織内でツールの評価、実装、導入、日々のサポートを成功させるために必要なことを以下に挙げる。
・ツール未使用の部署にツールを順次展開する。
・ツールが適用できるようにプロセスを調整、改善する。
・ツールがユーザーに対し、トレーニング、コーチング、メンタリングを行う。
・利用ガイドを定める。
・ツール使用中に得られる情報の集約方法を実装する。
・ツール利用状況や効果をモニタリングする。
・ツールのユーザーサポートを提供する。
・すべてのユーザーから得られた教訓を収集する。
3. エピローグ
私は今までの客先でテスト支援ツール(ファイル整形ツールなど)を使用していましたが、第6章テスト支援ツールを学習してみて、テスト活動の際にツールをは利点とリスクを並行ししながら使用しなければならないと改めて思いました。