Resume Summary · QA Automation

사람은 품질을 판단하고, 시스템은 반복·증적·Gate를 담당하게 합니다.

기능 성공만 보지 않고 데이터·렌더링·고객여정·제조설비–MES E2E와 Clean Runner 재현성까지 검증합니다.

보고서 37종·출력 경우의 수 1,382종을 담당자 1명이 검증하던 SPC 환경에서 UI 자동화와 DB 정합성 검증을 구축했습니다. 전체 TC 5,372건 중 2,641건을 자동화했고, 자동화가 읽기 어려운 GPU·광학·실장비 영역은 수동 검증으로 남겼습니다. QA가 현상과 고객영향을 판단하면 Agent가 증적과 Jira를 회사 표준으로 구조화하며, Skill·실행 절차·Validator·GitLab Pipeline이 완료조건을 강제합니다.

Regression AutomationData IntegrityVisual ValidationMES E2ERelease Quality GateLegacy WinAppAgent ValidatorHardware-aware QA

Detailed Portfolio

QA Automation / Release Engineering 사례

Case 01 · SPC Regression

보고서 37종·1,382개 출력조합 회귀 자동화

수동 보고서 검증과 DB 원본 비교를 하나의 반복 가능한 검증 체계로 전환했습니다.

  • 전체 TC 5,372건 중 2,641건(46%) 자동화
  • HTML 보고서 파싱값과 DB 원본 직접 비교
  • X/Y 컬럼 오출력·언어팩 누락 등 데이터 이슈 300건 이상 사전 차단
월간 테스트 30일 → 21일, 회귀 2일 → 0.5일, 데이터 VOC 7건 → 1건
상세 사고과정 보기

Case 02 · QA Feedback Loop

사람의 판단과 AI Jira 행정 분리

QA는 실행불가·데이터·업무단계·금전·시각·고객이탈만 분류하고, Agent가 회사 표준 문서와 발사순서를 구성합니다.

  • 이슈 1~3건은 수기, 대량 발생 구간에만 자동화 적용
  • 스크린샷·TC·버전·재현절차·Severity 초안 자동 연결
  • 즉시·배치·유사 묶음으로 개발팀 수용량 관리
이슈 1건 20분 → 3분, 2일간 231건 구조화
상세 사고과정 보기

Case 03 · Visual Quality

DOM 정상 False Pass를 막는 Screenshot Gate

버튼 이벤트와 API가 정상이어도 CTA가 배경색과 같아 보이지 않으면 고객여정은 실패합니다.

  • Functional·Visual·Customer Journey 결과를 분리
  • Skill·Agent Procedure·Validator 세 계층에 Screenshot 강제
  • 라이트·다크·모바일·주요 상태 전환 증적 확인
“DOM에 존재한다”를 UI Pass 조건에서 제거하고 실제 렌더링을 완료조건으로 전환
상세 사고과정 보기

Case 04 · AOI Resilience

레거시 랜덤 다운의 확산 방지

공유 메모리 기반 AOI 프로그램의 랜덤 다운에 외부 UI Wrapper와 Watchdog 기반 부분 재시작 구조를 제안·검증했습니다.

  • 전체 시스템 재시작 대신 실패 프로세스 부분 복구
  • 현장 운영 중 재발과 로그를 기준으로 검증
  • 대형 고객 쉽백 클레임 대응에 활용
고객사 시스템 다운 VOC 월 3~4건 → 0건, 쉽백 클레임 취소에 기여
현장 검증 상세

Case 05 · Failure Simulation

운영환경 재현 불가 문제의 시뮬레이터화

네트워크 스토리지의 file lock, partial read/write, concurrent modify, freeze를 Python으로 재현했습니다.

  • 운영 장애 92종 시나리오 구성
  • 61종 예외처리 개선 요청
  • “고객 환경이라 재현할 수 없다”를 테스트 입력으로 전환
재현 불가 장애를 반복 실행 가능한 실패 카탈로그로 전환
현장·장애 검증 상세

Case 06 · MES E2E Test Architecture

제조설비–MES 통합 검증 및 현장 VOC 폐루프

기존 시뮬레이터의 프로토콜 호환성 한계를 대체 구현하고 Loader·AOI·Repair Station·MES를 연결해 현장에서만 확인되던 결함을 사내 회귀환경으로 가져왔습니다.

  • 바코드 입력·검사정보 조회·모델 변경과 설비 상태 전이를 포함해 실제 생산공정 80% 이상 재현
  • MES 결함 41건을 배포 전 발견하고 반복 VOC 7~8종을 회귀 시나리오로 전환
  • 장비 화면 전·후 2프레임, 그림판 표시, 자연어 설명과 작업 의도를 멀티모달 Agent가 함께 해석
패치 후 일일 고객 불만 2~3건 → 0건, 기술지원·개발 대응시간 분기 약 40시간 절감
상세 포트폴리오 펼치기

검증환경 구축

