見出し画像

自動テストでの現在の私の立ち位置@2023/10/10

どうも~!

今回、自動テスト用のnoteを専用に分けました。
とは言え、そんなにバリバリ書いていくつもりはありません。
とりあえず、今、どういう状況なのかをまとめておきます。

2013~2016年あたり

ウェブサイトの開発の仕事を探してたら、経験がないため、私にやらせてくれる会社がなくて、一方で、スマホアプリの開発やらせてくれるって会社に入ったら、そんな仕事は全然なくて、結局、Seleniumの仕事になりました。

Selenium WebDriverをJavaで使って、自動テストを書いてました。ちっちゃいプロジェクトをいくつもやって、Page-ObjectパターンのJavaコードを、独自の生成器で生成したりとか、そんなことまでやってました。

社内には、Selenium IDEのコードとかもあったようですが、とてもじゃないですが、後から来てメンテできる気がしない、スーパーガラパゴス状態だったので、Javaで書き直させてもらったりとかしてました。

でも、続けていくってなると、しんどいなぁ、やめたいなぁ、普通にWebサイト作らせてほしいなぁ、ってずっと思ってて、限界感じたので、会社を辞めました。

2016~2021年あたり

基本的にウェブサイトの開発ができる会社と聞いて入ったんですが、たまに、Selenium WebDriverを使ったJavaのテストコードをレビューしたり、保守を手伝ったりっていうのを、たまーにやるくらいで、基本的には、Seleniumやってほしそうな人に遭遇しても、極力逃げ回ってて、あまり関わらずに済んでました。社内では、他に、Selenium IDEのコードもあるようで、カオスな感じになってる気配でした。

2021~2022年あたり

会社として、私の置き場所に困ったようで、テスト部門に突っ込まれたんですが、自分はプログラマーだという認識で、さすがに手作業でテストする気がさらさらなかったので、最低限、自動テストにはさせてくださいと言って、TypeScript+Seleniumで自動テスト書いたり、ツール作ったりしてました。TypeScriptはノータッチだったので、それについては勉強になりました。

テストコードも、TypeScriptのPage-Objectパターンのコードを、独自処理で生成とかしてました。それなりに効率よくはやってたんですが、でも、他の人に引き渡すっていうことを考えると、覚えないといけないことが色々多いし、独自処理なんで、これ専用の人が必要になるんで、どうかな?っていうのはありました。

それに、サイトの作りが、テストのこととか全然考えてないサイトで、自分としては、そもそも、サイトの作り方から提案したいところなんですが、そういうのに関わることはできなくて、私の全く知らないところで出来上がったものが、私のところに来るっていう感じで、イヤな気しかしなかったですね。

2022~2023年あたり

その後、とりあえず、SeleniumをPlaywrightに置き換えました。色々と、総合的に考えると、Playwrightのほうが便利ですからね。コードの形式としては、引き続き、TypeScriptでPage-Objectパターンです。Pageの部分はベースクラスの実装をPlaywrightを使うように書き換えて、Pageの派生クラスの部分も、コード生成処理を修正して、再生成したら、Playwright用のコードに変身しました。これは、割とうまいこと移行できたとは思います。5つぐらいプロジェクトがあったんですけど、全部、移行完了しました。普通はこんなにうまく行かないと思います。Playwright使いたいんだったら、最初から使ったほうがいいです。

で、Playwrightにすると、Playwright自体にもコード生成処理があるので、そっちも使えます。だから、最悪、それがあるんで、他の人にぶん投げることも可能だな、と思い始めます。私独自のコード生成ではなく、Playwrightのやつなんで、ググれば情報は出てきますし。。ただし、Playwrightが生成するやつだと、Page-Objectパターンではないですね。あと、Playwrightにも、バグみたいな部分はあるんで、そのあたりは、薄く、バグ対応のパッチみたいなものをあてたりはしてますが。。

で、2023年は、結構、まとまった仕事を頼まれていたんですが、それが、ボリュームがてんこもりで、PMが一方的に命令してくるみたいな感じで、嫌気が差してたんですが、そのプロジェクトの進みが悪くなったのをチャンスとばかりに、今は、自動テスト関係ない、全然違う仕事の助っ人みたいなのに入ってます。できれば、そっちに逃げ切りたい感じです。

2023年あたり

それと、社内の別の人がMablっていうのを調べ始めたんです。それも私が見付けてきたやつなんですけど。。できれば、それにぶんなげたいな、っていうのが、私の今の立ち位置です。でも、それをやるにも、コンポーネントIDとか、data-testidとか、そういうのは、振っておいたほうがいいと思うんですけど、その人に指図できる立場にないので、遠巻きにあれやったほうがいいですよ、これやったほうがいいですよ、とは言ってるんですが、どれくらい届いてるのか分かりません。うまくやってくれないと、私のところに仕事が戻って来る可能性があるので、イヤなんですけどね。

まとめ

まぁ、ざっくり言って、こんな感じです。自動テストは知らなくて良かった世界ですね。普通にウェブサイトの開発したかったです。まぁ、それもやったんですけど、それも、結局、メンドクサくなっちゃいました。サイトの開発がどうっていうより、人間関係が苦痛でした。今は、一時やってた、Pythonでのデータ分析とかの仕事に戻りたいって思ってます。ちなみに、今、助っ人で入ってるのは、データ分析でも、ウェブサイトの開発でもないですね。

まぁ、こんな私ですけど、自動テストのウンチクは結構溜まっちゃったなぁ、という感じではあります。たまに思い出したら、何か書くかもしれません。

以上。

いいなと思ったら応援しよう!