[CSTS][Part01] 2장 테스트 분류와 테스팅 방법

2025. 9. 14. 23:27·QA/csts

1. 테스트 분류

(1) 테스트 레벨(Test Levels)

소프트웨어 개발 생명주기(SDLC) 단계와 대응되며, 각 단계별로 다른 목적과 범위를 가짐.

  • 컴포넌트 / 단위 테스트 (Component / Unit Test)
    • 가장 작은 단위(클래스, 함수, 모듈)를 검증
    • 코드 레벨에서 동작 확인
    • 주체: 주로 개발자
    • 목적: 모듈이 설계대로 동작하는지, 내부 로직이 올바른지 확인
    • 예시: 로그인 함수에서 올바른 아이디·비밀번호 입력 시 True 반환 확인
  • 통합 테스트 (Integration Test)
    • 여러 단위를 결합했을 때 상호작용(인터페이스)이 올바른지 확인
    • 주체: 개발자 + 테스터
    • 목적: 모듈 간 데이터 교환, API 연동, 인터페이스 에러 검출
    • 예시: 회원가입 모듈과 DB 모듈을 통합 → 회원정보가 DB에 정상 저장되는지 확인
  • 시스템 테스트 (System Test)
    • 완성된 전체 시스템을 테스트
    • 주체: 독립된 테스트 팀(QA)
    • 목적: 요구사항 명세서에 맞게 시스템 전체가 동작하는지 확인
    • 예시: “회원가입 → 로그인 → 결제 → 배송 조회” 시나리오 전체 실행
  • 인수 테스트 (Acceptance Test)
    • 완성된 시스템이 고객/사용자의 요구사항을 충족하는지 검증
    • 주체: 고객, 사용자, 운영팀
    • 목적: 실제 사용 환경에서 시스템이 계약된 조건과 비즈니스 요구를 만족하는지 확인 
단위 테스트 (Unit Test / Component Test) 모듈, 함수 등 가장 작은 단위의 코드 테스트 개발자 내부 로직과 설계가 올바른지 확인
통합 테스트 (Integration Test) 모듈 간의 연결, 인터페이스 동작 검증 개발자 + 테스터 모듈 간 상호작용, 데이터 교환 검증
시스템 테스트 (System Test) 완성된 전체 시스템 테스트 독립된 QA팀 요구사항 명세서대로 전체 시스템이 정상 동작하는지 확인
인수 테스트 (Acceptance Test) 고객/사용자 입장에서 검증 고객, 사용자, 운영팀 계약 조건과 실제 요구사항 충족 여부 확인 (시스템을 받아들일 수 있는지 판단)

(2) 테스트 유형(Test Types)

  1. 기능 테스트 (Functional Test)
    • 무엇을 하는가?에 초점 (요구된 기능 확인)
    • 블랙박스 테스트 중심
    • 예시: 로그인 성공/실패 케이스 확인, 결제 승인 여부 확인
  2. 비기능 테스트 (Non-functional Test)
    • 품질 특성을 확인 (ISO 25010 기준)
    • 예시: 1,000명 동시접속 시 응답 속도 확인, 보안성 테스트

(3) ISO/IEC 25010 소프트웨어 품질 모델

소프트웨어 품질을 평가하기 위한 국제 표준 모델.
8대 주특성과 세부 부특성으로 구성됨.

주특성 부특성 설명

기능 적합성 완전성, 정확성, 타당성 요구된 기능을 빠짐없이, 올바르게, 실제 목적에 맞게 제공
사용성 타당성 식별력, 학습성, 운영 용이성, 사용자 오류 보호, 사용자 인터페이스 미학, 접근성 사용자가 배우기 쉽고, 편리하며, 직관적이어야 함
성능 효율성 시간 행동, 자원 활용성, 수용성 빠른 응답속도, 최소 자원 소모
호환성 공존성, 상호운영성 다른 시스템·환경과 잘 연동, 동일 자원에서 공존 가능
신뢰성 성숙성, 가용성, 장애 허용성, 회복 가능성 오류 발생률 낮고, 장애 시 복구 가능
보안성 기밀성, 무결성, 부인방지, 책임성, 진본성 데이터 보호 및 접근 제어, 사용자 인증
유지보수성 모듈성, 재사용성, 분석성, 변경 용이성, 테스트 용이성 코드 구조가 이해하기 쉽고, 변경·수정이 쉬움
이식성 적응성, 설치 용이성, 대치 용이성 다른 플랫폼이나 OS에서도 쉽게 실행 가능

2. 테스트 설계 기법에 따른 분류

(1) 정적 테스트 (Static Testing)

  • 소프트웨어를 실행하지 않고 결함을 검출
  • 주로 문서나 코드 리뷰 단계에서 수행