수정할 수 없는 기존 실행 파일 대신 규약 문서·예시 데이터·연동 코드 설명을 기준으로 웹 서버와 소켓 텔레그램 요청·응답을 구현했습니다. 이후 보드 투입 대기, 검사 중 전·후단 순서 강제, Repair Station 자리 부족, Repair Plus 상호작용 등 공정 예외를 포함하도록 확장했습니다.

비개발자·QA 참여형 개선

QA와 비개발자가 문제를 발견한 즉시 시뮬레이터 Agent와 상호작용해 해결안을 만들 수 있도록 장비 화면의 전·후 2개 프레임, 그림판 동그라미·화살표 표시, 자연어 현상 설명과 원래 수행하려던 작업 의도를 함께 입력했습니다. 멀티모달 Agent는 화면 변화와 업무 맥락을 해석해 시뮬레이터 수정안을 구현하고, 해결한 브랜치를 GitLab Dev에 커밋했습니다. 담당자는 개발 MES에서 바로 동작을 확인하고, 개발자는 해당 변경이 지속 가능한 구조인지 검토한 뒤 예외처리를 보강해 Main으로 병합했습니다. 즉, 단순한 문제 전달 자동화가 아니라 현장 문제를 발생 즉시 해결하고 검증 가능한 코드 변경으로 전환하는 폐루프를 구축했습니다.

품질 Gate

  • Agent 변경사항은 GitLab Dev 브랜치에 반영
  • 개발 MES와 실제 연동해 기능·메시지 순서·상태 전이 확인
  • 책임자와 개발자가 SRP 준수, 중복 객체·컨테이너 생성, 객체 생명주기 우회, 변경 범위 확대와 회귀 위험 검토
  • 검증과 리뷰를 통과한 변경만 Main 병합

공개 범위

고객사명, 내부 제품명, 실제 장비 화면, 원문 통신 규약과 메시지 전문은 공개하지 않습니다.

Case 07 · Release Quality

PR 변경관리·실제 앱 재현·Smoke Gate

공용 Trunk와 고객사 커스텀 패치가 뒤섞인 환경에서 변경 의도를 실행 증거와 연결했습니다.

  • Commit·Jira·C++ 심볼·문서 분석
  • WinApp 실행 결과와 설명 불일치 시 NEED CHECK 또는 Fail
  • 6개월 Warning 후 Smoke 실패 시 Merge 차단
명시적 변경 누락 약 99% 감소, 정보 전달시간 약 60% 단축
상세 구조와 운영 실패 보기

Case 08 · TC Automation Retrospective

Claude Code 제로베이스에서 오류 통제형 TC 플랫폼까지

문서와 Excel을 직접 생성하던 흐름을 Evidence Gate, YAML TC, run/Jira, 제품별 웹과 최종 앱 검증으로 발전시켰습니다.

  • 100쪽 이미지 매뉴얼을 화면 단위 pre-chunk와 누락 추적으로 전환
  • WPF 상태 잔존, 화면 snapshot export, run inheritance와 Jira reread 검증
  • 실패를 prompt 수정이 아닌 schema, validator, cache invalidation과 제품 scope lock으로 제도화
203 TC milestone에서 strict policy 오류 0·경고 0, 웹 authoring E2E browser error 0
증거 연표와 실패 대응표 보기

Failure Case · Change Risk Control

UIA 접근성 개선이 제품 컨테이너 회귀로 번지는 것을 차단했습니다.

최초 제품에서는 갱신 후 UIA 하위 객체가 사라지는 문제를 국소 수정으로 해결했습니다. 그러나 같은 패턴을 패밀리 제품에 적용하는 과정에서 AI Agent의 변경이 컨테이너 내부 구조까지 확대됐습니다. QA 관점에서는 UIA 탐색 성공만으로 Pass할 수 없고, 수정 목적 때문에 새로 생기는 회귀 표면과 검증 비용까지 합격 기준에 포함해야 했습니다.

관찰첫 실행은 정상, 갱신 뒤 동적 하위 객체만 UIA 연결이 끊겼다.
오판같은 제품군이면 같은 수정 패턴과 같은 회귀 범위를 가질 것으로 봤다.
품질 신호Diff가 접근성 속성을 넘어 생성·바인딩·이벤트 흐름을 변경하기 시작했다.
판정UIA Pass 가능성보다 전체 컨테이너 회귀 위험이 커져 수정안을 Reject했다.
패밀리 제품 일괄 수정은 미완료로 남겼지만, 검증 대상이 급격히 늘어난 변경을 병합 전에 중단하고 기존 제품 동작을 보존했습니다.
상세 판단 펼치기 — QA는 왜 수정 성공 가능성보다 변경 경계를 봤는가

1. 재현과 최초 문제 정의

아이템 리스트는 애플리케이션 첫 실행 시 UIA 트리에 정상적으로 나타났습니다. 갱신 버튼을 누른 뒤 화면에는 항목이 다시 표시됐지만, 자동화 트리에서는 컨테이너 하위 객체의 연결이 끊겼습니다.

