본문 바로가기

Quality Assurance

ISTQB CTFL 정리

1. 테스트의 기본

 

- 테스트의 목적
  결함 발견: 소프트웨어의 결함을 찾아 수정함으로써 품질을 높임.
  품질 보증: 소프트웨어가 요구사항을 충족하는지 확인.
  위험 감소: 제품 출시 전 결함을 발견하여 실패 위험 감소.

 

- 7가지 테스트 원칙
  테스트는 결함의 존재를 보여줌: 결함이 존재함을 증명.
  철저한 테스트는 불가능함: 모든 입력 조합을 테스트할 수 없음.
  조기 테스트: 개발 초기부터 테스트를 수행하여 시간과 비용 절약.
  결함 군집화: 결함이 특정 모듈이나 기능에 집중되는 경향.
  살충제 패러독스: 동일한 테스트 반복 시 새로운 결함 발견 어려움.
  테스트는 상황에 따라 다름: 프로젝트와 제품에 맞게 테스트 접근 방식 조정 필요.
  오류 부재의 궤변: 결함이 없다고 해서 소프트웨어가 사용자 요구를 충족하는 것은 아님.

 

- 기본 테스트 프로세스
  테스트 계획 및 통제
  테스트 목표, 범위, 전략 수립.
  테스트 자원 할당 및 일정 계획.
  진행 상황 모니터링 및 계획 조정.
  테스트 분석 및 설계
  테스트 조건, 케이스, 데이터 정의.
  테스트 환경 준비.
  테스트 구현 및 실행
  테스트 케이스 실행 및 결과 기록.
  결함 보고 및 추적.
  종료 기준 평가 및 보고
  종료 기준 충족 여부 평가.
  테스트 요약 보고서 작성.
  테스트 종료 활동
  테스트 환경 정리 및 아티팩트 보관.
  테스트 활동 평가 및 개선점 문서화.

 

- 테스트의 심리학
  테스터의 역할과 개발자와의 관계: 효과적인 커뮤니케이션과 협력이 중요.
  독립성의 중요성: 독립적인 테스트 팀이 객관성을 유지하고 결함 발견 가능성 높음.

 

2. 소프트웨어 라이프사이클 전반의 테스트

 

- 소프트웨어 개발 라이프사이클 모델
  폭포수 모델: 각 단계가 순차적으로 진행되는 전통적 개발 모델.
  V-모델: 개발과 테스트 활동이 병렬로 진행되는 모델.
  반복적 및 증분적 모델: 소프트웨어를 반복적으로 개발하고 각 반복마다 테스트 수행.
  애자일 모델: 스프린트 단위로 개발 및 테스트 진행.

 

- 테스트 레벨
  단위 테스트: 개별 소프트웨어 모듈 테스트.
  통합 테스트: 모듈 간 인터페이스와 상호작용 테스트.
  시스템 테스트: 시스템 전체 테스트.
  인수 테스트: 최종 사용자의 요구사항 충족 여부 확인.

 

- 테스트 유형
  기능 테스트: 요구사항에 대한 소프트웨어 기능 검증.
  비기능 테스트: 성능, 보안, 사용성 등 비기능적 측면 테스트.
  구조적 테스트 (화이트박스 테스트): 소프트웨어 내부 구조 기반 테스트.
  변경 관련 테스트: 소프트웨어 변경 후 회귀 및 확인 테스트.

 

- 유지보수 테스트
  수정 테스트: 결함 수정 후 테스트.
  회귀 테스트: 소프트웨어 변경이 기존 기능에 미치는 영향 확인.

 

3. 정적 테스트

 

- 정적 기술
  리뷰: 코드, 요구사항, 설계 문서 검토.
  정적 분석: 코드 실행 없이 코드 품질 분석.

 

- 리뷰 프로세스
  계획: 리뷰 목표 및 범위 설정.
  킥오프: 리뷰 팀 소집 및 산출물 설명.
  개별 준비: 각 리뷰어가 산출물 검토 및 결함 식별.
  검사: 리뷰 회의 통해 결함 논의 및 수정 사항 제안.
  재작업: 발견된 결함 수정.
  후속 조치: 리뷰 결과 문서화 및 추가 작업 수행.

 

- 정적 분석 도구
  코드 품질 검사: 코드 표준 준수 여부 검사.
   보안 취약점 분석: 잠재적 보안 문제 식별.

 

4. 테스트 설계 기법


- 블랙박스 기법
   동등 분할: 입력 데이터를 유효 및 무효 분할로 나눔.
   경계 값 분석: 경계 값 근처 데이터 테스트.
   결정 테이블 테스트: 다양한 입력 조합 및 결과 정의.
   상태 전이 테스트: 시스템 상태 변화 및 동작 테스트.
   사용 사례 테스트: 실제 사용 시나리오 기반 테스트.

 

- 화이트박스 기법
   문장 테스트: 모든 코드 문장이 최소한 한 번 실행되도록 보장.
   결정 테스트: 모든 분기 지점이 실행되도록 보장.

 

- 경험 기반 기법
   오류 추정: 경험 기반으로 오류 발생 가능성 높은 부분 테스트.
   탐색적 테스트: 학습, 테스트 설계 및 실행을 동시에 수행.
   체크리스트 기반 테스트: 사전 정의된 체크리스트 사용.

 

5. 테스트 관리

 

