Story

Cum rulează un agent AI de QA pe un singur Mac mini

1.792 de teste stricate, un Mac mini și un agent cu 24 de unelte. Cum repară testele agentul de QA al PerfectApps, cum triază eșecurile și cum aprobă release-urile, și de ce rulează pe Apple silicon în loc de un VPS Linux.

Actualizat 2026-09-15

PerfectApps e o platformă no-code de aplicații. Echipa de QA are în grijă peste 2.100 de cazuri de test automate, în Cypress și Selenium. Azi, cea mai mare parte din munca asta e pornită, analizată și raportată de un agent AI care stă pe un singur Mac mini dedicat.

Cum a apărut, ce face și de ce alegerea hardware-ului nu a fost întâmplătoare.

A început cu 1.792 de teste stricate

Un fix de securitate obligatoriu a scos Bootstrap din tot codul PerfectApps. Structura paginilor s-a schimbat peste tot deodată, iar 1.792 de cazuri de test s-au stricat în aceeași zi, în peste 50 de zone ale produsului.

Nimeni nu a estimat în detaliu reparația manuală, pentru că nu s-a făcut niciodată de mână. Socoteala aproximativă era toată echipa, patru oameni, pe nimic altceva, până la două luni.

Atunci a încetat agentul să mai fie o idee.

Repară, apoi acoperă, apoi judecă

Repară. În loc să repare 1.792 de teste unul câte unul, agentul a găsit o singură dată fiecare cauză de la rădăcină și a aplicat reparația în toate spec-urile afectate. Login-ul a fost mutat într-o singură comandă comună, așa că o schimbare a ajuns în toate testele.

Acoperă. Odată ce reparația funcționa, aceeași abordare a fost dusă către zone care nu fuseseră testate niciodată. Suita a crescut de la 1.400 la 1.955 de fișiere spec. Printre ele, un designer vizual de diagrame desenat pe un canvas, care nu îi oferă unui test nimic pe care să dea click. Răspunsul a fost să nu mai testeze canvas-ul, ci datele salvate: 51 de spec-uri noi, toate verzi de la prima rulare completă.

Judecă. După fiecare regresie, cineva trebuia să treacă prin eșecuri și să decidă care erau teste stricate, care erau bug-uri reale și care era zgomot. Asta lua 12 ore, pe trei oameni, la fiecare release. Acum e treaba agentului. La un release a trecut prin 1.748 de rezultate de test și a găsit exact un bug real de produs printre aproximativ 300 de eșecuri. Restul era datorie rămasă din migrare.

Ce face agentul

Agentul are 24 de unelte și decide singur pe care le apelează și în ce ordine. Echipa vorbește cu el în limbaj obișnuit, în Microsoft Teams sau pe web.

O rulare de release trece printr-un pipeline fix:

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.
Cinci etape, în jur de nouăzeci de minute, un verdict.

Câteva exemple de ce s-a schimbat:

SarcinăDe mânăCu agentul
Triajul unei rulări complete de regresie12 ore, 3 oameniMinute
Scrierea unui test nou dintr-un tichet Jira2 până la 4 ore fiecareMinute
Raportarea unui bug după regresie, cu dovezi30 până la 60 de minute fiecareAutomat
Aprobarea unui release de hotfixO jumătate de ziMinute

Valoarea nu stă în timpul câștigat pe vreun rând anume. Stă în faptul că săptămâni de muncă manuală nu mai apar deloc în ciclul de release.

De ce un Mac mini și nu un server Linux

Agentul rulează nativ pe un Mac mini dedicat. Fără Docker, fără Kubernetes, fără cluster. Ajunge în exterior printr-un Cloudflare Tunnel.

A fost o decizie, luată după comparația cu un VPS Linux:

  • Browserele rulează mai repede. Pe Apple silicon, Chrome și Cypress au rulat de trei până la cinci ori mai repede decât pe VPS.
  • Agentul lucrează pe repository-ul real. Citește și scrie direct fișierele de test, așa că generarea unui spec nou nu are nevoie de un strat de API în plus.
  • Nimic de simulat. Un Mac are un stack de afișare adevărat, așa că nu ai de ținut în viață niciun server de display virtual doar ca să deschizi un browser.
  • Loc pentru modele locale. Modelele mici de pe Neural Engine-ul Mac-ului se descurcă cu rutarea și cu clasificarea simplă, iar modelul mare din cloud rămâne pentru raționamentul care chiar are nevoie de el.

VPS-ul ar fi costat cu 43 de dolari pe lună mai puțin. Mai puțin decât ziua de inginerie pe care ar cere-o mutarea.

Ce înseamnă asta dacă îți construiești un agent

  • Dă-i agentului mașina lui. Are nevoie de un browser, de un sistem de fișiere și de libertatea de a rula ore în șir fără să-l deconecteze sau să-l repornească cineva.
  • Începe cu munca pe care n-o vrea nimeni. Triajul și repararea testelor erau blocajul, nu scrisul de funcționalități noi.
  • Ține un om pe verdict. Agentul clasifică și recomandă. Echipa decide dacă un release pleacă.
  • Alege hardware-ul după sarcina de lucru. Dacă agentul tău conduce un browser sau face build pentru platformele Apple, Apple silicon se plătește singur repede.

Agentul de QA al PerfectApps a fost construit pentru uz intern și rulează pe un Mac mini dedicat la MacDuty.

Mai departe