何故テスト自動化は最初の一歩が重いのか…
はじめに
こんにちは。GO株式会社 プロダクトマネジメント本部 クオリティマネジメント部の二河です。
テスト自動化未経験者が、無意識のうちに避けていたテスト自動化にどうチャレンジし、どのように自動化導入までするようになったのかの話をさせていただこうかと思います。
今後どうしても業務でどうしても自動化にチャレンジしないといけないといった人の参考になれば幸いです。
ちなみに今回はAutifyというコーディングスキルがそこまでなくてもよいテスト自動化ツールを使用することを前提としています。
いざ取り組もうと思っても、重い腰がなかなか上がらないのがテスト自動化
自分が業務で自動化に取り組まないといけないとなった時に思ったことをざっと挙げてみると、だいたい👇のような感じになります。
最近流行している「自動化」について取り組んでいかねばという漠然とした使命感はある…
でもE2Eテスト自動化の経験などないので、何からどう手を付ければよいのか…
そして未経験者にとってテスト自動化には何か心理的な壁のようなものがあり、第一歩を踏み出しにくい…
自動化の進め方とかそういうのは世の中にあふれているが、どのように最初の一歩を踏み出せばよいかということを論じている資料はなかなか見つからず…
新しい仕事にチャレンジすることは大好きなのですが、
「テスト自動化」となるとさすがに「どうしたらよいのだろう」という不安な気持ちにさせられてしまいます。
そもそも何故テスト自動化しようということになったのか
そもそも何故自動化しようと思ったのか…
純粋にリソース不足でシステム全体のリグレッションテストが実施できていなかったことによりデグレが度々発生するという、QAとして誤魔化しのきかない状況にあったことがまず根底にあります。
そこで別チームが導入検討していたAutifyでお試しできる環境があったので、ちょっと手の回らない箇所を自動化してみようと軽く考えてみたことが事の始まりです。
ただ、いざ自分のようなテスト自動化未経験者がやってみようとすると、「未経験からくる漠然とした不安 = 心理的な大きな壁が」目の前にドーン!と築かれていることに気づきます。
まずこの段階で一気に気が重くなりますね。
壁が出来た原因を考えてみた
大きな壁を目の前にした状態のままでは、重い腰はなかなか上がらず、結果として仕事は全然進まない…
そこで、まず何故そのような壁が作られているのかと考えたところ、ぼんやりと次のようなことが見えてきました。
そもそもどこから手を付ければよいのかの勘所が見えにくい…
「未経験の分野」というのと、「自動化は失敗する」という記事をよく目にする…
スクリプトはほとんど書いたことないし…
新規の取り組みなので、予算があるわけでもないし… etc...
もっと掘り下げて具体化していくと…つまりは次のようなことに集約されるのかなと
原因①:「どう」自動化していけばよいのかから考えないといけない
原因②:先任者がいないことにより、始め方のノウハウがない
原因③:コーディングスキル等の技術不足による漠然とした不安
人生初の作業となると億劫になるけれど、なぜそうなるかを考え、その原因を具体化させていけば、後はその対策を考えればよいという次のステップが見えてくる。
過去の失敗から学んでみよう
どこから手を付けていけばいいのか分からない
↓
「戦場の霧」と同じで、情報がないことから不安になってくる
↓
同じ道を歩こうとしてミスった人がいたら、知っておきたい。
↓
先人の知恵はアンチパターンに眠っている
…ということで、まずはネットに豊富にある過去の失敗事例等を学ぶことにより、安心で安全な道を探してみようと思い立ちました。
失敗しない道があるのであれば、その分壁も低くなる…はず
よく目にするアンチパターン
人から聞いたり、ネットで目にすることが多いアンチパターン(失敗例)としてはほぼ以下の4つに絞られてきます。
思いつくまま、何となく大事そうなテストケースから自動化する
自動化すること自体が目的と化している
手動テストをそのまま自動化する
自動化できること、できないことを見極めない etc...
アンチパターンの原因を突き詰めていくと、未計画でゴールを見定めずに見切り発車するという結論に至るかと
では、見切り発車しないためには・・・
・「なにを」「どこまで」テストしないといけないのかという視点
・自動化が実現可能かの調査(フィージビリティ調査)
失敗しない第一歩をどうしたか
ではその失敗しないように進む際に、具体的にまず何をしたかというと、以下の3点が挙げられます。
「なに」に対して「どのような」検証が必要なのかを検討
テスト対象の構成を洗い出して表にする(調査表)
その表に沿って、実際にツールを動かして自動化可能かを調査
簡単に言えばフィージビリティ調査のようなものかと
参考までにに試しに作成した調査表は👇のような感じです。
考えたら、やってることは普段のテスト業務でやっている「テスト要求分析」的なものと大差ない。…というか考え方としては同じかも。
テストを手動でやるか自動でやるかということだけで、テストレベルは違うにしても、テスト自体には変わりはないわけだなと。
失敗しないために慎重に進んだ結果…
フィージビリティ調査の結果、自動化すべきポイントが見えてきました。
Autify使用して調査したこともあり、ツールの特性等も肌間で分かってきたのも良きポイントでしたね。
あとフィージビリティ調査の過程で、副産物として以下のことも見えてきました。
・カバレッジ範囲が見えた
・作業工数が実感として見えてきた
→結果としてマイルストーンが見えた
このようなことが見えてくれば、見切り発車することなく自動化は進められそうです。
重い腰を上げた結果、最終的には…
先が見えないから不安に感じる…
…ということは、逆に不安が解消されていく過程で色々見えてくる
色々と見えてくれば、次のステップも明確になってくる
色々と段階を踏んで明確にしていった結果・・・
説得力のあるテスト計画書をベースに実現性を説明できるまでになりました。
最後に
実際に取り組んだ内容としては、決して難しいことではなく、普段のQA業務で行っている内容と、考え方の面ではさほど変わりはなかった気がします。
未経験だと「テスト自動化」という言葉が独り歩きしてしまい、取っ掛かりにくいという雰囲気になっていただけなのかも。
「テスト自動化」は初めてでも、テスト自体の経験があれば、
それを存分に活かすことで、少しずつでも何かしらできることは見つかると思います。
まずはそこから一歩ずつでもいいのかなと思います。
小さな成功体験をするだけでも、重い腰は不思議と消えてなくなるというお話でした。
最後になりますが、品質管理を担うクオリティマネジメント部は、課題や難しい局面を、共感しながらともに成長・チャレンジしてくれる仲間を探しております!
少しでもご興味があれば、カジュアル面談も受け付けていますので、お気軽にお声掛けください。
■GO株式会社 採用情報
https://goinc.jp/career/