리뷰 유형

  1. 관리 리뷰 (Management Review): 프로젝트 상태, 일정, 리스크 점검
  2. 기술 리뷰 (Technical Review): 기술적 타당성 점검 (설계 문서, 코드)
  3. 인스펙션 (Inspection): 공식적, 체크리스트 기반, 결함 검출 목적
  4. 워크쓰루 (Walkthrough): 작성자가 동료에게 설명하며 피드백 받음
  5. 감사 (Audit): 외부 규정·표준 준수 여부 확인

정적 분석 유형

  • 코딩 표준 준수 여부 확인
  • 복잡도 측정 (예: 순환 복잡도 → 코드 난이도 지표)
  • 자료 흐름 분석: 변수 정의–사용–소멸 과정 확인

(2) 동적 테스트 (Dynamic Testing)

  • 실행을 통해 결함 검출

명세 기반 테스트 (Specification-based, 블랙박스)

  • 입력/출력 요구사항을 기준으로 테스트 케이스 설계
  • 예시 기법: 동등분할, 경계값 분석, 결정 테이블, 상태 전이, 유스케이스

구조 기반 테스트 (Structure-based, 화이트박스)

  • 코드 제어 흐름/자료 흐름 기반
  • 예시 기법: 문장 커버리지, 분기 커버리지, 조건 커버리지, 경로 커버리지

경험 기반 테스트 (Experience-based)

  • 테스터의 경험, 직관, 유사 프로젝트 사례 활용
  • 예시 기법:
    • 오류 추정(Error Guessing): “이런 곳에서 오류가 날 확률이 크다” 예측
    • 탐색적 테스트(Exploratory Testing): 계획과 실행을 동시에 수행

3. 테스팅 방법

  1. 리그레션 테스트 (Regression Test)
    • 코드 수정 후, 기존 기능이 영향을 받지 않았는지 확인
    • 자동화 테스트 도구와 함께 사용되는 경우 많음
  2. 소프트웨어 생명주기 모델과 테스트
    • V-모델: 개발 단계마다 대응되는 테스트 존재
      • 요구사항 ↔ 인수 테스트
      • 시스템 설계 ↔ 시스템 테스트
      • 아키텍처 설계 ↔ 통합 테스트
      • 모듈 설계 ↔ 단위 테스트
    • 애자일 모델: 테스트를 매 반복주기마다 짧게 수행, 자동화 중심
  3. 위험 기반 테스트 (Risk-Based Testing)
    • 결함 발생 가능성과 영향도를 기준으로 우선순위 테스트
    • 고위험 영역(보안, 결제, 핵심 기능) → 먼저 테스트
  4. 모델 기반 테스트 (Model-Based Testing)
    • 요구사항/업무 흐름을 모델(다이어그램, 상태 전이도 등)로 만들고 → 자동으로 테스트 케이스 생성

요약

  • 테스트 레벨: 단위 → 통합 → 시스템
  • 테스트 유형: 기능 vs 비기능
  • ISO 25010: 8대 특성 + 부특성 암기
  • 정적 테스트: 실행 X (리뷰·정적분석)
  • 동적 테스트: 실행 O (명세 기반, 구조 기반, 경험 기반)
  • 리그레션: 수정 후 영향도 확인
  • 위험 기반: 위험도 높은 부분부터
  • 모델 기반: 모델 이용 → 자동 케이스 생성

 

'QA > csts' 카테고리의 다른 글

[CSTS][Part01] 1장 테스트 개요  (0) 2025.09.14
'QA/csts' 카테고리의 다른 글
  • [CSTS][Part01] 1장 테스트 개요
힙딩
힙딩
삽질은 나를 성장하게 해주는 경험치..
  • 힙딩
    삽질은 나의 경험치
    힙딩
  • 전체
    오늘
    어제
    • 분류 전체보기 (31) N
      • QA (2) N
        • csts (2) N
      • 개발 (1)
        • python (1)
      • 프론트엔드 (2)
        • React (0)
        • Javascript (0)
        • HTML&CSS (0)
      • 일기 (1)
        • 일기 (1)
      • 면접준비 (0)
      • 독서 (1)
      • 내맘대로 (23)
        • 웹 (3)
        • 안드로이드 (10)
        • 서버 (3)
        • 오류모음 (6)
        • 아두이노 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    인텐트
    한입 fe 챌린지 2기
    자바스크립트
    로그
    요약
    이지스퍼블리싱
    파이썬
    HTML
    데이터전달
    제2장 테스트 분류와 테스팅 방법
    javascript
    CSTS
    log
    한권으로 끝내는 웹 기본 교과서
    CSS
    소프트웨어 테스트 전문가(csts) 정리
    intent
    PYTHON
    php
    Do it
    서평단
    공부
    putExtra
    소프트웨어 테스트 전문가(csts) 가이드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
힙딩
[CSTS][Part01] 2장 테스트 분류와 테스팅 방법
상단으로

티스토리툴바