掲載済み (2025-12-13号)
#141 693文字 • 4分

## 組み合わせ爆発に立ち向かうために、AIと"ぶんまわしくん"を作った話

日本語

掲載情報

概要

https://zenn.dev/ubie_dev/articles/032144e69f19a7

詳細内容

## 組み合わせ爆発に立ち向かうために、AIと"ぶんまわしくん"を作った話 https://zenn.dev/ubie_dev/articles/032144e69f19a7 UbieのQAエンジニアが、AI開発エージェントと協業し、無限のテストパターンを効率的に検出するランダムテストツール「ぶんまわしくん」を開発し、複雑なWebアプリの移行における品質保証の課題を解決した。 **Content Type**: ⚙️ Tools **Language**: ja **Scores**: Signal:4/5 | Depth:2/5 | Unique:3/5 | Practical:4/5 | Anti-Hype:4/5 **Main Journal**: 94/100 | **Annex Potential**: 89/100 | **Overall**: 68/100 **Topics**: [[AI開発エージェント, テスト自動化, QAエンジニアリング, Webアプリケーション開発, LLM活用]] UbieのQAエンジニアであるMay氏は、同社の生活者向けWebアプリ「ユビー」の核となる「症状チェック」機能のエンジン移行プロジェクトにおいて、無限の組み合わせを持つテストパターンの網羅的な確認が人力では不可能という課題に直面しました。当初の計画では、重要パターンに絞り、残りは本番環境でのモニタリングに頼る方針でしたが、リリース前の品質保証への不安が募っていました。 May氏は、自らテストツールをゼロから開発するスキルはないと認識しつつも、「AI開発エージェントに要件を伝えたら作ってくれるかもしれない」と考え、AIに相談。具体的な実装方法ではなく、「新旧エンジンで表示内容が変わらないことを検証するため、あらゆるパターンで同じ操作を実行し、表示内容を比較したい」という「Why(なぜ)」と「What(何をしたいか)」を伝えました。 AIは「各質問の文面をハッシュ化し、それをシードに回答をランダムに選ぶ」というアイデアを提案。May氏は当初ピンと来なかったものの、AIが「できます」と答えたため、まずはその方針で開発を進めることにしました。 こうして誕生したのが、ランダムテストツール「ぶんまわしくん」です。このツールは、新旧エンジンそれぞれに対し、トップページから問診を開始し、表示された質問文からハッシュ値を生成、ハッシュ値とシード値の組み合わせで選択肢のインデックスを決定論的に計算し回答。最終画面に到達するまでこれを繰り返し、最終画面のテキスト情報を比較することで、新旧の差分を検出します。 実際に「ぶんまわしくん」を動かすと、人手では見逃しがちな、質問文のわずかな違い、選択肢の表現や順序、スキップボタンの有無、さらには「同じ回答でも表示される質問や結果が異なる」といった重要かつニッチな違いが多数検出されました。 毎晩100パターン以上を実行する中で、結果確認の効率化のためHTMLレポート出力機能を追加し、またチームからの要望に応えて、結果画面のソリューション提案、ブラウザの状態情報、送信ログの比較機能なども追加。当初はテキスト差分のみだった検証範囲は、内部的な動作まで広がり、今や本番環境の正常性監視への応用も検討されるなど、チームの重要な資産になりつつあります。 この経験を通じてMay氏は、AIとの協業における以下のコツを提言しています。 1. **「How(どう作るか)」より「Why(なぜ)」と「What(何がしたいか)」を伝える**: 具体的な実装方法を決めつけず、背景や目的を伝えることでAIから予想外のアイデアを引き出す。 2. **最初から完璧な100点を求めない**: まず60点で動くものを作り、そこから対話を重ねて改善していくアプローチが近道。 3. **最後は、自分の「こうしたい」を大切にする**: AIはツールであり、最終的な判断は自分が行う。AIの提案に違和感があれば問いかけ、自分の考えを伝える対話が重要。 筆者は、AIのおかげで自身の「できること」が格段に増えたと実感しており、AIとの協業が当たり前になった今、私たちの役割は「何をさせるか」の指示だけでなく、「何を達成すべきか」という目的のデザインに移行していると結んでいます。