FlowTune Media

AIエージェントが書いたコード、誰がテストする? — OSSブラウザテストCLI「Expect」の答え

Claude CodeやCodexにコードを書かせて、PRを開いて、マージする。この流れ自体はもう日常になりつつある。

だが「そのコード、ちゃんとブラウザで動くのか?」という検証は、いまだに人間が画面を見て確認しているケースが多い。型チェックは通った、テストも緑。でもブラウザで開いたらボタンが反応しない——こういう話は珍しくない。

Expectは、このQAの穴を埋めるために作られたオープンソースのCLIツールだ。

git diffを読み、テスト計画を立て、ブラウザで実行する

Expectの動作はシンプルだ。

CLIを実行すると、まず直近のgit diffをスキャンして変更内容を把握する。次にAIエージェント(Claude CodeやCodexが対応)がその変更に基づいたテスト計画を生成し、Playwrightを使って実際のブラウザ上でテストを実行する。バグが見つかれば、その瞬間のセッションをrrwebで動画として記録してくれる。

開発者がやることはexpectコマンドを叩くだけ。テストの設計も実行もAIに任せ、結果を動画で確認して修正する。修正したらもう一度expectを叩く。パスするまで繰り返す。

地味だが実用的なのが、ローカルブラウザのCookieを自動抽出してテスト時に注入する機能だ。Chrome・Firefox・Safariのプロファイルから認証状態を取得するので、ログインが必要なアプリでも追加設定なしでテストが走る。

CLIとしてだけでなく、Claude CodeやCodexの「スキル」としても組み込める。つまりAIエージェントがコードを書いた直後に、同じセッション内でExpectを呼び出してテストを実行し、失敗したらその場で修正するワークフローが構築できる。

Million Software(YC W24)の新作

Expectの開発元はMillion Software。YC W24バッチ出身で、1,410万ドルを調達済み。創業者のAiden Baiは、Reactの仮想DOM最適化ライブラリ「Million.js」の開発者としても知られている。

公開から2週間でGitHubスター952を獲得しており、開発者コミュニティの関心の高さが伺える。ライセンスはFSL-1.1-MITで、競合する商用利用は禁止だが2年後にMITへ移行する。個人開発やスタートアップの自社利用であれば問題ない。

「エージェントが書いてエージェントがテストする」世界

正直、Expect単体の機能はPlaywrightの上にAI層を被せたもの、と言ってしまえばそれまでだ。技術的に画期的なわけではない。

しかし筆者が面白いと思うのは、これが「AIコーディングのQA」という、意外と誰も解決していなかった問題に正面から取り組んでいる点だ。Cursor 3がエージェントを並列で走らせ、Claude Codeがデプロイまで自動化する時代に、テストだけが人間の目視に依存しているのは明らかにボトルネックだった。

Expectのようなツールが成熟すれば、「コード生成→テスト→修正」のサイクルが完全にエージェント内で閉じる。開発者はコードレビューとプロダクトの方向性判断に集中し、実装の検証はAI同士がやり取りする。

同様のアプローチはVercel Labsのagent-browserやBug0のPassmarkにも見られ、「エージェント時代のQA」というカテゴリ自体が急速に立ち上がりつつある。その中でExpectは、git diffベースの差分テストという実用的な切り口と、主要AIコーディングツールとの統合の手軽さで、最も早く開発者の日常に入り込む可能性がある。

関連記事