テスト自動化の素朴な疑問を調べてみた
こんにちは。
koma です。
私の所属するQAチームでは、積極的にテスト自動化を進めています。
その中でどんなテストが自動化に向いているのか?コストはどうなっているのか?
普段から気になっていた、この2点について調べてみました。
「テスト自動化の8原則」を再確認してみた
まずは「テスト自動化研究会(STAR: Software Testing Automation Research Group Jp)」のまとめるテスト自動化の8原則を確認
<テスト自動化の8原則>
1.手動テストはなくならない
2.手動でおこなって効果のないテストを自動化しても無駄である
3.自動テストは書いたことしかテストしない
4.テスト自動化の効用はコスト削減だけではない
5.自動テストシステムの開発は継続的におこなうものである
6.自動化検討はプロジェクト初期から
7.自動テストで新種のバグが見つかることは稀である
8.テスト結果分析という新たなタスクが生まれる
(テスト自動化研究会「テスト自動化の8原則」より引用)
どんなテストが向いているの?
前提として、「何のために自動化を行うのか?」といった自動化の目的を定め、どの範囲を、どの機能を、どのテストケースを自動化するのかといった目標設定を行い、目的にそぐわない工数は発生しないように注意します。
既存のテストプロセスに対して、自動化が適しているかどうかをチェックしてみる
主なチェックポイントを4つ調べてみました。
1、仕様が明確に把握でき、その資料が更新されていること
2、GUI上のオブジェクトから実行結果としてOKかNGかを判別できるようなテストケースが7割以上(目安)あること
3、ラベル・テキストボックス・チェックボックス・ボタンなどのオブジェクトIDが被っていないこと
4、年に何度もテスト実行する製品/機能であること
具体的に「自動化が適していそうなテストケース」を選定してみる
具体的にはどんな機能が自動化に向いているのかというと
1、基本機能や仕様変更が少なそうな機能
2、GUI操作のみで完結できそうなテストケースなど簡単に実装できそうなテスト
とのこと。
なお、自動テスト作成後に、エラー箇所の特定がしやすく、修正しやすい点もポイントになります。
コストが気になる
テストの自動化導入するとよいことばかりが起こりそうなイメージがありますが、実は作業工程が多くコストがある程度必要になります。
特に、導入時期は手動テストに比べて3倍以上の工数がかかると言われています。
また、環境要因でエラーとなるケースや仕様変更・メンテナンスによる工数が必要になったりもします。
そのため前提として、上記の目的・目標設定が重要です。
その上で、費用対効果を上げる方法例がいくつか見つかりました。
その1:ツール機能のみで自動化可能なテストケースから実装する
実装が容易なテストケースは工数がかからないため
その2:ユーザーが良く使う機能のテストケースから実装する
テストを実行できる回数が多いため
その3:データ駆動型のテストケースを実装する
多少実装が困難でも、自動化による費用対効果が高いため
その4:テストケースのデータ作成機能を実装する
大量のデータ作成を自動化でき費用対効果が高いため
繰り返しになりますが、簡単なGUI操作のみで完結できそうなテストケースなど実装が容易なものから実装し、困難なテストケースは後まわしにすることもポイント。
その他にも
・自動化ツールの使い方を共有し、統一する
・テストスイート、テストケース、共通スクリプトに対する概念や命名基準等誰が見てもわかるようにしておく
・テスト作成の技術を共有する
などが挙げられていました。
実際にテスト作成の中で実感していたことが多く出てきて、共感できました。
参考資料に詳しく記載ありますので、興味がある方はぜひ
参考資料
「成功するテスト自動化導入」のコツ① ~事前にやるべき5つの準備~
「成功するテスト自動化導入」のコツ③ ~効果を測る「フィージビリティスタディ」~
「成功するテスト自動化導入」のコツ④ ~費用対効果を上げるための戦略~
おしまい。
ここまで読んでいただきありがとうございました。