ソフトウェアテスト・QA勉強会【(仮)テスト自動化の光と闇(1年間の苦労話)】 を聞いて


はじめに

テスト自動化に関して「【増席】ソフトウェアテスト・QA勉強会【(仮)テスト自動化の光と闇(1年間の苦労話)】 」というセミナーを聞いてみた。
https://d-cube.connpass.com/event/149831/

光と闇とかいているけど、発表タイトルに闇がやたらと多いwww

タイトル 発表資料
テスト自動化の光と闇 (未公開)
クロスブラウザテストの闇と闇と闇 https://qiita.com/emurin/items/e5f4f1552cab203f777f
自動化立ち上げからの苦労話(闇) https://speakerdeck.com/tsuemura/kurosuburauzatesutofalsean-toan-toan
しくじり先生~アジャイルテスト自動化立ち上げ迷走記~ https://speakerdeck.com/pineapplecandy/failure-teaches-success-in-automated-testing-development

アルアルとか思いながら闇な話を聞いていたけど。

自動化の8原則

自動化する前に、まずは8原則をしっかりと理解する必要がある。

  • 手動テストはなくならない
  • 手動でおこなって効果のないテストを自動化しても無駄である
  • 自動テストは書いたことしかテストしない
  • テスト自動化の効用はコスト削減だけではない
  • 自動テストシステムの開発は継続的におこなうものである
  • 自動化検討はプロジェクト初期から
  • 自動テストで新種のバグが見つかることは稀である
  • テスト結果分析という新たなタスクが生まれる

ひとつずつの詳細はまた調べて自分なりの解釈を考えていこうと思うが、これを知らないで自動化すると確実に失敗する。

テスト自動化への挑戦と失敗

何回かテストの自動化をしようと試みたが、途中で立ち消え自然消滅した経験がある。理由は以下のような様々な要因があったと思う。

  • リグレッションテストがほぼない
  • 新しい機能のテストが中心
  • 環境の追加のテストは数年に一回
  • (マイクロアーキテクチャではなく)モノシステム
  • テスト技術、知識レベルの低さ
  • 異動
  • テストに対する低い文化度
  • 。。。。などなど

そもそも自動化するメリットがないじゃないのっていうことが目白押しである。

自動化の目的

そもそも、自動化する目的はなんだろう。。。ということを考えてみた。

個人的には、毎回やらないといけないが、眠たくなるような単純作業(セミナーでは修行な作業と言っていたかな?)を自動化するべきだと思っている。

人の手作業でやっていたら、当然ミスもするしばらつきも出る。
機械的にやらせたほうがばらつきはなくなるので単純作業であれば、断然自動化すべきと考えている。

また、千手観音みたいに手がいっぱいないと同時に実行できないとか(人が1000人いればできるけど)現実的に人間が実施することが困難なものについては自動化せざるを得ない。

そういうことで、1回テストしたら、ほぼ再利用せずバグが出たときに過去のテストの履歴を見るだけなどであれば、はっきり言ってテストの自動化する意味もない。

セミナーでも言っていたが、目的もなく作業が楽になるからという思いで単純に自動化すると失敗することになる。

自分たちのテストや開発工程で、自動化すべき(自動化でないと実行できない)作業をよく考えてから自動化に取り組むべきだということをセミナーで再確認した

できるところから

自動化はできるところから実施していくことが大事だと思う。

例えば、以下のようなことからスクリプトなどを作って自動化していくことが大事だし、立派な自動化と考えている。

  • 大量のテストデータを作らないといけない
  • 様々なテスト環境が必要
  • 同じようなデータを何回も送信しなければならない
  • 永遠とボタンを押し続けなければいけない
  • テスト結果などのデータ(ファイル)比較や差分

テスト自体(とくにE2Eなどの)自動化は無理でも、少しずつでもテストの自動化をしていけばいいんじゃないかと思うテスターでした

この作業、ほんと、めんどくせーなーっと思った時が自動化しどきですよ