단계당 $0.011에서 $0.00004로 Vision Models를 버리고 AI 테스트 자동화 비용을 300배 절감했습니다 — 대부분의 웹 테스트에 Vision Models가 과하다는 것을 어떻게 깨달았는지, 그리고 대신 무엇을 구축했는지 소개합니다. 시작은 월 $400의 API 청구서였습니다 (네, USD 기준입니다. 저는 중국에 있지만, 어떤 통화든 똑같은 고통을 느끼실 겁니다). 저는 Midscene.js와 Qwen-VL Vision Models를 기반으로 구축된 AI 기반 테스트 자동화 플랫폼을 운영하고 있었습니다. 테스트 단계마다 전체 페이지 스크린샷을 멀티모달 LLM (Multimodal LLM)에 전송해야 했고, 단계당 약 $0.011를 지불해야 했습니다. 50단계로 구성된 테스트 케이스 하나에 약 $0.55가 들었습니다. 이를 매일 실행한다면? 월 $16.50입니다. 여기에 몇 가지 테스트 시나리오를 더 추가하자, 갑자기 커피값보다 API 호출 비용에 더 많은 돈을 쓰고 있는 저를 발견했습니다. 그리고 가장 최악인 점은 무엇이었을까요? 그 스크린샷 대부분에는 제가 이미 무료로 가지고 있는 정보가 포함되어 있었다는 것입니다.
저에게 교훈을 준 플랫폼: 먼저 간단한 배경 설명을 드리겠습니다. 저는 풀스택 테스트 자동화 관리 시스템인 ai-test-platform을 구축했습니다:
- Frontend: Vue 3 + ElementUI Plus
- Backend: Express + Node.js + MySQL
- Test engine: Midscene.js 1.5.2 + Playwright + Qwen-VL
테스트 케이스, 보고서 및 모델을 위한 관리 UI를 갖춘 Docker화된 시스템입니다.
잘 작동했습니다. 아름다운 보고서, 깔끔한 UI, 쉬운 테스트 관리까지. 심지어 Docker Hub (xulingfeng/ai-test-platform:latest)에도 배포했습니다. 하지만 테스트를 실행할 때마다 동전이 떨어지는 소리가 들리는 것 같았습니다. 여기저기서 $0.011씩 빠져나갔습니다. 29단계의 의사 온보딩 (doctor-onboarding) 흐름은 $0.32가 들었습니다. 하루에 여러 번 테스트를 실행하는 1인 QA 엔지니어에게 이는 빠르게 누적되는 비용이었습니다.
깨달음의 순간: 어느 오후, 테스트가 실행되는 것을 지켜보고 있었습니다. AI가 웹 페이지의 스크린샷을 분석하고 있었는데, 문득 한 가지 사실을 깨달았습니다. AI는 스크린샷에서 45개의 상호작용 가능한 요소 (interactive elements)를 볼 수 있었습니다. 하지만 Playwright는 이미 그 45개 요소를 모두 깔끔한 구조화된 텍스트 (structured text)로 추출해 둔 상태였습니다. 데이터가 이미 DOM 트리 (DOM tree)에 깔끔하게 정리되어 있는데, 저는 픽셀을 처리하는 데 비용을 지불하고 있었던 것입니다.
비전 모델 (Vision model)에게 페이지는 다음과 같이 보입니다: [픽셀 데이터, 렌더링 세부 정보, 색상, 그림자 등이 포함된 스크린샷 이미지...] 그리고 DOM에서는 다음과 같이 보입니다: [0] <input placeholder="Search..." name="q"> [1] <button>Sign in</button> [2] <a>Add new doctor</a> ... AI는 페이지를 "볼" 필요가 없습니다. 구조를 이해하고 무엇을 클릭할지 결정하면 됩니다. 그리고 구조화된 텍스트 (Structured text)는 그 역할을 완벽하게 수행합니다.
300배 최적화: deep-test
저는 순수 텍스트 기반 AI 테스트 프레임워크인 deep-test를 구축했습니다. 아키텍처는 매우 단순합니다:
작업(Task): "로그인 시스템, 제품 검색, 장바구니 담기"
↓
① 상호작용 가능한 요소 추출 (DOM 트리 / uiautomator) (스크린샷 없음. 비전 모델 없음.)
↓
② DeepSeek V4가 구조 분석 + 다음 동작 결정 (~2000 tokens/step × $0.14/M = $0.0001/step)
↓
③ 동작 실행 (Playwright click / ADB tap)
↓
④ 작업이 완료될 때까지 ①로 복귀
비용 비교는 경이로운 수준입니다:
| 방식 | 단계당 비용 | 50단계 테스트 비용 |
|---|
| Midscene.js + Qwen-VL-Plus | ~$0.011 | ~$0.55 |
| browser-use + Claude | ~$0.10 | ~$5.00 |
| deep-test + DeepSeek V4 | ~$0.00004 | ~$0.002 |
200~300배 더 저렴합니다. 0.55달러가 들던 50단계 테스트가 이제는 1센트 미만으로 수행됩니다.
실제 수치
저는 로그인, 메뉴 탐색, 12개 필드를 가진 새 의사 추가, 결과 확인 등 전체 병원 관리 워크플로우를 실행했습니다. 총 29단계였습니다. 결과는 81.8초, 총 비용 약 $0.001였습니다. 참고로, 이는 비전 기반 방식의 단 한 단계 비용보다도 적은 금액입니다.
잠깐 — 안드로이드 앱은 어떻게 하나요?
여기서부터는 더욱 흥미로워집니다. 안드로이드 앱은 웹 페이지처럼 깔끔한 DOM 트리를 제공할 수 없습니다. 그래서 저는 하이브리드 접근 방식을 추가했습니다:
- uiautomator2를 사용하여 네이티브 UI 트리 추출 (DOM과 마찬가지로 텍스트임)
- UI 트리에 정보가 충분하지 않을 때만 ADB screencap + OCR 사용
- 동일한 DeepSeek V4 결정 엔진 사용 — 입력 소스만 다름
이는 하나의 AI 에이전트가 동일한 아키텍처로 웹과 안드로이드를 모두 처리할 수 있음을 의미합니다.
그리고 저는 앱 내 웹 뷰(WebView)가 표준 자동화 명령을 무시하는 악명 높은 하이브리드 앱 WebView 입력 문제도 해결했습니다. 해결책은 set_text() 대신 uiautomator2.send_keys()를 사용하는 것이었습니다. 이를 알아내는 데 며칠이 걸렸지만, 구현하는 데는 단 한 줄이면 충분했습니다.
제가 배운 점:
대부분의 웹 테스트에 Vision 모델은 과합니다. Vision 모델은 다음과 같은 경우에 훌륭합니다:
- 시각적 회귀 테스트 (Visual regression testing, 레이아웃이 깨졌는가?)
- CAPTCHA 해결
- Canvas/SVG 비중이 높은 애플리케이션
하지만 표준적인 CRUD 작업 — 양식 채우기, 버튼 클릭, 메뉴 탐색 — 에 있어서는 DOM이 이미 당신에게 필요한 모든 정보를 가지고 있습니다. 진정한 최적화는 더 나은 프롬프팅(Prompting)이나 더 똑똑한 AI에 관한 것이 아닙니다. 작업에 적합한 데이터 형식을 선택하는 것에 관한 것입니다.
도구:
두 프로젝트는 아직 공개되지 않았습니다. 실제 운영 중인 의료 애플리케이션의 실제 테스트 데이터를 포함하고 있기 때문입니다. 회사 고유의 콘텐츠를 제거한 후 정제하여 오픈 소스로 공개할 계획입니다. 조기 액세스를 원하시거나 이 접근 방식에 대해 논의하고 싶으시다면 언제든 연락해 주세요.
기술 스택:
- LLM: DeepSeek V4 Flash ($0.14/M input, $0.28/M output)
- 웹 자동화: Playwright
- 안드로이드 자동화: uiautomator2 + ADB
- OCR: EasyOCR (로컬 실행, API 비용 없음)
저는 15년 경력의 테스트 매니저입니다. 좋은 테스트가 엄청난 비용을 들여야 한다고 생각하지 않기 때문에 사이드 프로젝트로 AI 테스트 도구들을 만들어 왔습니다. 이 내용이 공감이 가신다면, 제 툴킷에서 더 실용적인 테스트 프롬프트와 기술들을 공유하고 있습니다: xulingfeng.gumroad.com/l/vkhhq