はい、どうもパニック障害怠惰エンジニアです。
今回は技術的なこと、というよりは自分の考え方という感じの雑記になります。
(マークダウン式の書き方の練習もしたいので)
もっと楽がしたい
自動化をやりたいエンジニアは、たぶんこれが第一に来ると思います。
自分はそうでした。
自分の場合は特に単体テストですね、テストしてスクショして、エクセルに張り付ける。
本当に面倒だと思いました。
「もうワンクリックで全部やってほしいわ」
何度思ったことか、そしてタスクが重くなってくる(多重)ほどに目視確認のミス、必要パラメータ情報が含まれていないなどの見落としが多くなってくることに罪悪感が募る一方でした。
万能な自動化は存在しない
いろいろ調べて、やはりこれが一番ショックではありましたね。
まぁ、当たり前といわれるとそうなんですけどね。
しかし、「問題(ケース)に合わせて自動化作成することはできる」
問題は工数や時間の確保。
アジャイル開発でのテスト自動化は、ほぼ無理かも
正直、納期詰め詰め期日3日、実装して単体テストしてー、での自動化は、ほとんど不可能に近い(凄腕エンジニアとかはできそう)、次のタスクがーとか、よほどの余裕がないと無理ー。
テスト自動化の必要性
しかし、なぜテストの自動化が必要なのかについて考えてみた。
それはデグレのABテスト時、実装者以外テスト方法がわからないということがある。
つまり継続性だと思う。
機能実装者じゃないとわからんという単体テスト表の手順が多い、多い。
実装担当者が、もういませんなど言われた日には、どうしろと。。。
個人的に実装者じゃなきゃ理解できない工数を削った単体テスト表の手順書を作成する工数をテストコード記入する工数にあてたほうが、長期間の継続性でみるといいと思えるのだが、まぁ自分が口出せることじゃないので黙っておくしかない。
ということがあるので、できればテストは自動化しておくと動きがスクショと文言ではなく視覚的に動作確認できるので便利だよ。
あとABテスト時にスクショの差を比較してくれる機能もあったりと便利になってきてる。
納期にケツが決まっていて、とりあえず納品できればいいのはわかるのだが、もし長期の保守運用も担当するのであれば運用面では必要になってくるし、やらないとエンジニアの入れ替わりで簡単な機能追加後の単体テストやらせてもソース調べますなどの無駄な工数が積みあがること必至。
万能に見えて実は難しいGUI設定自動化
自動化で一番簡単ではあるけど、思わぬミスがでる。
それがGUIでの座標をしていした自動化。
環境によってブラウザの大きさ、読み込み速度などの違いによるタイミングのミスが本当に難しい。
エラーハンドリングができれば回避できそうだが、どうやるんだろうなど。
画像解析からの処理読み込み後のタイミング
機械学習などを使った画像解析からの対象へのタイミング修正ができるようになってきてはいるようだけれど、ある程度マシンスペックが必要な気がする。(学習中なのでまだわかってない)
座標よりも要素指定の自動化
Cypressを使い始めて思うのは、要素指定の自動化は画面の読み込みのタイミングくらいが問題。
あとは慣れかなーという感じに今は思える。
ソース自体も、そこまで複雑でなければすぐできる。
まぁテスト自動化ツールなので目的とは違うけれども、使えるのであれば使うが心情です。
自動化の勉強段階なので
執筆はつづくし、修正もします。