JSTQB(ALTM) シラバス学習:6 テストツールおよび自動化
2020.08.09更新
6.1 イントロダクション
この節では、テストマネージャがツールおよび自動化について考慮すべき点を明確にします。
6.2 ツール選択
テストツールは、ベンダから購入したりオープンソースのツールから入手したりします。どのようなツールを選択するかは、テストグループのニーズとライフサイクル全体にかかるコストから判断します。
6.2.1 オープンソースツール
テストプロセスのすべての局面で使用することができますが、メリットとデメリットを理解した上で使用する必要があります。
メリット
・初期購入コストが安い
・拡張性が高い
デメリット
・正式サポートがない
・特定の問題に対処する作りになっている(ベンダツールと同じ機能がない場合がある)
・拡張時に複雑性が高まる(メンテナンスコストの上昇)
・GNU GPLへの配慮が必要(変更ソフトウェアの配布義務)
・正確性が保証されない
6.2.2 カスタムツール
通常とは異なる環境やプロセスにおいてはカスタムツールによるテストが検討される場合があります。
メリット
- テストチームのニーズに適合し効率的に動作するツールを用意できる。
- 組織の他のプロジェクトで利用することができる。ただし、事前にメリット、デメリットのレビューが必要となります。
デメリット
- 作成者への依存度が高いため、メンテナンスについての文書化が必要
- 当初の利用目的とは異なる要件追加によるツールの品質低下を防ぐため、ソフトウェアプロダクトと同様の設計およびテストが必要
-
6.2.3 投資効果(ROI)
ツールを導入する場合には、以下のようなリスクやコストとメリットを比較して導入すべきか判断します。
また、テストチームが使用するすべてのツールにおける総ROIから、ツールの使用に関して長期的な戦略をとることが必要となります。
初期コスト
- 要件定義
- 評価と選択
- 購入、適用、開発
- 初期トレーニング
- ツールの統合
- ハードウェア、ソフトウェアの購入
固定費
- 所有コスト(ライセンス料、メンテナンス、トレーニングなど)
- ツールの移植
- ニーズへの適用
- 品質とプロセス改善
- テストリソース(実運用するまでの重複テスト)
リスク
- 組織が未成熟
- テスト対象のソフトウェア変更によるメンテナンス困難
- テストアナリストのテストタスクへの関与減少(自動化などにより関与しなくても良くなる)
メリット
- 反復作業の削減
- テストサイクル時間の削減
- テスト実行コストの削減
- テスト実行数の増加
- 人的エラーの減少
- 情報アクセスにかかる時間の削減
- テストタイプの増加(性能テストなど)
- 自動化実現による地位向上
6.2.4 選択プロセス
テストツールは、
- くり返し何度も使用する
- 拡張して使用する
- 複数のプロジェクトで使用する
長期的な投資であるため、候補となるツールをさまざまな観点から検討する必要があります。
検討する観点
以下の観点から、それぞれ長期的な視点で検討が必要となります。
ビジネス観点
ROI(投資利益率)の検討する
プロジェクト観点
全ライフサイクルで検討する
利用者観点
効率的で効果的な作業となるか検討する
ツールの検討
ツールの導入にあたってはロードマップを引いて能力の検討を行います。
分析
- 入力データを正しく分析処理できること
設計
- 要件からテストケースを作成できること
- テストケースを自動生成できること
- テストデータを自動生成できること
データとテストの選択
- テストデータの選択を自動、手動の使い分けができること
- 入力データに基づく選択ができること
- カバレッジ基準の選択ができること
実行
- 自動、手動の使い分けができること
- ツールの停止動作について
- 欠陥の処理時に関連テストケースのステータスを自動更新できること
評価
- 適切な結果であることの判断をどのように行うか
- ログ記録やレポート機能があること
6.3 ツールのライフサイクル
ライフサイクルを通してテストチームがツールを正常に利用できるように、テストマネージャが管理するプロセスが4つあります。
6.4 ツールのメトリクス
ツールを構成するときにツールのレポート要件を定義して実装することで、各種メトリクスをステークホルダが理解しやすい形でレポートすることができる。ステークホルダに理解してもらうために、どのようなメトリクスが必要で、どのように見せるのか、というところが大事です。
ツールごとのメトリクス
テストマネジメントツール
要件やテストケースなどからのトレーサビリティによるカバレッッジメトリクスや、テスト状況のスナップショットによるテストの進捗情報(進捗管理)
欠陥マネジメントツール
欠陥に関する原因やステータス、混入フェーズなどによるプロセス改善に役立つ情報
静的解析ツール
保守性の向上を阻害する問題に関する情報
性能テストツール
期待するシステム拡張に性能が対応できるか判断するため情報
カバレッジツール
テスト消化率によりテストの品質を示す情報