Junghyun Ryu

Junghyun Ryu님의 아티클

Junghyun Ryu

Junghyun Ryu

16년차 QA 엔지니어가 'QA판 리트코드'를 직접 만든 이유

👋 안녕하세요, 16년 차 QA 엔지니어이자 1인 메이커입니다.

안녕하세요. 소프트웨어 품질 보증(QA) 분야에서 16년간 밥벌이를 해온 엔지니어입니다. 수많은 프로젝트를 거치며 수동 테스트부터 테스트 자동화, CI/CD 파이프라인 구축까지 경험했지만, 늘 해결되지 않는 갈증이 하나 있었습니다.

"QA 엔지니어의 코딩 실력, 특히 '테스트 설계 역량'을 어떻게 객관적으로 증명할 것인가?"

개발자는 LeetCode나 HackerRank로 알고리즘 역량을 증명합니다. 하지만 QA 엔지니어에게 중요한 건 알고리즘 최적화보다 '결함을 찾아내는 테스트 케이스를 얼마나 정교하게 설계하는가'입니다.

이 문제를 해결하기 위해, QA 엔지니어의 테스트 코드 작성 역량을 정량화하고 훈련할 수 있는

를 만들게 되었습니다.


🧐 문제는 '통과하는 테스트'가 아니라 '잡아내는 테스트'입니다.

흔히 테스트 코드를 작성하라고 하면, 많은 분들이 "Happy Path(정상 동작)"만 통과하는 코드를 짭니다. 하지만 QA의 본질은 Edge Case(경계값), 예외 상황, 그리고 잠재적 버그를 찾아내는 것에 있습니다.

그래서 QA Arena는 일반적인 코딩 테스트와 다르게 설계했습니다. 핵심은 변이 테스트(Mutation Testing) 개념의 도입입니다.

  1. 사용자에게 테스트 대상 함수(Target Function)가 주어집니다.

  2. 사용자는 이 함수를 검증할 pytest 기반의 테스트 코드를 작성해 제출합니다.

  3. 시스템은 사용자의 테스트 코드를 Golden Code(정답 구현)와 Buggy Implementations(의도된 버그가 심어진 코드들)에 대해 실행합니다.

  4. 목표: Golden Code는 통과시키고(Pass), Buggy Code들은 실패(Fail)시켜야 합니다.

  5. 버그를 잡아낸 비율(Kill Ratio)이 곧 사용자의 점수가 됩니다.

즉, "당신의 테스트 코드가 얼마나 강력한가?"를 측정하는 것입니다.


🛠️ Tech Stack: 1인 개발의 효율성과 기술적 도전

혼자서 기획, 디자인, 개발, 운영을 모두 해야 했기에, 생산성과 비용 효율성, 그리고 사용자 경험 사이의 균형을 맞추는 아키텍처를 고민했습니다.

  • Frontend: Next.js + TypeScript + Monaco Editor

  • Backend: FastAPI (Python)

  • Database: PostgreSQL + Redis

  • Core Engine (Hybrid Architecture):

    • Client-side: Pyodide(WebAssembly Python)를 도입했습니다. 사용자가 작성한 테스트 코드를 브라우저 위에서 즉시 실행합니다. 서버 비용을 획기적으로 줄이면서도, 사용자에게는 밀리초(ms) 단위의 즉각적인 피드백을 제공합니다.

    • Server-side: Pyodide가 지원하지 않는 복잡한 라이브러리나 환경이 필요한 경우를 대비해 Celery + Docker 기반의 Fallback 시스템을 구축했습니다.

  • AI Integration: OpenAI API를 활용해 문제 초안을 생성(AI Problem Designer)하고, 사용자의 풀이 결과에 대해 "경계값 분석이 부족합니다"와 같은 정성적인 피드백(AI Coach)을 제공합니다.


🤖 AI와 함께하는 QA의 미래

QA Arena는 단순히 문제를 풀고 채점하는 도구를 넘어, AI와 협업하는 QA의 미래를 그립니다.

현재 구현된 AI Feedback Engine은 단순히 정답 여부만 알려주는 것이 아니라, 사용자가 놓친 테스트 케이스(예: 빈 리스트 입력, 음수 처리 등)를 분석하여 구체적인 조언을 해줍니다. 또한, AI Problem Designer를 통해 다양한 도메인(핀테크, 이커머스 등)의 실무적 버그 패턴을 지속적으로 학습시키고 문제화하고 있습니다.


🚀 앞으로의 계획

현재 MVP(Minimum Viable Product) 단계를 지나 전체 런칭을 기다리고 있습니다.

  • 테스트 품질 분석: AST(추상 구문 트리) 분석을 통해 테스트 코드의 스타일과 안티 패턴을 감지

  • 커리어 리포트: QA 엔지니어의 강점(예: 보안 테스트 강함, 성능 테스트 약함)을 시각화

  • 기업용 챌린지: 기업이 자사 도메인에 맞는 문제로 채용 테스트를 진행할 수 있는 서비스 (백준과 같은)

QA 엔지니어가 단순한 테스터를 넘어, '품질을 설계하는 엔지니어'로 인정받는 생태계를 만들고 싶습니다.

QA Arena가 궁금하시다면, 혹은 QA 엔지니어링에 대해 이야기를 나누고 싶다면 언제든 피드백 부탁드립니다. 함께 더 나은 소프트웨어 품질을 만들어갔으면 좋겠습니다.

관련 이미지

문제 목록 페이지

{EF9AC28B-F663-4A98-B3D2-23E3DF1EC292}.png

문제 상세 페이지

{AF23C043-C746-4A4D-AF31-C744E6357D65}.png

관리 대시보드

{261882DB-2302-4B35-9A86-C3791CA63C30}.png

QA Arena

QA가 작정하고 만든 실전 훈련소 — AI는 코드를 짜고, 우리는 결함을 찾습니다.

1
0