따라서 최초 결함을 “컨테이너가 동작하지 않는다”가 아니라 “동적 객체 재생성 뒤 접근성 객체 생명주기가 복원되지 않는다”로 정의했습니다. 첫 제품에서는 연결 복구와 동적 버튼의 Name 부여만으로 해결했고, 최초 실행·갱신·반복 갱신·Name 기반 탐색을 확인했습니다.

2. 실패한 가설

패밀리 제품의 UI와 기능이 비슷하므로 같은 수정이 작은 회귀 범위로 적용될 것이라 가정했습니다. 하지만 다른 제품은 컨테이너 구성, 하위 객체 생성 순서, 바인딩과 이벤트 연결 방식이 달랐습니다.

실패는 “AI가 코드를 못 만들었다”가 아니라, 제품 간 구조가 같다는 가설을 검증하기 전에 수정부터 확장한 데 있었습니다.

3. Diff에서 발견한 품질 위험

AI Agent는 UIA 결과를 맞추기 위해 컨테이너 내부 구현을 넓게 변경하기 시작했습니다. 이 시점부터 검증 대상은 접근성 트리만이 아니었습니다.

  • 갱신 전후 데이터와 선택 상태가 유지되는가
  • 바인딩 갱신 순서와 이벤트 중복 호출이 달라지지 않는가
  • 기존 클릭·선택·스크롤·필터 동작이 유지되는가
  • 반복 갱신 시 객체 누수나 성능 저하가 생기지 않는가
  • 같은 컨테이너를 공유하는 다른 화면에 영향이 없는가

UIA 자동화 한 항목을 통과시키기 위해 제품 컨테이너 전체를 재검증해야 하는 상태가 됐습니다. 수정의 효과보다 재검증 비용과 미탐 회귀 위험이 커졌습니다.

4. Reject 기준

코드가 컴파일되고 UIA 객체가 다시 보일 가능성만으로 승인하지 않았습니다. 원래 결함의 책임 범위와 실제 수정 책임 범위를 비교했습니다.

  • 원래 책임 범위: 갱신 후 하위 객체의 UIA 연결과 식별자
  • 확대된 책임 범위: 컨테이너 생성, 상태, 데이터 바인딩, 이벤트 생명주기

테스트 대상이 수정 목적보다 훨씬 커지는 순간, 그것은 작은 버그 수정이 아니라 별도 리팩터링 프로젝트입니다. 같은 티켓과 같은 승인 기준으로 진행하면 안 됩니다.

작업을 긴급 취소하고 확장 Diff를 폐기했습니다. 최초 제품의 국소 수정은 유지하되, 패밀리 제품은 제품별 구조와 테스트 범위를 다시 정의하기 전까지 보류했습니다.

5. 다음 재시도에 필요한 QA Gate

  • UIA Tree Baseline: 최초 실행·갱신·반복 갱신의 하위 객체 수, Name, 탐색 경로를 비교합니다.
  • 기능 회귀: 선택·클릭·스크롤·필터·데이터 갱신을 UIA 결과와 별도로 검증합니다.
  • 변경 범위 검토: 접근성 수정이 바인딩·이벤트·데이터 모델을 건드리면 별도 승인으로 분리합니다.
  • 단일 컨테이너 Canary: 제품군 일괄 적용 전에 한 화면과 한 갱신 경로에서 반복 검증합니다.
  • 장시간 검증: 반복 갱신에 따른 메모리, 객체 수, 응답시간 변화를 확인합니다.

6. 이 실패가 보여주는 QA 역량

QA의 역할은 결함을 재현하거나 수정 결과가 한 번 동작하는지 확인하는 데서 끝나지 않습니다. 수정 목적, 변경 폭, 회귀 표면, 검증 가능성을 함께 보고 “이 해결책을 제품에 받아들여도 되는가”를 판정해야 합니다. 이번 사례에서는 미완료를 인정하고 Reject하는 것이 품질 측면의 성공이었습니다.

Operating Model

품질판단을 더 빠르게 하고, 완료 선언은 더 어렵게 만듭니다.

1

의도와 고객여정 복원

기획서·코드·개발자·PM·고객 피드백을 함께 읽고 고객이 실제로 합격이라고 판단할 기준을 구성합니다.

2

기능·데이터·화면 검증

DOM과 API뿐 아니라 Screenshot, 원본 DB, 콘솔, 네트워크와 실제 사용자 흐름을 함께 확인합니다.

3

사람 판단을 표준화

QA는 고객영향만 분류하고 Agent가 증적·Jira·우선순위를 작성하되, 승인 전에는 외부 시스템에 쓰지 않습니다.

4

Validator와 CI로 완료 차단

긴 세션에서 Agent가 절차를 생략해도 Skill·Validator·GitLab Clean Runner가 Screenshot·DLL·Artifact 누락을 차단합니다.

Hardware-aware QA

SW 설치뿐 아니라 테스트 장비의 컨베이어 벨트·모터·광학계 교체, 광학계 캘리브레이션, 보드 펌웨어 업데이트, 산업용 PC 선정과 온도·진동·클럭·동작 검증을 수행해 HW·SW·네트워크 중 어느 영역의 문제인지 현장에서 1차 분류할 수 있습니다.