Success

한 줄 핵심 암기

  • 애플리케이션 테스트(Application Test) = 잠재적 결함(오류) 찾는 과정
  • 핵심: 고객 요구사항 만족? → 확인(Validation) / 명세서대로 구현? → 검증(Verification)
  • 확인(Validation) = 사용자 입장, 요구사항 만족?
  • 검증(Verification) = 개발자 입장, 명세대로 구현?
  • 정적 = 실행 X / 동적 = 실행 O
  • 화이트박스 = 내부 코드 / 블랙박스 = 입력·출력(기능)
  • 파레토 = 20% 코드에 80% 결함
  • 테스트 케이스 = 요구사항을 기준으로 입력값·실행조건·예상결과를 정해 실제 결과와 비교해 결함을 찾는 것.
  • 살충제 = 같은 테스트 반복 시 새 결함 발견↓
  • 오류-부재의 궤변 = 오류가 없어도 요구사항 불만족이면 실패
  • 동치분할 = 입력값 그룹화
  • 경계값 = 최소·최대·바로 앞뒤
  • 회귀 = 수정 후 기존 기능 이상 유무
  • 회복 = 복구 확인
  • 강도 = 과부하
  • 성능 = 응답시간·처리량·속도
  • 보안(안전) = 침입·보안 결함
  • 상향식 = 드라이버 필요 / 하향식 = 스텁 필요

1) 애플리케이션 테스트(Application Test)

  • 정의: 애플리케이션이 요구사항에 맞게 동작하는지 확인하고, 잠재적 결함(오류)을 찾아내는 과정
  • 목적: 품질 향상, 결함 예방 및 조기 발견, 신뢰성 확보
  • 핵심 관점
    • 고객 요구사항을 만족하는가? → 확인(Validation)
    • 명세서대로 구현되었는가? → 검증(Verification)
  • 실행 여부 기준
    • 정적 테스트: 실행 X
    • 동적 테스트: 실행 O

2) 확인(Validation) / 검증(Verification)

  • 확인(Validation): 사용자 관점에서 고객 요구사항을 만족하는지 확인
  • 검증(Verification): 개발자 관점에서 명세서대로 구현되었는지 확인

3) 테스트 기본 원리(원칙)

  • 완벽한 테스트는 불가능: 모든 입력/경로를 전부 테스트할 수 없음
  • 결함 없음 증명 불가: 테스트로 결함이 없음을 “증명”할 수는 없음
  • 파레토 법칙: 전체 결함 80%가 20%의 코드에서 발생함
  • 결함 집중: 결함이 특정 모듈에 몰리는 경향
  • 살충제 패러독스: 같은 테스트 반복 → 새로운 결함 발견이 어려움
  • 오류-부재의 궤변: 오류가 없어도 요구사항을 만족 못 하면 품질이 낮음
  • 테스트와 위험: 테스트를 많이 할수록 위험이 감소
  • 테스트 시작: 작은 부분부터 시작해 점점 확대
  • 테스트 수행 주체: 개발자와 독립된 별도 팀이 수행하는 것이 바람직

4) 프로그램 실행 여부 기준

  • 정적 테스트: 실행 X
    • 코드 리뷰
    • 문서/명세 검사
  • 동적 테스트: 실행 O
    • 프로그램을 실제로 돌려서 확인

5) 테스트 기반(관점) 분류

  • 명세 기반 테스트: 요구사항/명세서 기준
  • 구조 기반 테스트: 코드 내부 구조, 논리 흐름 기준
  • 경험 기반 테스트: 테스터 경험, 직관, 감에 기반

6) 화이트박스 / 블랙박스

  • 화이트박스 테스트: 내부 코드 확인, 논리 경로, 조건, 반복문 중심
  • 블랙박스 테스트: 기능 중심, 입력/출력, 요구사항 중심(내부 구조는 모름)

7) 화이트박스 테스트 종류

  • 기초 경로 검사: 수행 가능한 모든 경로 검사
  • 제어 구조 검사: 조건, 반복, 데이터 흐름 검사
  • 루프 검사: 반복문 검사
  • 조건 검사: 조건식 검사
  • 데이터 흐름 검사: 변수의 정의(정의 위치)와 사용(사용 위치) 관계 검사

8) 블랙박스 테스트 종류

  • 동치 분할 검사: 입력값을 의미 있는 그룹(등가 클래스)으로 나눠 대표값 테스트
  • 경계값 분석: 최소/최대/바로 앞뒤 값 테스트
  • 원인-효과 그래프 검사: 입력 조건(원인)과 출력 결과(효과) 관계 기반
  • 오류 예측 검사: 경험으로 오류를 예상해 테스트 케이스 도출
  • 비교 검사: 여러 버전의 결과를 비교

9) 테스트 목적(유형)

  • 회복 테스트: 고의로 실패시키고 복구 여부 확인
  • 안전(보안) 테스트: 불법 침입, 보안 결함 확인
  • 강도 테스트: 과부하, 한계점, 많은 부하 상황 확인
  • 성능 테스트: 응답 시간, 처리량, 속도 확인
  • 구조 테스트: 내부 논리 경로, 복잡도 확인
  • 회귀 테스트: 수정 후 기존 기능 이상 유무 확인
  • 병행 테스트: 기존 시스템과 새 시스템 결과 비교

10) 테스트 레벨

  • 단위 테스트: 모듈 1개, 컴포넌트 1개 단위
  • 통합 테스트: 모듈 간 연결(인터페이스) 확인
  • 시스템 테스트: 전체 시스템 대상
  • 인수 테스트: 사용자/고객이 최종 확인

11) 통합 테스트 방식

  • 빅뱅 테스트: 한 번에 모두 통합
  • 상향식 테스트: 아래 모듈 → 위 모듈 (드라이버 필요)
  • 하향식 테스트: 위 모듈 → 아래 모듈 (스텁 필요)
  • 샌드위치 테스트: 상향식 + 하향식 혼합

시험 직전 30초 암기(초압축)

애플리케이션 테스트(Application Test) = 잠재적 결함(오류) 찾는 과정
핵심: 고객 요구사항 만족? → 확인(Validation) / 명세서대로 구현? → 검증(Verification)
확인(Validation) = 사용자 입장
검증(Verification) = 개발자 입장
정적 = 실행 X
동적 = 실행 O
화이트박스 = 내부 코드
블랙박스 = 입력/출력 기능
파레토 = 20% 코드 80% 오류
살충제 = 같은 테스트 반복 X
오류-부재 = 오류 없어도 요구사항 불만족이면 실패
경계값 = 최소/최대/앞뒤
동치분할 = 입력값 그룹
회귀 = 수정 후 기존 기능 확인
회복 = 복구 확인
강도 = 과부하
성능 = 속도/응답시간/처리량
보안 = 안전 테스트
상향식 = 드라이버
하향식 = 스텁