11. 9. 2026

Google ARTEMIS: AI agent testuje Android na skutečném telefonu

Android telefony v testovací laboratoři řízené AI coding agentem

Google otevřel zajímavou mezeru mezi coding agentem a mobilním QA. Projekt ARTEMIS umožňuje zadat test přirozeným jazykem, připojit Android telefon nebo emulátor a nechat agenta aplikaci skutečně projít, sbírat screenshoty a Logcat a vrátit strukturovaný report.

To je podstatně užitečnější než agent, který jen napíše Espresso test a prohlásí práci za hotovou. Mobilní aplikace selhávají na systémových dialozích, oprávněních, klávesnici, pomalém načtení, vlastních Compose nebo Flutter prvcích a stavech, které ve zdrojovém kódu nejsou vidět. ARTEMIS staví agenta přímo do zpětné vazby mezi kódem a reálným zařízením.

Repozitář je čerstvý a rychle se mění. Google 10. září doplnil vlastní Accessibility Helper pro spolehlivější získání hierarchie UI a 11. září pokračoval backendem pro playground. Beru ho proto jako zajímavý open-source základ pro pilot, ne jako hotovou enterprise testovací platformu.

Jak ARTEMIS funguje

Na vývojářském počítači běží Python služba a webová konzole. Přes ADB se připojí k Android zařízení nebo emulátoru, z obrazovky a hierarchie UI sestaví aktuální stav a agent vybere další akci. Když běžné accessibility elementy nestačí, používá OCR a vizuální lokalizaci pro vlastní Canvas, Compose nebo Flutter rozhraní.

Pro coding agenty je důležitý vestavěný MCP server. Codex, Claude Code, Antigravity nebo Windsurf tak nemusí klikat přes další dashboard. Dostanou úzké nástroje pro spuštění úlohy, kontrolu stavu zařízení, správu běhu, diagnostiku a prohlížení trace. Agent může po změně kódu sestavit APK, nainstalovat ho, projít konkrétní scénář a přiložit screenshoty i logy k výsledku.

ARTEMIS má dva provozní profily:

  • Flash je rychlá reaktivní smyčka, podle dokumentace přibližně 3–5 sekund na krok. Nemá plán, checkpointy, pre-execution safety net ani závěrečný report a výchozí počet kroků je neomezený.
  • Pro používá Planner, Operator a read-only Checker. Každou akci předem kontroluje proti UI stromu nebo pixelům, drží průběžný plán a může ověřovat checkpointy. Jeden krok má typicky trvat zhruba 15–40 sekund.

Tohle rozdělení dává smysl. Flash je vhodný pro levné smoke testy s jasným výsledkem. Pro patří na delší exploraci, reprodukci nestabilního bugu nebo scénář, kde je důležitější důkaz než rychlost.

Kde to dává smysl vývojovému týmu

Nejlepší první nasazení není „otestuj celou aplikaci.“ Je to jeden konkrétní tok, který dnes někdo opakovaně prochází ručně:

  • čistá instalace, onboarding a žádosti o oprávnění,
  • přihlášení testovacím účtem a kontrola neočekávaných popupů,
  • reprodukce bugu podle kroků od supportu,
  • ověření nákupu na sandbox backendu bez skutečné platby,
  • kontrola chování při pomalé síti nebo návratu aplikace z pozadí,
  • sběr screenshotu, Logcatu a časování pro issue v Jira nebo GitHubu.

V CI bych ARTEMIS nepouštěl jako náhradu deterministických unit a instrumentačních testů. Dal bych ho až za build a základní test suite jako adaptivní vrstvu. Pevné testy rychle odhalí známou regresi; agent zkusí delší end-to-end cestu, umí se přizpůsobit drobné změně layoutu a nasbírá důkaz pro člověka.

Praktický pipeline může vypadat takto:

1. CI sestaví APK a připraví izolovaný emulátor nebo zařízení. 2. Testovací backend vloží známá data a účet bez reálných oprávnění. 3. Agent dostane scénář s explicitním cílem, zakázanými akcemi a ‚assert‘ podmínkami. 4. ARTEMIS provede tok a uloží trace, screenshoty, logy a konečný stav. 5. Deterministický checker rozhodne pass/fail; agentův slovní report je jen doplněk. 6. Selhání vytvoří artefakt pro review, ale samo nic nenasazuje do produkce.

99 % není licence vypnout QA

Autoři ARTEMIS uvádějí více než 99% úspěšnost na AndroidWorld, benchmarku Google Research se 116 parametrizovanými úlohami ve 20 aplikacích. Je to zajímavý signál, ale číslo pochází od autorů projektu a repozitář zatím nenabízí stabilní release ani nezávislé porovnání na vašich aplikacích.

AndroidWorld navíc testuje přesně definované úlohy se stavovými reward funkcemi. Firemní aplikace má vlastní komponenty, překlady, backendové latence, biometriku, push notifikace a chyby, které žádný veřejný benchmark nepokrývá. Důležitější metrika proto není skóre z README, ale podíl vašich scénářů dokončených bez zásahu, počet falešných pass/fail výsledků, čas k reprodukci chyby a cena jednoho užitečného reportu.

Bezpečnost: testovací telefon není hračka

ARTEMIS instaluje do zařízení Accessibility Helper, který čte UI hierarchii. Dokumentace říká, že helper sám komunikuje jen na telefonu, ale celý systém zároveň pracuje se screenshoty, OCR, logy a zvoleným modelovým backendem. Do pilotu bych proto nedal osobní telefon ani produkční účet.

Minimum pro bezpečný provoz:

  • dedikované zařízení nebo emulátor bez osobních dat,
  • testovací tenant, falešné kontakty a sandbox platební brány,
  • omezené ADB a síťové oprávnění,
  • žádné OTP, produkční API klíče ani zákaznické screenshoty v promptu,
  • maximální počet kroků a časový limit i pro Flash,
  • zakázané systémové akce a lidské potvrzení před instalací, mazáním nebo nákupem,
  • archivace trace bez tajemství a s jasnou retenční dobou.

Text z aplikace je navíc vstup pro agenta. Testovaný webview, chat nebo dokument může obsahovat prompt injection. Coding agent proto nesmí převzít instrukce z obrazovky jako nové oprávnění. Pravidla běhu musí mít vyšší prioritu a povolené akce musí vynucovat nástrojová vrstva.

Co si z toho vzít

ARTEMIS není důkaz, že mobilní QA může odejít domů. Je to důkaz, že coding agent může dostat oči, ruce a diagnostiku na skutečném Androidu. Tím se zkracuje nejdražší mezera v agentním vývoji: model už nemusí skončit u změněného kódu, ale může ověřit, co aplikace opravdu udělala.

Začal bych jedním stabilním smoke scénářem na izolovaném emulátoru. Pokud agent opakovaně dodá správný pass/fail, použitelný trace a ušetří člověku čas, teprve potom bych přidal reálné zařízení, více aplikací a exploratorní testy. Autonomie v QA má hodnotu jen tehdy, když po ní zůstane reprodukovatelný důkaz.

Zdroje: YouTube signál Jirky Herníka 10 000 agentů a 88 hodin, Google ARTEMIS repository and documentation, current ARTEMIS commit history, Google Research AndroidWorld a jeho open-source benchmark environment.