自己紹介だの経緯だの
はじめまして!!記事を読んでくださりありがとうございます!
Webアプリの開発をやってる森んちゅというものです!
アプリの機能が充実してきた(嬉しい)....のはいいものの、
テストに割ける労力がない!じゃあ自動化すればいいじゃないかと一念発起した....のはいいものの
思ったより複雑そう!なのでQiitaにメモしながら頑張ろう!ついでに初心者が躓く点を共有しよう!ってな感じで始めました!
今回は準備編です!躓きポイントがあったら随時記事を書いていくつもりです!聞きたいことがあればできるだけ答えます!初心者なのでアドバイスもお願いします!
テストの全体像
今はどうやって開発してるの?
今まではバージョンリリースごとにこんな感じで開発サイクルを回していました。テストをろくにしてないのにデカいバグが見つかってこなかったので、かなり有能だと思います。特に、テストすべき事項を開発段階前にまとめておくことで、開発中は過去問を持った大学生のような万能感が生まれるのでお勧めです。
どこを自動化したいの?
まずはスモークテストを自動化できたらいいなと思ってます。(不安になって結局開発サイクル中に何度もしちゃって時間食ってるから)
その次に、UIテスト→APIテスト→DBテスト→パフォーマンステスト の順に回帰テストの自動化を行っていきたいです。
残ったサニティテストと機能テストの部分はやっぱ自分で確かめたいので、自動化はしない予定です。
どのようなツールを使うの?
スモークテストとUIテストの自動化はpytestとseleniumで何とかなりそうです。あと、色んなブラウザでのテスト結果を見たいので、webdriver_managerも導入する予定です。
##テストコードのフォルダ構造はどうするの?
ページごとにフォルダを作り、
1ページ要素をまとめたコード
2実際テストをするコード(1から要素をimportする形)
3テストデータが書いてあるcsv
4csvデータを読むためのコード
みたいな感じの構造でやってます。(後から修正する確率大)
UIの位置が正しいかどうかとかはどう見るの?
これなんすよね...Seleniumではどうしても限界があるんで...
多分テストごとにスクショを撮る仕様にして、撮ったスクショと正常なページ画面とをAIを使って見比べる感じになると思います。今んとこいいツールが見つかってないので最悪chatGPTにやってもらう感じになると思います(アドバイスくださいお願いしますお願いします)
まとめ
いやー前途多難っすねー 記事書いてるだけでもう頭痛くなってきてますわ
多分1~2年単位でゆっくりやっていくと思うので、温かい目でみてください~