DiscussionMemo TestAutomation2nd - AIshiji/SoftwareTestAutomation-ReadingCircle GitHub Wiki
第2回テスト自動化標準化ガイド読書会におけるディスカッションメモです。
テスト自動化標準ガイド「第3章スクリプティングの技法」で、5つのタイプのスクリプティング技法が紹介されています。それぞれに、概要・長所・短所の記載もありましたが、この機会に、実際の現場で参加者の方々が、どこまでを実務として実行できているか、その際のメリット・デメリットをまとめて議論してみました。
テスト自動化標準ガイド「第3章スクリプティングの技法」で、5つのタイプのスクリプティング技法の記載がありましたが、実際の現場で参加者の方々が、どこまでを実務として実行できているか、その際のメリット・デメリットをまとめて議論してみました。
リニアスクリプト、構造化スクリプト、共有スクリプト、データ駆動スクリプト、キーワード駆動スクリプトのうちリニアスクリプトが多いと思われましたが、参加者の皆さんの中で、データ駆動、キーワード駆動までリーチしている方々も多くいらっしゃいました。議論の中で、リニアスクリプトから始めることが必ずしもバッドプラクティスになるとは限らないということ、キーワード駆動スクリプトは周囲に対して説得力のある概念ではあるが、安定稼働はなかなか難しい側面があるなどの議論がありました。
キーワード駆動スクリプト
メリット
- ラーニング&メンテナンスコストが低い
- テストの仕組みの選択肢として良さそう
- 記述しやすい
### デメリット
- コア技術理解の欠如(Selenium, UFT…)
- 書いた意図通りに動いてくれないと止まる
- 立ち上げまでが大変
データ駆動スクリプト
メリット
- コスト的にちょうどよい
- ほどすべてのテスティングフレームワークに標準装備されている
- Excelデータ書ける
- 複数の環境でもデータ変えるだけで対応できる
- 同じようなスクリプトが簡単にできる
- 回帰テスト・単体テストがやりやすい
- 開発者以外でもテストケースを増やすことができる
デメリット
- 完全にDRYにできているかは疑問
- SpockみたいなBDDツールを使うことで、少しマシになっている
- メンテの大変さは、データ駆動だから、ってことだけが原因ではないと思うが、大変
共有スクリプト・構造化スクリプト
メリット
- 工数削減できる
- 他プロジェクトでも使える
- シナリオの階層とスクリプトのロジック共有化
- 保守メンテナンス工数削減
- 複雑な操作可能
- リニアスクリプトに比べると流用がしやすい
- テストケースを増やしやすい
デメリット
- 1つ失敗すると、みんな失敗する
- カオス
- 初期実装が大変
- テスターのほうが作成できない
- 呼び出し元の情報入力が必要
リニアスクリプト
メリット
- すぐできる
- 仕事がふりやすい
- あまり考えずに実行できる
- 導入の敷居が低い
- アプリをまたがった操作が楽
- みてそのまま。レビューコストが低い
- ツール提供機能により、開発スキルが低い人でもできる
デメリット
- 次のプロジェクトで使えない
- 改修しにくい
- メンテコストが高い
- 位置がずれると実行失敗する
- 変更に弱い