テスト自動化ツールの導入方法

# テスト自動化のメリットとデメリット
まずは、自動化ツールを導入するか検討するために、導入のメリットとデメリットを考える。メリットとデメリットは以下の通り。

## メリット
1. 何度も繰り返す手作業を省ける　
例：リグレッションテストの実行、テストデータの再入力、期待結果と実際の結果の比較		
2. 自動化によってヒューマンエラーの防止ができる(テストデータを正確に作れる、テスト結果の比較の精度が上がる、テストデータの入力精度が上がる)		
3. 指標に沿って集計ができるようになる
例：カバレッジなど		
4. テストマネジメントとテスト結果のレポーティングのための集計を用意してくれる		
5. テスト実行期間が短縮される		
6. テスト担当者がテストケース設計に費やせる時間が増える		

## 自動化の潜在的リスク	
1. ツールの効果に過剰な期待を持つ		
2. ツールの導入、自動化用のスクリプトの保守、手動テストプロセスの変更に必要な時間、コスト、労力の見積もりが過少		
3. 実は手動テストの方が低コストの場合がある		
4. ツールを信頼しすぎて担当者がテスト中に批判的に考えなくなる		
5. ツールのベンダーがサポートを終了したり、不十分であるリスクがある		
6. オープンソースのツールは、アップデートがされなくなるか、内部コンポーネントが頻繁にアップデートされる可能性がある	7. 自動化ツールが開発プラットフォームと互換性がない		
8. 規制や安全基準に適合していないツールを選んでしまう		
9. ツール使用のリスク	
チームがツールを使用するほど成熟していない			
10. テスト対象のソフトウェアの変更があると、ツールのアウトプット(ドキュメントなど)の修正が必要になる。ツールでドキュメントなどのメンテナンスが煩雑になる。			
11. テストのプロがテストを行う場合に比べ、テストが十分に欠陥を発見できなくなる			
12. ツールの投資効果が表れるまでは時間を要することもある	13. ツールが素早くツールの使い方を学習できるように教育する必要がある。			



# ツール選択時に考慮すること	
まず、ツールの選択肢は2つある。
1.ベンダーからツールを買う 
2. オープンソースのツールを使う				
		
## ツールごとの特徴	
### オープンソースツール
- 機能は、テストケース管理、欠陥の修正などの追跡、テストケースの自動生成を含む。			
- メリットは、ユーザがツールを改造したり拡張できること。
-  注意すべき点
    1.公式のサポートがほぼない。ただし、非公式のサポートが提供されているツールもある。
    2.オープンソースツールが、類似のベンダーツールにはある機能を持たない場合がある。そのため、ツール選定にあたってはテストのニーズを確実に分析する必要がある。
    3.ツールをカスタムしすぎて、複雑性とオーバーヘッドが増加すること。その結果、オープンソースのツールを使う費用対効果が下がること 
    4. 法的な制約に抵触しないように注意　多くのオープンソースのツールにはGNU GPLがついている。その場合、ツールをテストのために変更して組織に再配布する場合、全てのユーザがソースコードを利用できるようにすべきである。
    5.セーフティ/ミッションクリティカルなソフトウェアを開発する組織、規制準拠が必要な組織の注意点　そのような組織は、オープンソースのツールが向いていない可能性がある。というのも、それらのツールは大抵正確性を保証しないためだ。			

### カスタムツール
- これは、テスト担当チームが、独自に開発する。			
- メリットは、ツールがプロジェクトのニーズにぴったりと適合しやすいことだ。			
- デメリット
1.ツールのメンテナンスの手間がかかることだ。ツールの作成者以外もメンテナンスできるように文書化しておく必要がある。
2.時間がたつと、ツールに新機能が追加されたり、拡張されたりする場合がある。これにより、ツールが正常に機能しなくなる可能性がある。そのため、テストマネージャは、カスタムツールもソフトウェアプロダクトの1つであり、一般的なソフトウェアプロダクトと同じような開発上の問題が生じる可能性のあることを意識する。ゆえに、カスタムツールも、設計とテストが必要である。		

## 費用対効果(ROI; Return On Investment)の考慮
- ツールは、組織に0より大きなROIをもたらさねばならない。それゆえ、ツールの入手/作成前に、コストメリットを分析する必要がある。この分析は、固定費とイニシャルコストの両方で検討する。コストの内訳は、金銭的コスト、リソースと時間のコスト、ツールの価値が減少するコストである。	
- 初期コストの内容は以下である。
・ツールの要件定義
・ツールとベンダーの評価と選択
・ツールの購入、適用または開発
・ツールに関する教育
・他のツールとの統合
・ツールをサポートするために必要なハードウェア・ソフトウェアの購入"			
- 固定費の内訳は以下のとおりである
・ツールを所有するコスト
・ライセンス料金とサポート料金
・ツール自体のメンテナンスコスト
・ツールにより作成された成果物のメンテナンス
・教育コスト
・別の環境へのツールの移植
・将来のニーズに合わせてツールを調整すること
・ツールを使うためのプロセス改善"			
- 機会費用にも注意	
ツールの使用に伴う機会費用すなわち時間は、実際のテストのタスクでも費やした可能性がある。		

# ツール導入のためのロードマップを作成する
ツール導入を決定したら、導入のためのロードマップを作成する。

1. チームの成熟度を評価する(ツールを使いこなせるか)			
2. ツールの要件を定義する		
3. 候補のツールを評価する			
4. 候補のサポートを評価する			
5. ツールを使用するための教育の要件を特定する			
6. 現行のテストチームの自動化スキルに基づいてどれくらいの教育が必要かを確認する			
7. コストメリットを見積もる	
		
	
# マネジメントする必要のあるプロセス	
プロセスは、
調達、サポートとメンテナンス、ツールのメンテナンス、廃棄
である。

## 調達	
ツールを独自に構築する場合は、テストツールの管理者を割り当てる。ツールの使用前に、成果物の格納場所、命名規則などを決定する。ツールの使用の教育を行う。		

## サポートとメンテナンス
ツールを保守する責任者を決める。他のツールと連携させる場合は、データ変換とプロセスを検討する。		

## ツールのメンテナンス
環境、ビジネスニーズ、ベンダーの問題によってツールが変化することがある。それでも使用し続けられるようにする。		

## 廃棄	
ツールの利用が終了したら、ツールで提供されていた機能を置き換える。データは保持とアーカイブする必要がある。		

# ツールが提供するテストメトリクス
- カバレッジメトリクス。要件からテストケース、自動化スクリプトに至るトレーサビリティをツールが認識できるからである。また、テストの実行のステータスを集計できる。				
- 欠陥マネジメントツールは、欠陥のステータスや分布の情報を集計できる。				
- ツールのレポート要件は、ツールを選択する際に定義しておく。そして、ツールを用意する際に、レポート機能を実装する。	


# 参考資料

テスト技術者資格制度
Advanced Level シラバス日本語版
テストマネージャ
Version 2012.J04


https://jstqb.jp/dl/JSTQB-Syllabus.Advanced_TM_Version2012.J04.pdf