[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) 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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바