[CSTS][Part01] 1장 테스트 개요

2025. 9. 14. 22:55·QA/csts

 

1. 오류, 장애, 결함

  • 오류(Error): 사람이 만든 실수 (요구사항 누락, 잘못된 설계, 잘못된 코드 작성 등).
  • 결함(Defect/Bug): 오류로 인해 코드나 산출물에 잘못 들어간 문제.
  • 장애(Failure): 결함이 실제 실행 시 드러나서 소프트웨어가 잘못 동작하는 것.

관계: 사람의 오류 → 코드 결함 → 실행 시 장애


2. 테스팅, 디버깅, 재테스트

  • 테스팅(Testing)
    • 소프트웨어 실행 → 실제 결과 vs 요구사항 비교 → 차이 확인
    • 결함이 존재하는지 알 수 있지만, 왜 발생했는지 해결 방법은 다루지 않음.
    • 종류
      • 정적 테스트: 실행하지 않고 확인 (리뷰, 정적분석)
      • 동적 테스트: 실제 실행해 확인
  • 디버깅(Debugging)
    • 테스팅 결과 결함 발견 → 원인 분석 + 코드 수정 → 결함 제거
  • 재테스트(Re-testing)
    • 수정한 코드가 정말로 결함을 제거했는지 다시 실행하여 확인

 


3.결함의 유형 3가지

1.누락(Missing Defect)

  • 정의: 요구사항에 있어야 할 기능이나 조건이 아예 구현되지 않은 경우
  • 원인: 요구사항 분석 단계에서 빠뜨렸거나, 설계·코딩 과정에서 누락
  • 예시
    • 요구사항: "회원가입 시 이메일 인증 절차가 있어야 한다"
    • 실제 구현: 이메일 인증 절차 없음
    • 필수 기능이 빠져버린 상황

2.부정확한(Inaccurate Defect)

  • 정의: 구현은 되었지만, 요구사항과 다르게 잘못 동작하는 경우
  • 원인: 잘못된 설계, 코딩 오류, 잘못된 연산 처리
  • 예시
    • 요구사항: "상품 할인율은 소수점 둘째 자리에서 반올림"
    • 실제 구현: 소수점 버림 처리
    • 있긴 있는데, 정확하지 않게 구현된 상황

3.비관련(Irrelevant Defect)

  • 정의: 요구사항에는 없는데 불필요한 기능이나 로직이 구현된 경우
  • 원인: 개발자의 임의 추가, 불필요한 기능 구현, 범위 관리 실패
  • 예시
    • 요구사항: "로그인 성공 후 메인 페이지로 이동"
    • 실제 구현: 로그인 성공 후 불필요하게 팝업 광고 창 노출
    • 필요 없는 기능이 들어가 혼란을 주는 상황

예시

누락 (Missing) 있어야 할 기능이 없음 이메일 인증 기능 없음
부정확한 (Inaccurate) 잘못 구현됨 할인율 계산 오류
비관련 (Irrelevant) 불필요한 기능이 포함됨 로그인 후 광고 팝업

 

  • 누락 = 요구사항 빠짐
  • 부정확 = 요구사항과 다름
  • 비관련 = 요구사항에 없는 것 추가

 

4.테스트와 품질

ISO/IEC 25010 품질 특성 (8대 주특성)

주특성 설명

기능 적합성 요구된 기능을 제대로 수행하는가
성능 효율성 빠른 응답, 자원 낭비 최소화
호환성 다른 시스템과 잘 연동되는가
사용성 배우기 쉽고 쓰기 쉬운가
신뢰성 오동작 없이 안정적으로 동작하는가
보안성 데이터 보호 능력
유지보수성 수정·보수하기 쉬운가
이식성 다른 플랫폼에서도 동작 가능한가

 

기능 요구사항 중심 → 기능 테스트
품질 요구사항 중심 → 비기능 테스트


5.테스트와 품질 보증

  • 테스트 < V&V < 품질보증(QA)
    • 테스트: 실행해서 결함 찾기
    • V&V(Verification & Validation): 검증+확인 (요구사항에 맞는지)
    • 품질보증(QA): 프로세스까지 포함, 품질 보장을 위한 조직적 활동

6.테스트 설계 기법

  1. 정적 테스트
    • 실행하지 않고 문서나 코드 점검
    • 리뷰, 정적 분석
  2. 동적 테스트
    • 실행하여 실제 동작을 확인
  3. 테스트 설계 접근법
    • 명세 기반(블랙박스): 요구사항/설계 문서를 기반으로 → 기능 위주
      (컴포넌트/통합/시스템/인수 테스트)
    • 구조 기반(화이트박스): 내부 코드 구조를 기반으로 → 제어·자료 흐름 위주
    • 경험 기반: 테스터 경험과 직관 활용
      (오류 추정, 탐색적 테스트)

7.테스트 기본 용어

  • 테스트 케이스(Test Case): 입력값 + 실행조건 + 기대 결과
  • 테스트 절차(Test Procedure): 케이스 실행 순서, 방법
  • 테스트 환경(Test Environment): 테스트를 실행할 하드웨어·소프트웨어 환경

 요약

  • 오류(사람) → 결함(산출물) → 장애(실행 결과)
  • 테스팅: 결함 발견 / 디버깅: 수정 / 재테스트: 수정 확인
  • 품질 특성: ISO 25010 (기능, 성능, 호환, 사용성, 신뢰, 보안, 유지보수, 이식성)
  • 테스트 종류: 정적 vs 동적
  • 설계 기법: 명세 기반, 구조 기반, 경험 기반
  • 테스트 용어: 케이스, 절차, 환경

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

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

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
힙딩
[CSTS][Part01] 1장 테스트 개요
상단으로

티스토리툴바