- 테스트 조직
   역할 및 책임: 테스트 관리자, 테스트 분석가 및 테스터 역할 정의.
   독립성: 독립적 테스트 팀이 객관성을 유지하고 결함 발견 가능성 높음.

 

- 테스트 계획 및 추정
   테스트 계획 수립: 테스트 목표, 범위, 전략, 자원 및 일정 계획.
   테스트 추정: 테스트 노력 및 비용 추정.

 

- 테스트 모니터링 및 통제
   진행 상황 추적: 계획 대비 테스트 진행 상황 모니터링.
   지표 사용: 결함 밀도, 테스트 커버리지 등 지표 사용.
   보고: 테스트 진행 상황 및 요약 보고서 작성.

 

- 구성 관리
   테스트 아티팩트 관리: 테스트 케이스, 데이터 및 환경 관리.
   버전 및 베이스라인 관리: 소프트웨어 버전 관련 테스트 항목 관리.

 

- 위험 및 테스트
   위험 식별 및 평가: 프로젝트 관련 위험 식별 및 평가.
   위험 기반 테스트: 식별된 위험을 기반으로 테스트 우선 순위 설정.

 

- 결함 관리
   결함 보고 및 추적: 결함 보고 및 추적.
   결함 생명 주기 관리: 결함 발견, 보고, 수정 및 검증 과정 관리.

 

6. 테스트 도구 지원

 

- 테스트 도구 유형
   테스트 관리 도구: 테스트 케이스, 실행 및 결함 추적 관리.
   기능 테스트 도구: 자동화된 기능 및 회귀 테스트 수행.
   성능 테스트 도구: 부하, 스트레스 및 성능 테스트 수행.
   정적 분석 도구: 코드 분석 및 품질 검사 수행.

 

- 도구의 효과적 사용
   테스트 도구의 이점: 효율성, 반복성 및 일관성 제공.
   위험: 도구 비용, 유지보수 및 학습 곡선.

 

- 조직에 도구 도입
   도구 평가 및 선택 기준: 프로젝트에 적합한 도구 평가 및 선택.
   파일럿 프로젝트 및 도구 맞춤화: 도구 시범 적용 및 맞춤화.
   사용자 교육 및 멘토링: 도구 사용 교육 및 지원.



우선순위 1: 기본 원칙과 프로세스
- 테스트의 기본
  테스트의 목적: 결함 발견, 품질 보증, 위험 감소 등.
  7가지 테스트 원칙: 철저한 테스트 불가능성, 조기 테스트 중요성 등.
  기본 테스트 프로세스: 계획, 분석, 설계, 구현, 실행, 평가, 종료.

 

우선순위 2: 테스트 관리와 도구 사용
- 테스트 관리
  테스트 조직: 역할 및 책임, 독립성.
  테스트 계획 및 추정: 계획 수립, 자원 할당, 일정 관리.
  테스트 모니터링 및 통제: 진행 상황 추적, 지표 사용, 보고.
  위험 및 테스트: 위험 식별 및 평가, 위험 기반 테스트.
  결함 관리: 결함 보고 및 추적, 결함 생명 주기 관리.
- 도구 지원
  테스트 도구의 유형: 테스트 관리 도구, 기능 테스트 도구, 성능 테스트 도구, 정적 분석 도구.
  도구의 효과적인 사용: 이점과 위험.
  도구 도입: 도구 평가, 파일럿 프로젝트, 사용자 교육.

 

우선순위 3: 테스트 설계 기법
- 테스트 설계 기법
  블랙박스 기법: 동등 분할, 경계 값 분석, 결정 테이블 테스트, 상태 전이 테스트, 사용 사례 테스트.
  화이트박스 기법: 문장 테스트, 결정 테스트.
  경험 기반 기법: 오류 추정, 탐색적 테스트, 체크리스트 기반 테스트.

 

우선순위 4: 소프트웨어 라이프사이클 전반의 테스트
- 소프트웨어 라이프사이클 전반의 테스트
  소프트웨어 개발 라이프사이클 모델: 폭포수 모델, V-모델, 반복적 모델, 애자일 모델.
  테스트 레벨: 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트.
  테스트 유형: 기능 테스트, 비기능 테스트, 구조적 테스트, 변경 관련 테스트.
  유지보수 테스트: 수정 테스트, 회귀 테스트.

 

우선순위 5: 정적 테스트
- 정적 테스트
  정적 기술: 리뷰, 정적 분석.
  리뷰 프로세스: 계획, 킥오프, 개별 준비, 검사, 재작업, 후속 조치.
  정적 분석 도구: 코드 품질 검사, 보안 취약점 분석.

 

면접 준비 팁
- 기본 개념 숙지: 테스트의 기본 원칙과 프로세스, 테스트 관리 및 도구 사용에 대한 이해가 중요합니다.
-  실무 경험 공유: 실제 프로젝트에서의 경험을 기반으로 테스트 설계 기법 및 관리 기법을 어떻게 적용했는지 설명할 수 있어야 합니다.
-  실제 사례 설명: 과거 프로젝트에서 직면했던 문제와 이를 해결하기 위해 어떻게 테스트를 설계하고 관리했는지 구체적인 사례를 준비하세요.
-  최신 경향 이해: 애자일 및 지속적인 통합/배포(CI/CD) 환경에서의 테스트 방법론에 대해 이해하고 이를 설명
할 수 있도록 준비합니다.

'Quality Assurance' 카테고리의 다른 글