나의 잡다한 노트 및 메모

QA ( Quality Assurance )란? 본문

QA

QA ( Quality Assurance )란?

peanutwalnut 2025. 3. 30. 17:27

IT 분야에서 QA(Quality Assurance)를 수행하기 위해서는 테스트 전략과 프로세스, 커뮤니케이션 능력, 도메인 지식, 그리고 다양한 툴 활용 능력 등이 필요합니다. 단순히 툴을 잘 다루는 것도 중요하지만, 품질 보증을 위한 체계적인 접근법조직 내 협업이 함께 이루어져야 보다 효과적입니다. 아래는 QA를 하기 위해 필요한 요소들을 정리한 내용입니다.


1. QA 기본 지식 및 프로세스 이해

  1. 소프트웨어 개발 생명주기(SDLC)에 대한 이해
    • 애자일(Agile), 워터폴(Waterfall), 스크럼(Scrum) 등 다양한 프로세스에서 QA의 역할을 이해해야 합니다.
    • 초기 기획 단계부터 QA가 참여(Shift-left)하여 요구사항 분석 및 결함 예방에 기여할 수 있어야 합니다.
  2. 테스트 전략(Test Strategy) 수립 능력
    • 어떤 테스트(기능 테스트, 통합 테스트, 시스템 테스트, 회귀 테스트 등)를 어떤 시점에 수행할지 전략을 세울 수 있어야 합니다.
    • 요구사항에 따른 우선순위(리스크 기반 접근)를 설정하여 테스트 범위를 조절할 수 있어야 합니다.
  3. 테스트 케이스 설계(Test Case Design)
    • 명세 기반 테스트(경계값 분석, 동등 분할, 결정 테이블 등)와 경험 기반 테스트(탐색적 테스트, 에러 추정 등)를 적절히 활용할 수 있어야 합니다.
    • Full-TC, Exploratory Testing 등을 병행해서 효과적으로 결함을 찾아내는 데 집중합니다.
  4. 결함 추적 및 관리(Bug Tracking)
    • 버그 리포팅 시 원인 분석(분석 능력)과 재현 가능성(재현 스텝, 스크린샷/로그 첨부)을 명확히 기재하는 습관이 필요합니다.
    • 결함이 해결되는 과정을 추적하고, 재테스트(Re-test)와 회귀 테스트(Regression Test)까지 확인합니다.

2. 커뮤니케이션 & 협업 능력

  1. 테스터-개발자-기획자 간 원활한 의사소통
    • QA 과정에서 발견된 문제, 요구사항 변경, 기술적 제약사항 등을 팀 내 구성원과 빠르고 정확하게 공유해야 합니다.
    • 애자일 환경(스프린트 회의, 스탠드업 미팅)에서는 매일 또는 주기적으로 진행 상황을 공유하는 것이 중요합니다.
  2. 문서화와 보고
    • 테스트 계획, 테스트 케이스, 테스트 결과 등을 문서화하여 이해관계자들이 쉽게 확인할 수 있도록 합니다.
    • 문제 상황이나 리스크를 조기에 파악하고 보고해야, 프로젝트 일정이나 우선순위를 적절히 조정할 수 있습니다.

 

3. 도메인 지식 및 분석 능력

  1. 서비스/제품의 도메인 이해
    • 예: 금융, 전자상거래, 의료, 게임 등 각 도메인마다 규제나 프로세스, 시나리오가 다릅니다.
    • 도메인 지식이 풍부할수록 실제 사용 시나리오를 잘 이해하고, 더 정확한 테스트 케이스를 설계할 수 있습니다.
  2. 분석 능력
    • 복잡한 요구사항이나 로그를 분석하여, 결함이 어디에서 발생하는지 추론하는 능력이 중요합니다.
    • 모니터링 툴이나 로그 분석 툴(예: Kibana, Splunk 등) 등을 활용해 시스템 상태나 오류 원인을 추적합니다.

4. 다양한 QA 도구(Tool) 활용 능력

툴을 잘 사용하는 것은 효율적이고 재현 가능한 테스트, 자동화, 지속적인 통합/배포(CI/CD) 파이프라인 연동 등에서 큰 이점을 제공합니다. 대표적인 QA 툴과 카테고리는 다음과 같습니다:

  1. 이슈 추적/프로젝트 관리 툴
    • 예: Jira, Redmine, Trello, Asana
    • 버그 등록 및 추적, 작업 진행 상황 모니터링, 스프린트 관리 등에 사용됩니다.
  2. 테스트 케이스 관리 툴
    • 예: TestRail, Zephyr, Xray
    • 테스트 케이스를 중앙에서 관리하고, 실행 이력과 결과를 체계적으로 기록할 수 있습니다.
  3. 테스트 자동화 툴
    • 웹/UI 자동화: Selenium, Cypress, Playwright 등
    • API 자동화: Postman, REST Assured, Karate 등
    • 모바일 자동화: Appium 등
    • 반복적인 테스트를 자동화함으로써 QA 효율과 정확도를 높이고, 회귀 테스트에 드는 시간을 단축할 수 있습니다.
  4. CI/CD 연동
    • Jenkins, GitLab CI, GitHub Actions 등과 연계하여 빌드-테스트-배포 프로세스를 자동화합니다.
    • 코드가 변경될 때마다 자동으로 테스트를 실행하여, 결함을 빠르게 발견하고 피드백할 수 있습니다.
  5. 성능 및 부하 테스트 툴
    • 예: JMeter, Gatling, Locust
    • 서비스가 실제 트래픽에서 어떻게 반응하는지 성능, 부하, 스트레스 테스트를 통해 검증합니다.
  6. 보안 테스트 툴
    • 예: OWASP ZAP, Burp Suite
    • 취약점 분석, 침투 테스트(Penetration Test) 등을 통해 보안 결함 여부를 사전에 확인합니다.

 

 

5. 자동화와 수동 테스트의 적절한 조화

  1. 자동화 테스트의 장점
    • 반복적인 테스트 시나리오(회귀 테스트 등)에 대한 시간 절감과 정확도를 높여줍니다.
    • CI/CD 파이프라인과 연동해 빠른 피드백 루프를 구성할 수 있습니다.
  2. 수동(Manual) 테스트의 중요성
    • 탐색적 테스트, UI/UX 검증, 예외적인 시나리오인지적인 판단이 필요한 부분은 여전히 수동 테스트가 중요합니다.
    • 자동화가 모든 것을 대체할 수 없으므로, 필수 기능/핵심 트랜잭션 위주의 자동화와, 복잡한 시나리오나 신규 기능을 중심으로 한 수동 테스트를 병행합니다.

 

  • QA 역량을 강화하기 위해서는
    1. 테스트 프로세스와 전략을 체계적으로 이해하고,
    2. 커뮤니케이션 및 도메인 분석 역량을 키우며,
    3. 적절한 툴을 활용하여 자동화 및 효율화를 실현해야 합니다.
  • 도구 사용은 중요하지만, 툴 자체보다는 문제를 정의하고 분석하며, 품질을 개선하기 위해 어떻게 활용할지 고민하는 과정이 우선입니다.
  • 훌륭한 QA는 조직의 다른 구성원(개발자, 기획자, 디자이너 등)과의 협업을 통해 시스템 전반에 대한 통찰을 제공하고, 조기에 위험 요소를 식별하여 프로젝트를 성공적으로 이끄는 역할을 수행합니다.

 

'QA' 카테고리의 다른 글

릴리즈 품질 기준안  (0) 2025.03.30
Full-TC와 탐색적 검증 (Exploratory Testing)  (0) 2025.03.30