Show GN: 실제 사람처럼 테스트를 수행하는 SaaS
(windflow.run)안녕하세요. 이전 논문작성 이후에 개발관련으로 Show GN에 글을 또 작성하게 되었습니다.
우선 이 서비스를 개발하게 된 계기를 설명드리자면 저는 8년이상 게임업계에 종사하였고, 클라이언트 개발을 위주로 진행하다가 2024년 말부터 LLM tf팀에서 AI관련 업무를 진행하다 올해 1월에 퇴사하였습니다.
아마 저 이외에 다른분들도 그러시겠지만 저같은 경우엔 개발을 굉장히 좋아하고, 회사일을 하는것 자체도 굉장히 즐거움을 느낄정도로 좋은 회사였는데 AI관련 작업을 많이 진행하다보니 만들고 싶은 아이디어들이 많이 생기고 새로운 시도를 해보고 싶어서 퇴사를 결심했습니다. 특히 요즘엔 작은규모로 시작해도 충분히 생산성이 좋아졌다고 생각합니다.
퇴사후에 첫 출시한게 오늘 소개드릴 Windflow입니다.
게임회사들은 특히 QA팀을 전문적으로 운영하고 클라이언트 개발자 또한 개발을 진행하면 매번 빌드를 하고 실제 환경에서 테스트를 계속 반복해서 수행하는 고충이 있었습니다. 실제로 개발보다 테스트를 더 많이 할 정도로요.
새로운 기능을 개발하거나 버그를 수정하면 스토리보드를 매번 작성하고, 실제 릴리즈에 나가기전 기존 중요한 기능들이 문제없는지 매번 확인하는 절차들이 굉장히 힘들게 느껴졌습니다. 이 문제는 옛날부터 해소하고자 다양한 방식으로 시도했습니다. TDD부터 내부적으로 트리거를 주입하여 매크로 방식으로 테스트를 실행할수있는 워크플로우를 작성한다거나..
이 문제를 해결하기 위해 Windflow라는 SaaS를 개발하였고, Windflow의 특징을 설명드리고자 합니다.
Windflow에서 핵심적으로 현재 제공하는 기능은 크게 3가지로
Autopilot, Focus Insights, Persona Builder입니다.
Autopilot은 자연어로 동작하는 테스트툴입니다만 selector/DOM 기반으로 동작하지 않습니다.
실제 화면을 VLM이 인식하고, 화면을 제어하는것 조차 전부 LLM 기반으로 동작합니다. 해당 코어가 존재하기 때문에 단순히 웹페이지를 테스트하는것만이 아닌 WebGL기반으로 되어있는 웹게임부터, 동일한 코어를 사용하여 Android/iOS의 앱/게임 또한 마찬가지로 테스트 수행이 가능합니다.
Focus Insights는 VLM 기반으로 실제 사람의 시선이 어느곳에 위치하게 될지 이미지를 분석해주는 툴입니다.
Persona Builder는 위 두가지 기능들에 주입가능한 가상의 페르소나로 위 테스트 시뮬레이션들을 수행할 가상의 소비자 주체를 설정하는 기능입니다.
아직 부족한 점이 많아 다듬어야 할 부분이 많습니다.
해당 기능에 관심 있으신 분들은 elik@windflow.run 으로 연락주세요. 실제 사용후 피드백을 주실분께는 Basic 플랜 1달 무료 쿠폰을 보내드리겠습니다.
제품 사용과 별개로 VLM 기반 화면 인식, 제어나 가상 페르소나와 같은 주제에 관심 있으신분들도 연락주시면 반갑겠습니다.
site: https://windflow.run
댓글과 토론
flutter 웹 개발시 playwright e2e 테스트가 안됐는데, 한 번 봐야겠네요. 근데, VLM 기반은 문제가 속도 인데, 동적인 게임의 경우, 이 속도를 어떻게 하는 건가요?
게임쪽에 테스트를 진행하지만 게임플레이를 테스트하는 용도로 추천드리고 있지는 않습니다.
전체적으로 게임개발을 반복해서 진행할때, 제가 일했던 환경을 기준으로는 플레이에 대한 테스트가 반복적으로 이루어지기 보다는 보통 메타부분에 대한 테스트를 굉장히 자주하였는데 해당부분을 고려하여 작업했습니다.
물론 플레이테스트도 어느정도는 가능하겠지만 굉장히 동적이고 빠른 게임에 한해서는 말씀해주신것의 이유로 테스트하기 어려운 부분입니다.
VLM은 저희가 사용하는 각 코어 레이어별 로직에따라 목적별로 다양한 모델들에 대해서 벤치마크를 만들어서 정확성, 속도, 가성비 등 여러가지를 다 고려하여 현재 상황에 맞게 올바른 모델을 셀렉해서 사용하는 방식을 사용하고있습니다.
좋은 아이디어라고 생각하는데 댓글이 없군요.. Show GN의 주류는 에이전틱 개발이지 '실제 제품'을 만드는데 들어가는 지저분한 노력에는 그렇게 관심이 많지 않은 것 같습니다.
제가 사용자의 입장에서 드는 생각은 QA를 대체만 할 수 있다면 당장 월 n만원 정도라면 구독하겠다는 생각이 들기는 하는데요, 다만 그런 정도로 좋은 제품이 아니라면 굳이 어려운 세팅을 제가 해서 쓰고 싶지는 않긴 합니다.
여기에서 베타테스터를 찾기보다는, 소비자용 어플리케이션을 개발하는 회사에 QA 용역 형태로 제안서를 보내보시면 어떨까 싶습니다.
좋은 의견 감사합니다 ㅎㅎ
사실 바이브코딩 이전의 Show GN (해커뉴스도 포함해서)과 현재의 결은 확실히 다르다고는 생각하지만 현재의 프로토타입 위주의 방향성은 나름대로의 장점이 있다고 생각합니다.
말씀해주신것처럼 LLM 기반으로 '알아서 다 해주는 마법'같은걸 저는 오히려 기피하는 입장이고, 사람이 제어해야하는 부분은 존재하다고 생각하는 입장에서 다른사람들은 어떻게 개발하는지 보는것도 꽤 재밌는것같아요.
사실 저같은 경우에는 이 플랫폼을 계속해서 개발한다고 QA를 대체한다기보다는 QA들이 사용하는 메인 툴로써, 한명이 반복적으로 힘들게 일하는 환경을 어느정도 생산성을 올려줄 수 있는 보조적인 역할로 보고 있습니다.
사실 게임개발을 제가 옛날부터 했기때문에 게임개발로 예시를 좀 들자면 저같은 경우엔 유니티로 개발을 주로 진행하였는데, 유니티 개발은 보통 클라이언트 레벨에서 내부적으로 트리거할 수 있는 영역을 별개로 개발해주고, 해당 부분을 매크로 방식으로 실행하는 매크로코드를 따로 작성해야만 기계적으로 동작하는 QA의 연구도 같이 진행했었는데, 해당부분은 굉장히 까다롭기도 하고 QA들이 사용하기 힘들더라구요.
그래서 방향성을 돌려서 이런저런 연구를 한 끝에 현재는 VLM을 활용하여 실제 디바이스를 직접적으로 제어하는걸 토대로 연구하고 있습니다. 단순히 LLM 모델을 가져와서 쓰는것 뿐만 아니라 다양한 모델 (30종 이상)을 내부적으로 벤치마크를 매겨서 각 레이어별로 제일 우수한 모델들을 피킹해서 섞어서 사용하고 있습니다.
아직 개발은 어느정도 되어있지만 api제공부터 다양한 추가 기능들까지 더 많은 기능들을 추가하고 꾸준히 발전시킬 예정이니 추후에 좀 더 나은 제품이 되었을때 '아 이런 제품도 있었지' 라고 생각드실때 한번 devops쪽이나 혹은 다양한 방면으로 사용하실 예정이시라면 한번 말씀해주시면 감사하겠습니다 ㅎㅎ
베타테스터를 찾는것도 방향성중에 하나지만 어떤 개발 관점에서 저희가 개발을 진행했는지에 대해서 공유를 같이 하고싶었는데 제가 글 재주가 없다보니 좀 누락된 내용들이 지금보니 많은것 같습니다.
말씀해주신 조언 깊게 받아들이도 한번 다른 회사들에 좀 컨택을 해서 QA용역 형태로 제안서를 좀 보내던지 한번 살펴봐야 할것같습니다. 아무래도 개발만 하고살아서 그런지 이런 부분에 대해선 굉장히 어렵네요.
아이디어랑 접근법에 공감합니다. 특히 멀쩡하고 지루한 기능 중에 이후 스펙때문에 깨질 수도 있어서 빌드마다 반복적으로 검증해야 하는 것들이 너무 괴로워요 🥹
응원합니다!