연초에 짧은 기간에 여러번 "QAOps" 라는 표현을 여러 명에게 들으면서 속으로 의문이 들었다.
a)이들 각자가 말하는 "QAOps"가 다 같은 것을 말하는 것일까?
또, 마치 b)'테스트'가 곧 'QA'라고 생각하는 비틀림과,
c) DevOps는 CI/CD 구축하면 다라고 생각하는 비틀림
이 두가지가 겹쳐서 '테스트 자동화'를 하면 곧 QAOps라고 생각하고 얘기하는 건 아닐까 하는 생각이 들었다.
그래서 이 글(슬라이드)을 써야지 생각했었다.
하지만 막상 시작하니 큰 일. 좀처럼 진도가 나가지 않았다. 머리 속에 생각이 있고, 기존에 많은 경험/사례/글들이 있었음에도 생각을 큰 틀로하고 기존 사례들로 내용을 채우는 것만도 쉽지 않았다.
미루고 미루다 마침내 구글 슬라이드로 -문서 자체는 허접이지만 - 만들어 봤다.
문서 개요
이 PDF 문서는 "지속적 테스팅 구축 사례 (Continuous Testing, TestOps, QAOps 알아보기)"라는 제목으로, 2025년 8월 genycho가 작성한 자료입니다. 총 42페이지로, 소프트웨어 개발에서 CI/CD와 Continuous Testing(CT)을 도입하는 사례를 중점적으로 설명하며, 테스트 자동화의 실천 방법, 도구, 효과, 한계를 다룹니다. 문서는 DevOps 관점에서 품질 보장을 강조하며, 무료/오픈소스 도구를 활용한 실무 사례를 제시합니다. 주요 테마는 "테스트 자동화 ≠ 지속적 테스팅"으로, 자동화를 CI/CD 파이프라인에 통합하여 지속적으로 실행하는 방식을 강조합니다.
주요 내용 요약
1. 개요 (Pages 1-10)
- CI/CD 개념: 소스 코드 통합(Source Control) → 빌드(Build) → 테스트(Test) → 개발/스테이징/프로덕션 환경 배포(DEV/STG/PROD)의 자동화 흐름. GitHub Actions로 빌드, ArgoCD와 Kubernetes/Helm으로 배포 사례 제시.
- Continuous Testing(CT) 개념: 개발 생명주기 전반에 테스트를 자동화하여 결함 조기 발견, 빠른 피드백 제공. Unit Test/Code Inspection(개발/빌드 단계), API/UI Test(배포 후/주기적 실행)으로 구성.
- 테스트 자동화 피라미드: Mike Cohn의 모델로, Unit Test(80%, 저비용/고속도) → API Test(20%) → UI Test(5%, 고비용/저속도) 계층화. QE/TE 역할: 개발자 교육(Pair Programming), API/UI 자동화 구축(Selenium, pytest 등).
- CI/CD & CT 구축 사례: GitHub → Docker 빌드 → ArgoCD 배포 → Jenkins 테스트 연동. 도구: pytest, SonarQube, Jenkins, Selenium, Appium 등.
2. 상세 (Pages 11-37)
- 개발 품질 점검:
- Unit Test: 개발자 교육(pytest, mock), Pair Testing. 빌드 시 자동 실행(pytest-cov 커버리지 측정).
- Code Inspection: SonarQube로 정적 분석(Bugs, Code Smells, Security). IDE(SonarLint) 통합, Pull-Request/PR 시 자동 검사.
- CT 구성: ArgoCD 배포 후 Jenkins Remote Trigger로 테스트 실행(API/WEB/APP, 모드: dev/stg/prd).
- API Test: pytest & requests로 구현. 재사용성 위해 파라미터화, 마커 기능 사용. 개발 단계(조기 검증)와 운영 단계(헬스 체크) 분리.
- 웹 UI Test: pytest & Selenium. End-to-End 기본 흐름만 자동화(피라미드 전략). 유지보수 최소화: Element 분리 정의, BDD(Robot Framework), 타임아웃 처리(Implicit/Explicit Wait). Jenkins Slave PC에서 브라우저(Chrome 등) 실행.
- 앱 UI Test: pytest & Appium. 설치/기본 동작 확인만 최소화. Jenkins Slave에 물리 디바이스 연결.
- 알림 관리: Jenkins/Slack/Teams 연동. 빌드/테스트 실패 시 상세 알림(링크 포함).
- 현황 대시보드: SonarQube(코드 품질), Jenkins(View 기반 프로젝트별 결과).
- 기타: Slack 봇으로 테스트 수동 실행(Jenkins 접근 없이).
3. 정리 (Pages 38-42)
- 해야 할 일들: 테스트 병렬 실행 확대(클라우드 인스턴스 동적 관리), 모니터링 고도화, 테스트 데이터 관리, 모바일 Device Farm 적용.
- CT 효과와 한계: 효과 - Shift-Left(조기 품질 확보), 지속 피드백, 배포 안정성, 협업 문화. 한계 - 자동화 불가능 영역(UI/UX), 속도 vs 커버리지 균형, 환경 관리(TDM/Mocking), flaky test, 조직 저항.
- CT vs TestOps/QAOps:
- CT: 테스트 자동화 내재화, 빠른 피드백 초점.
- TestOps: 테스트 운영 최적화(인프라/데이터 관리).
- QAOps: QA를 DevOps에 통합, End-to-End 품질 관리(모니터링/Observability).
사용 도구 및 특징
- 주요 도구: GitHub Actions(CI), ArgoCD(CD), Jenkins(테스트 실행/알림), SonarQube(코드 검사), pytest(테스트 러너), requests(API), Selenium(웹 UI), Appium(앱 UI), Slack/Teams(알림).
- 특징: 무료 도구 중심, 재사용성/유연성 강조(pytest 마커/파라미터화), 피라미드 전략으로 비용 효율화, CI/CD 연동으로 자동화.
이 문서는 실무 사례 중심으로 CT 도입 가이드를 제공하며, DevOps/QA 팀에게 유용합니다. 전체적으로 CT가 품질과 개발 효율을 높이는 전략임을 강조합니다.
'아카이브 > 사례' 카테고리의 다른 글
| jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기 - 2020 (0) | 2025.12.22 |
|---|---|
| UI빈발결함 및 테스트의 필요성 초기교육자료 - 2020 (0) | 2025.12.22 |
| SI 화면테스트(단위) 가이드 - 2020 (0) | 2025.12.22 |
| 위험기반테스트접근 테스트 계획 사례 - 2020 (0) | 2025.12.22 |
| 코드 테스트와 커버리지 관련 설문 및 개선 계획 수립 - 2018 (0) | 2025.12.22 |