はじめに
もうすぐクリスマス本番ですね🎄 アドベントカレンダーなどで技術的な知見が飛び交う時期ですが、今回はあえて技術的な詳細よりも、「嘘のようで本当の実体験」を共有したいと思います。
以前、上司との1on1でこの自動化ツールの開発経緯を話した際、
上司:「……あ、そういう不思議なこと言う感じの子だったんですね〜」
と、なんとも言えない視線を向けられました。 信じるか信じないかはあなた次第ですが、技術的な壁を「夢」が突破してくれた話をさせてください。
配属直後のミッション:QAチームのための自動化
私は現在のプロジェクトに配属されてから、OJTの一環としてE2E試験自動化の基盤作りを任されました。
技術選定の際、候補として挙がったのが Playwright でした。 まずは「何ができるのか」「どう活用できるか」という基本調査からスタートしました。Playwright自体は非常に強力なツールで、ドキュメントを読み、簡単なテストコードを書きながら、私自身の知識も順調に増えていきました。
公式ドキュメントのサンプルコードを試したり、実際の画面のテストを実装してみたり…… しかし、上司から課せられた最終ゴールは、技術的にも運用的にも高いハードルがあるものでした。
上司:「最終的には、QAチームがコードを一切書かずに自動テストを作成できるようにしたい」
「エンジニアがテストコードを書く」のではなく、「非エンジニア(QA)がコードを書かずにテストを作る」。
要件はシンプルですが、実現への道筋は複雑です。
調査や試行を重ねても、具体的な解決策が見えてこない日々が続きました。
転機:10月23日の夢
あれは忘れもしない、10月23日 のことです。
悩みすぎて脳がオーバーヒートしていたのか、あるいはハロウィン前の魔法なのか。
自分が作成した謎のツールを使って、サクサクとE2E試験を作成している夢を見ました。
夢の中で私は、2つのコマンドを実行していました:
- 1つ目のコマンド:ブラウザが立ち上がり、操作を記録しながらテストの雛形を自動生成
- 2つ目のコマンド:AIとの対話形式で、テストシナリオの詳細を質問され、それに答えるだけでテストコードが完成
PlaywrightのCodegenを発展させたようなツールと、AIを活用した対話型のツール。この2つがあれば、QAチームでも簡単にテストを作成できる……!
「これだ……!」
起床した瞬間、まだ半分寝ぼけている頭で「今のアイデアを何かに残さなきゃ!」と必死にスマホを操作しました。 その時残したメモがこちらです(消さずに残っていました…)。
我ながら誤字だらけで、完全に寝ぼけていますね……。でも「2個作る」というメモが、後に重要な意味を持つことになります。
なぜ「2個」だったのか?
起きてから冷静にメモを見返し、「なぜ夢の中の自分は2つも作ろうとしていたのか?」を考えました。
そして、当時の開発状況とゴール(QAがコードを書かない)を照らし合わせたとき、非常に理にかなった理由が浮かび上がってきました。
-
Codegenベースのツール(現実的な解)
- 理由: すでにDocker上でPlaywrightを動かす環境は整っていたから。
- 意図: 「夢の内容(Codegenの自動化)なら、今の環境に組み込むだけですぐ作れる」という、実装コストを意識した判断。
-
AI対話型のツール(理想的な解)
- 理由: 「会話」こそが、最も直感的なインターフェースだから。
- 意図: QAチームがコードを書かないようにするにはどうすればいいか? 答えはシンプルで、「やりたいことを口頭で伝える(会話する)」ことだと夢が教えてくれました。GUIのボタンを覚える必要すらない、自然言語による対話こそが、この要件の最適解だったのです。
つまり、夢のメモは「手持ちの環境ですぐ動くCodegen版も作れ。でも、QAにとって一番使いやすいのは会話(AI)だから、そっちも諦めるな」というメッセージでした。
夢を現実に実装する
夢で見たイメージを整理し、以下の 2つのツール を実装することにしました。
ツール1:ガイド付き Codegen(現実的な解)
PlaywrightのCodegen機能をベースに、GUIで操作を完結させるツールです。
夢の中で「1つ目のコマンドを実行すると、ブラウザが立ち上がって操作が記録される」というイメージを見ましたが、それをそのまま実現した形になりました。
- すでにDocker環境があったので、実装コストは比較的低い
- QAチームがコマンドラインを意識せずに使える
- 「すぐ動くもの」を優先した、現実的なアプローチ
ツール2:AI対話型生成ツール(理想的な解)
そして今回の本命、生成AIを活用した対話形式のテスト生成ツールです。
夢の中で「質問に答えていくだけでテストが完成する」というシーンを見ましたが、まさにそれを形にしたものです。
- 自然言語での対話により、コードを意識せずテストを作成
- 「会話」という、最も直感的なインターフェース
- 将来性を見据えた、理想を追求したアプローチ
ちなみに:実装自体もAI任せ
夢のメモを整理し、それを元にAIに実装方針を相談しながら進めました。「こういうツールを作りたい」という要件をAIに伝え、コードの雛形を生成してもらい、それをカスタマイズしていく形です。
結果的に、思ったほど工数をかけずにプロトタイプを完成させることができました。夢で見たロジックは、意外にも(多少の修正は必要でしたが)理にかなっていたのです。
完成、そして上司への報告
こうして、「夢のお告げ」ベースの 2つの自動テスト生成ツール のプロトタイプが完成しました。
どちらのツールも、上司からの要件であった「QAチームがコードを一切書かずにテストを作成できる」という状態を目指すものです。
そして冒頭の話に戻ります。
この経緯を正直に上司に報告した際の反応が……
私:「実は夢で見た2つのツールのアイデアで実装できたんですよ」
上司:「……あ、そういう不思議なこと言う感じの子だったんですね〜」
こうして私は「不思議なことを言う子」という印象を与えることになったのです。
おわりに
技術的な詰まりに遭遇した時、リファレンスを読み込むのも大事ですが、「とりあえず寝る」 というのも立派なデバッグ方法なのかもしれません。
脳科学的には、睡眠中に記憶の整理や創造的な問題解決が行われるという研究もあります。もしかしたら、私の脳も寝ている間に「Playwright」「自動生成」「QA」といったキーワードを整理して、最適な解を導き出してくれた気がします。
また、エンジニアとしての成長には、技術力だけでなく「柔軟な発想」や「諦めない姿勢」も大切だと実感しました。
みなさんも、良いクリスマスと良い夢を!🎅
そして、技術的な壁にぶつかったら、たまには早めに寝てみてください。案外、あなたの夢の中に答えがあるかもしれません。
信じるか信じないかはあなた次第です