macduty

Story

AI QAエージェントを1台のMac miniで動かす方法

壊れた1,792件のテスト、1台のMac mini、24のツールを持つエージェント。PerfectAppsのQAエージェントがテストを修復し、失敗をトリアージし、リリースを承認する方法と、Linux VPSではなくApple siliconで動かす理由。

2026-09-15更新

PerfectAppsはノーコードのアプリケーションプラットフォームです。QAチームは、CypressとSeleniumによる2,100件以上の自動テストケースを管理しています。現在、その作業の大半は、1台の専有のMac mini上で動くAIエージェントが開始し、分析し、報告しています。

ここでは、その経緯、エージェントの役割、そしてハードウェアを意図して選んだ理由を紹介します。

始まりは壊れた1,792件のテスト

必須のセキュリティ修正で、PerfectAppsのコードベース全体からBootstrapが取り除かれました。ページ構造があらゆる箇所で一斉に変わり、製品の50以上の領域にわたる1,792件のテストケースが同じ日に壊れました。

手作業での修復は結局行われなかったため、詳しく見積もった人はいません。おおよその見立ては、チーム全員の4人が最大2か月、ほかの仕事を一切せずにかかりきりになる、というものでした。

エージェントが構想で終わらなくなったのは、このときです。

修復し、カバーし、判定する

修復。エージェントは1,792件のテストを1件ずつ直すのではなく、根本原因をそれぞれ一度だけ特定し、影響を受けたすべてのspecに修正を適用しました。ログインは1つの共通コマンドにまとめられ、1か所の変更がすべてのテストに反映されるようになりました。

カバー。修復が機能するようになると、同じ手法で、これまで一度もテストされていなかった領域に取り組みました。スイートは1,400から1,955のspecファイルに増えました。その中には、canvas上に描画されるビジュアルなダイアグラムデザイナーも含まれます。そこにはテストがクリックできる要素がありません。解決策は、canvasのテストをやめ、代わりに保存されたデータを確認することでした。新しいspecは51件、最初のフル実行ですべてグリーンでした。

判定。回帰テストのたびに、誰かが失敗を確認し、どれが壊れたテストで、どれが本物のバグで、どれがノイズかを判断する必要がありました。これには1リリースあたり3人で12時間かかっていました。今はエージェントの仕事です。あるリリースでは1,748件のテスト結果を確認し、約300件の失敗の中から本物の製品バグをちょうど1件見つけました。残りは移行に伴う負債でした。

エージェントの役割

エージェントは24のツールを持ち、どれをどの順番で呼び出すかを自分で決めます。チームはMicrosoft Teamsまたはウェブ上で、普通の英語でエージェントとやり取りします。

リリースの実行は、決まったパイプラインを通ります。

One release run

  1. 1SanityA smoke test on production. If it fails, everything stops.
  2. 2RegressionMore than 2,100 test cases in five parallel lanes, in about 90 minutes.
  3. 3New testsSpecs for areas without coverage, generated while regression runs.
  4. 4TriageEvery failure classified as a test issue, a real bug, a flaky test or a known blocker.
  5. 5ReportA GO or NO-GO verdict, posted to Teams and to the GitHub pull request.
5つのステージ、約90分、1つの判定。

変わったことの例をいくつか挙げます。

作業手作業エージェント使用時
回帰テスト全体のトリアージ12時間、3人数分
Jiraチケットから新しいテストを作成1件あたり2から4時間数分
回帰テスト後に証拠付きでバグを起票1件あたり30から60分自動
ホットフィックスリリースの承認半日数分

価値は、個々の項目で短縮された時間ではありません。何週間もの手作業が、リリースサイクルからまったく消えたことです。

LinuxサーバーではなくMac miniを選んだ理由

エージェントは専有のMac mini上でネイティブに動いています。Dockerも、Kubernetesも、クラスターもありません。外部とはCloudflare Tunnelを通じてつながります。

これは、Linux VPSと比較したうえでの判断でした。

  • ブラウザが速く動く。Apple silicon上では、ChromeとCypressがVPSより3から5倍速く動きました。
  • エージェントが実際のリポジトリで作業する。テストファイルを直接読み書きするため、新しいspecの生成に追加のAPIレイヤーは必要ありません。
  • 偽装するものがない。Macには本物のディスプレイスタックがあるため、ブラウザを開くためだけに仮想ディスプレイサーバーを動かし続ける必要がありません。
  • ローカルモデルを動かす余地がある。MacのNeural Engine上の小規模モデルが振り分けと簡単な分類を処理でき、クラウドの大規模モデルは、それが必要な推論に限って使います。

VPSなら月額43ドル安く済んだはずです。それは移行にかかるエンジニアの1日分の工数より少ない額です。

エージェントを作るなら

  • エージェントに専用のマシンを与える。エージェントには、ブラウザ、ファイルシステム、そして誰にもログアウトや再起動をされずに何時間も動き続けられる環境が必要です。
  • 誰もやりたがらない作業から始める。ボトルネックは新機能の開発ではなく、トリアージとテストの修復でした。
  • 判定には人を残す。エージェントは分類し、推奨します。リリースを出すかどうかはチームが決めます。
  • ワークロードに合わせてハードウェアを選ぶ。エージェントがブラウザを操作したり、Appleプラットフォーム向けにビルドしたりするなら、Apple siliconはすぐに元が取れます。

PerfectAppsのQAエージェントは社内利用のために作られ、MacDutyの専有のMac mini上で稼働しています。

本日在庫あり

これらは現在ラックに設置済みです。1台選んで付属するものを確認し、アカウントは注文時に作成するだけで済みます。

ラックを確認中

お客様専用のMac mini

構成を選んでください。在庫がない場合はメールアドレスを残していただければ、ラックに設置した日にご連絡します。

年額:月払いより19%以上安い

  • 16GB

    ユニファイドメモリ、120 GB/s

    コア
    10 CPU, 10 GPU
    ストレージ
    在庫状況
    在庫あり
  • 一番人気
    24GB

    ユニファイドメモリ、120 GB/s

    コア
    10 CPU, 10 GPU
    ストレージ
    在庫状況
    在庫あり
  • 32GB

    ユニファイドメモリ、120 GB/s

    コア
    10 CPU, 10 GPU
    ストレージ
    在庫状況
    在庫あり
Visa Mastercard SEPA振込価格はEUR表示です。VATは該当する場合、お支払い手続き時に加算されます。 最低1か月、その後はどの月でも解約できます。

次へ