JetBrainsは、Junie CLIツールに新しいJunie /demoモードを導入したと発表しました。これは、コード変更を検証する際のインタラクティブな部分を自動化することを目的としています。テストを実行するだけでなく、開発者が必要なシナリオを記述すると、Junieがアプリケーションをビルドして起動し、そのインターフェースを操作したうえで、結果、スクリーンショット、実行動画を含むHTMLレポートを生成します。
新しいモードの仕組み
Junieはプロジェクトを分析して、ビルドと実行の計画を提案し、ユーザーの承認後に設定ファイルを作成します。変更元として、ブランチ、セッション、作業ツリー、または最後のcommitを選択したうえで、実行する操作と期待される結果を指定するリクエストを入力できます。JetBrainsが示した例では、エージェントがタスク追跡ツール内の2件の課題を特定し、その状態をDoneに変更してカウンターの変化を確認し、さらにページを再読み込みして結果が維持されることを確認します。
ユーザーは、エージェントがインターフェース内を移動している間、実行状況を直接確認できます。動画には各シナリオの導入スライドと結果を示す終了スライドが含まれ、オン・オフを切り替えられる説明用字幕も備わっています。JetBrainsによると、モデルが録画後のスクリーンショットを分析してこれらのスライドを作成する一方、音声ナレーションは今後のアップデートで追加される可能性があります。
手動デモから監査可能なレビューへ
HTMLレポートには、元のリクエスト、結果、動画、スクリーンショット、実行された手順がまとめられ、成功、失敗、未完了のまま残ったテストも明示されます。これにより、開発者、品質保証エンジニア、またはコード変更を読むだけでなく機能の動作を確認したいチームメンバーが、成果物をレビューできます。
certi.newsは、ここでの実際の価値は自動テストを置き換えることではなく、インターフェースの動作に関する視覚的な証拠を追加することにあると見ています。変更の準備が整っているかどうかの判断は依然としてレビュアーの責任であり、エージェントの実行が完了したからといって、検証が自動的に成功したことを意味するわけではありません。そのため、JetBrainsの例ではJunieに明示的なverdictの出力を求め、PASSと記述された場合にのみ結果を通過させます。一方、FAIL、PARTIAL、または結果がない場合は、結果チェックが失敗します。
GitHub Actionsとの統合とコスト
JetBrainsはGitHub Actionsと組み合わせてこのモードを社内で使用し、1,500件を超える固有のマージリクエストを対象に、2,100本を超えるデモ動画を作成しました。また、リリースブランチのスモークテスト用に22のシナリオで使用し、社内テストの合計は1,300件を超えました。同社は適応可能なYAMLファイルの例を2つ提供しています。1つはデモに値する変更をチェックして証拠へのリンクをマージリクエストに追加するもので、もう1つはpush時または手動で実行されるリリーステスト用です。
これらの例はGitHub Artifactsに依存するため、動画をホスティングする別のサービスは必要ありません。JetBrainsによると、社内測定で22件のケースを実行した際の費用は、同社が使用したサブスクリプション換算に基づき、GPT-5.6 SOLで19.94ドルでした。CI実行環境のコストは別途です。これらはアプリケーション、ビルド手順、リクエストの記述方法によって変動する社内の数値であり、すべてのプロジェクトに対する一般的な見積もりではありません。
環境と運用上の制約
このモードは、Debian Bookwormをベースに構築されたDockerコンテナ内で動作し、Chromium、Node.js、Xvfb、ウィンドウマネージャー、そしてxdotoolやffmpegなどのツールを含みます。クリック、キーボード操作、スクリーンショットを制御するため、Computer Useをサポートするモデルを使用します。複雑なリポジトリでは、サービスとインターフェース向けに別々の設定を用意し、仮想マシン用の複数のテンプレートを定義できます。
サポートされたモデルがなければ実行は開始されません。Junieは、利用可能でComputer Useをサポートしているアクティブなモデルを使用し、そうでない場合はGPT-5.6 SOL、GPT-6 Astra、続いてGPT-5.5、GPT-5.4を含むリストから選択します。/demoモードでは、High reasoning effortが設定されます。また、実行には数分かかります。その最大の利点は、人によるレビューなしに結果の正しさを保証することではなく、繰り返し行われるインタラクティブな検証を、検査可能なプロセスへ移行することにあります。