이론공부

ISTQB - FL 정리

Sunho314 2026. 1. 29. 14:41

테스트 목적

- 산출물 평가

- 장애 유발 / 결함 식별

- 커버리지 보장

- 리스크 완화

- 요구사항 베리피케이션(검증)

- 기대 충족 벨리데이션(확인)

 

테스트 프로세스

1. 동적 테스팅 > 결함 식별

2. 확인 테스팅 > 수정 후 테스트

3. 리그레이션 테스팅 > 다른 부분 잘작동하는지

 

테스팅 / 품질보증

(테스팅)

- 제품 지향적

(품질보증)

- 프로세스 구현 / 개선

- 예방 접근법

 

테스팅 원리

- 결함의 존재 확인 o / 결함이 없음을 증명 x

- 완벽한 테스팅은 불가능

- 조기 테스팅으로 시간/비용 절감

- 결함은 집중

- 테스트 효과는 줄어든다

- 테스팅은 정황에 의존적 > 정황에 따라 접근법이 여러가지

- 결함-부재는 궤변

 

테스트 활동

- 테스트 계획 > 접근법 선택

- 모니터링 > 진행상황 & 계획 비교 활동

- 제어 > 목적 달성을 위한 조치

- 테스트 분석 > 베이시스 기반 TC 식별, 테스트 컨디션 정의, 우선순위 정의

- 테스트 설계

> 테스트 컨디션을 TC와 기타 테스트웨어로 구체화

> 입력값 구체화

- 테스트 구현

> 테스트웨어(데이터) 제작 및 획득

> 수동/자동 스크립트, 테스트 절차 정리, 환경 구축 및 설정

- 테스트 실행 > 수동/자동 수행

- 테스트 완료 > 변경 요청서, 제품 백로그, 테스트웨어 식별/보관, 개선사항 파악, 보고서

 

테스트웨어

- 계획 산출물 > 계획, 일정, 리스크 관리 대장, 시작/완료 저간

- 모니터링/제어 산출물 > 진행 상황 보고서, 제어 지침 문서, 리스크 정보

- 분석 산출물 > (우선순위) 테스트 컨디션, 베이시스 결함 보고서

- 설계 산출물 > 케이스, 차터, 커버리지 항목, 데이터 요구사항, 환경 요구사항

- 구현 산출물 > 절차, 수동/자동 스크립트, 테스트 스위트, 데이터, 실행 일정, 환경 요소(스텁, 드라이버, 시뮬레이터, 서비스 가상화)

- 실행 산출물 > 테스트 로그, 결함 보고서

- 완료 산출물 > 완료 보고서, 개선 항목, 변경 요청서(제품 백로그)

 

베이시스 - 테스트웨어 간의 추적성

- (테스트케이스 - 요구사항) 비교하여 요구사항 커버리지 확인

- (테스트결과 - 요구사항) 목표대비 진행상황 측정 제공

- (테스트결과 - 리스크) 잔존 리스크 수준 평가

- 변경사항의 영향, 테스트 감사, IT 운영 및 관리 기준 충족

- 진행 상황, 완료 보고서 이해 도움

- 이해관계자에게 이해하기 쉬운 방식으로 전달 도움

 

테스팅 역할

- 관리자

> 프로세스, 활동에 대한 전반적인 책임

> 주업무 : 테스트 계획, 모니터링, 제어, 완료

> 관리역할의 일부를 "애자일팀"이 처리할 수 있음

> 개발팀 외부의 테스트관리자가 수행 가능

- 테스터

> 기술적인 측면의 전반적인 책임

> 주업무 : 분석, 설계, 구현, 실행

- 상황에 따른 역할 수행

> 관리자 : 팀리더, 테스트관리자, 개발관리자

> 테스터 : 관리와 테스터 동시에 수행 가능

 

테스팅에 보편적 필요 기술

- 테스팅 지식(기법)

- 철저함, 신중함, 호기심, 세부사항 주의력

- 의사소통 기술, 경청, 팀플레이

- 분석적 사고, 비판적 사고, 창의성

- 기술 지식(테스트 도구)

- 도메인 지식(사용자/비즈니스 대표자 와 의사소통 위해)

 

전체 팀 접근법

- 필요 지식/기술을 갖췄다면 "누구나", "어떤 작업"이든 수행 가능

- 모든 팀원이 품질에 대한 책임 공유

- 의사소통과 협업 강화, 시너지 창출

- 테스터 & 비즈니스 담당자 > 인수테스트 작성

- 테스터 & 개발자 > 테스트 전략 협의, 자동화 접근법 결정

- 보안이 치명적인 경우 > 높은 수준의 테스트 독립성 필요

 

테스트 독립성

- 작성자와 테스터의 이해도 차이 > 결함 식별 효과적

- 꼭 그런 것 만은 아님

 

소프트웨어 개발수명주기(SDLC) 테스팅

- 인수 테스트 주도 개발

- 행위 주도 개발

- 도메인 주도 설계

- 익스트림 프로그래밍

- 기능 주도 개발

- 칸반

- 린 IT

- 스크럼

- 테스트 주도 개발

 

SDLC & 테스팅 영향

- 테스트 범위/시기 (테스트 레벨, 유형)

- 문서 상세화 수준

- 기법, 접근법 선택

- 자동화 범위

- 역할과 책임

 

순차적 개발 모델

- 초기 : 요구사항 리뷰, 분석, 설계

- 후반 : 동적 테스팅

 

반복적, 점진적 개발 모델(애자일, 반복주기)

- 모든 레벨에서 "정적" 및 "동적" 테스팅 수행 가능

- 가벼운 작업 산출물, 테스트 자동화 선호

- 따라서 경험 기반 테스트로 진행하는 경향 있음

 

소프트웨어 개발 주도 테스팅 (개발 접근법)

- 코드 작성 전 테스트 정의

- 조기 테스팅 , 시프트 레프트 접근법

- 반복적 개발 모델 지원

- 테스트 주도 개발(TDD)

> 소프트웨어 설계 대신 TC를 통해 코딩 주도

> TC를 먼저 작성, 코드 작성, TC & CODE 리팩토링

- 인수 테스트 주도 개발(ATDD)

> 시스템 설계 중 인수 조건에서 TC 도출

> 애플리케이션 영역 개발 전 TC 작성

- 행위 주도 개발(BDD)

> 기대 동작을 이해관계자가 이해하기 쉽게(자연어) 작성

> Given/When/Then 형태 사용

> 자동 실행 가능한 테스트로 변환

 

데브옵스 & 테스팅

- 시프트 레프트 테스팅 접근법 장려

- 안정적인 테스트 환경 구축, CI/CD 자동화 배포 프로세스 장려

- 비기능(성능,효율,신뢰) 증가

- 수동 테스팅 필요성 적어짐

- 리그레이션 발생 리스크 적어짐

- 배포 자동화 어려움 (단점)

- 수동화 테스트 또한 여전히 필요함

 

시프트 레프트 접근법

- 개발수명주기 초기에 수행

 

테스트 레벨

- 컴포넌트 테스팅(단위) > 개발자 개발환경

- 컴포넌트 통합 테스팅(통합) > 상향, 하향, 빅뱅

> 컴포넌트 & 인터페이스 상호작용

- 시스템 테스팅 > end-to-end

> 기능 & 비기능 포함

> 실제 환경에서 완성된 시스템

> 독립된 테스트팀 or 내부 테스트팀

- 시스템 통합 테스팅 > 외부 서비스와 인터페이스 테스트 중점

> 실제 환경과 유사한 테스트 환경

- 인수 테스팅 > 밸리데이션, 비즈니스 요구사항 충족

> 실제 사용자가 수행

 

테스트 레벨 구분

- 테스트 대상

- 목적

- 베이시스

- 결함과 장애

- 접근법과 역할

 

테스트 유형

- 기능 테스팅 > 동작 확인

> 성숙도(완전성)

> 정확성

> 타당성(적합성)

- 비기능 테스팅 > 성능 확인

> 품질 특성 확인

> 보안 / 신뢰도 / 유용성

 

유지보수 테스팅

- 테스팅 범위

> 변경의 리스크 수준

> 기존 시스템 크기

> 변경사항의 크기

- 테스팅 계기

> 수정사항

> 운영환경 업그레이드 , 마이그레이션

> 시스템 단종, 복원 및 복구 절차 테스팅

 

정적 테스팅

- 베리피케이션, 밸리데이션 모두 가능

- 산출물 요구사항 정합성 확인

- 사용자 스토리 분석, 리뷰

- 사람이 해석하기 어려움/타사의 실행 코드 > 정적 테스팅 부적합

 

리뷰 유형

- 비공식 리뷰

> 문서 X , 이상 사항 식별

- 워크쓰루 > 저자가 리더***

> 산출물 신뢰 구축, 리뷰어 교육, 합의 도출, 아이디어 창출, 개선 동기 및 지원, 이상사항 발견

- 기술 리뷰 > 중재자가 리더***

> 합의 도출, 산출물 신뢰 구축 등 

- 인스펙션 > 저자 리더 X, 서기 X***

> 가장 공식적인 리뷰

> 이상 사항 식별, 매트릭 수집, 개발수명주기 개선

 

테스트 기법

- 블랙박스 테스트 기법

> 내부 구조 참조 X

- 화이트박스 테스트 기법

> 내부 구조와 처리에 대한 분석 기반

> 설계 & 구현이 끝난 후에 사용

- 경험기반 테스트 기법

> 테스터 능력 기반

 

블랙박스 테스트 기법

- 동등 분할
- 경계값 분석

- 결정 테이블 테스팅

- 상태 전이 테스팅

 

화이트박스 테스트 기법

- 구문 테스팅

- 분기 테스팅

> 분기 100% = 구문 100% 가능

> 구문 100% != 분기 100%

 

오류 추정

- 앱의 과거 동작

- 개발자가 범하기 쉬운 유형

- 유사 앱에서 발생한 장애 유형

 

탐색적 테스팅

- 경험 기반

체크리스트 테스팅

- 너무 일반적, 시작 조건, 종료 조건, 자동점검 X

 

협업 기반 테스트 접근법

- 사용자 스토리 (중요 요소)

> 카드 : 스토리 설명 매체

> 대화 : 소프트웨어 사용 방법(문서 OR 구두)

> 확인 : 인수 조건

 

사용자 스토리 인수 조건 작성법

- 시나리오 기반 (GIVEN WHEN THEN)

- 규칙 기반 (확인 목록 , 표(입력-출력 매핑))

 

인수 테스트 주도 개발

- 테스트 우선 접근법

> 사용자 스토리 구현 전 제작

1. 인수 조건 분석(토론) 작성

2. TC 작성

 

테스트 계획서

- 목적 달성 방법, 일정 문서

- 이해관계자와 의사소통 수단

다음내용 포함

- 범위, 목적, 베이시스, 제약사항

- 리스크 목록, 접근법, 예산 및 일정

 

시작 조건

- 인력, 도구, 환경, 데이터, 예산, 시간

- 베이시스, 요구사항, 스토리, 케이스

- 초기 품질 수준

 

완료 조건

- 커버리지 수준, 미해결 결함 수, 결함 밀도, 실패 케이스

- 체크리스트 완료, 리그레이션 테스트 자동화

- 시간 및 예산 소진

 

추정 기법 (테스트 노력 추정)

- 비율 기반 추정

> 이전 프로젝트 수치 수집

- 외삽법

> 지난 세 번의 반복 주기에 들인 평균 노력으로 다음 반복 주기 추정

- 와이드밴드 델파이

> 전문가 경험 기반

> 합의 도달까지 반복

> 플래닝 포커(와이드델파이 변형) > 숫자가 적힌 카드

- 3점 추정

> 낙관적(a), 이상적(m), 비관적(b)

> E = (a + 4*m + b)/6

> SD = (b-a)/6 

 

우선순위 지정

- 리스크 기반 > 리스크가 큰 케이스 부터

- 커버리지 기반 > 커버리지가 큰 케이스 부터

- 요구사항 기반 > 요구사항이 큰 케이스 부터 > 이해관계자가 우선순위 정의

 

테스트 피라미드 (세분화 수준)

- 낮은 층일 수록 규모가 작고, 독립적, 빠름, 많은 테스트 필요

 

테스팅 사분면

- 1사분면 > 단위,통합

- 2사분면 > 시스템, 기능, 사용자스토리

- 3사분면 > 인수, 사용성, 탐색적

- 4사분면 > 스모크, 비기능, 신뢰성

> 테스트 레벨에 따라 테스트 유형 이 다르다

> 모든 이해관계자에게 테스트 유형을 구분하고 설명하는 방법 제공

 

리스크 관리

- 프로젝트 리스크 ( 프로젝트 관리, 제어 )

> 조직, 인력, 기술적, 공급업체 문제

- 제품 리스크 ( 품질 특성 )

> 잘못된 기능, 계산, 런타임, 비효율, 응답시간, UX, 보안

 

제품 리스크 분석

- 테스팅 엄격함 수준 판단에 도움

제품 리스크 제어

- 완화, 수용, 전가, 대안 계획

 

테스트 모니터링

- 테스트 대상 정보 수집

- 진행상황 평가

- 리스크, 요구사항, 인수 기준 커버리지 완료조건 충족하는지 측정

 

테스트 제어

- 식별된 리스크 우선순위 재지정

- 작업 후 완료조건 충족 평가

- 테스트 일정 조정

- 신규 자원 추가

 

테스트 완료 매트릭(자료)

- 프로젝트 진행상황 > 완료율, 사용률, 테스트노력 투입률

- 테스트 진행상황 > TC구현 진행률, 환경준비, 실행/미실행

- 품질 매트릭 > 가용성, 응답시간, 평균 장애 시간

- 결함 매트릭 > 발견/수정 결함 수, 우선순위, 결함 밀도, 발견 비율

- 리스크 매트릭 > 잔여 리스크 수준

- 커버리지 매트릭 > 요구사항 커버리지, 코드 커버리지

- 비용 매트릭 > 테스팅 비용, 조직 품질 비용

 

테스트 보고서

- 진행상황 보고서 > 테스트 제어, (일정,자원,계획) 수정 시 충분한 정보 제공

- 테스트레벨, 주기, 반복 주기 요약 및 후속 테스팅을 위한 정보 제공

포함내용

- 기간, 진행상황(빠름,늦어짐), 방해요소와 대응방법, 매트릭(자료)

- 식별/수정 리스크 내용

- 다음 주기 예정 테스팅 내용

 

결함 보고서

- 책임자에게 문제 해결을 위한 충분한 정보 제공

- 결과물의 품질 추적 수단 제공

- 개발& 테스트 프로세스 개선 아이디어 제공

 

테스팅 지원 도구

- 테스트 관리 도구 > SDLC, 요구사항, 테스트 ,결함, 형상관리를 도움

- 정적 테스팅 도구 > 리뷰, 정적 분석 수행 지원

- 설계 및 구현 도구 > TC, 데이터, 절차 생성 도움

- 실행 및 커버리지 도구 > 자동 테스트 실행 & 커버리지 측정 도움

- 비기능 테스팅 도구 > 비기능 테스트 수행할 수 있도록 도움 (치트)

- 데브옵스 도구 > 통합 및 배포 등 지원

- 협업 도구 > 커뮤 지원

- 확장성 및 배포 표준화 지원 > 가상머신, 도커

- 테스팅 도움 기타 도구 > 시트 등

 

자동화의 효과 & 리스크

(장점)

- 단순 실수 방지

- 객관적 측정치 제공 (커버리지)

- 관리 & 보고를 지원하기 위한 (그래프, 데이터) 에 쉽게 접근

- 조기 식별, 빠른 피드백, 실행시간 단축

(단점)

- 자동화 등에 필요한 시간,비용,노력에 대한 부정확한 추정

- 수동 테스팅이 필요한 곳에 사용X

- 도구에 의존

- 도구 지원 중단, 종속성

- 호환문제

- 규제 요건, 안전 표준 미준수

 

반복 주기와 릴리스 계획에 테스터의 기여

- 스토리와 품질 & 리스크 분석에 참여

- 노력 추정, 접근법 결정, 테스팅 계획

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

품질보증(QA)

> 사전 예방

품질제어(QC)

> 테스팅

> 분기/구문 테스팅 포함

 

베이시스 - 테스트웨어 간의 추적성

- (테스트케이스 - 요구사항) 비교하여 요구사항 커버리지 확인

- (테스트결과 - 요구사항) 목표대비 진행상황 측정 제공

- (테스트결과 - 리스크) 잔존 리스크 수준 평가

 

테스트 레벨

- 컴포넌트 테스팅(단위) > 개발자 개발환경

- 컴포넌트 통합 테스팅(통합) > 상향, 하향, 빅뱅

> 컴포넌트 & 인터페이스 상호작용 (UI, DB)

- 시스템 테스팅 > end-to-end

> 기능 & 비기능 포함

> 실제 환경에서 완성된 시스템

> 독립된 테스트팀 or 내부 테스트팀

- 시스템 통합 테스팅 > 외부 서비스와 인터페이스 테스트 중점

> 실제 환경과 유사한 테스트 환경

- 인수 테스팅 > 밸리데이션, 비즈니스 요구사항 충족

> 실제 사용자가 수행

 

이해관계자의 빈번한/조기 피드백 영향
- 요구사항 오해 방지

- 조기에 이해 & 구현

- 개발팀이 제품 이해도 향상

- 이해관계자가 중요기능 & 리스크가 큰 기능에 집중 가능

 

테스트 분석

- 우선순위 설정

- 인수 기준 확인

- 베이시스에서 식별된 결함 보고서

테스트 설계

- 케이스, 차터, 커버리지 항목, 테스트 데이터 요구사항, 환경 요구사항

테스트 구현

- 스크립트, 스위트, 데이터, 일정, 스텁, 드라이버, 시뮬레이터, 가상화, 환경요소

테스트 완료

- 완료 보고서, 교훈, 개선 항목, 변경 요청서

 

기술리뷰

- 중재자가 진행

인스펙션

- 가장 공식적인 리뷰 유형

- 주목적 ( 이상현상 식별 )

- 지표 수집

워크쓰루

- 저자가 진행

 

외삽법 계산

( 3(n-1) + (n-2) )/ 4

 

3점추정 계산

( b + 4a + c ) 6

편차 = (c-a)/6

 

테스팅 사분면

- 1사분면 > 단위,통합

- 2사분면 > 시스템, 기능, 사용자스토리

- 3사분면 > 인수, 사용성, 탐색적

- 4사분면 > 스모크, 비기능, 신뢰성

> 테스트 레벨에 따라 테스트 유형이 다르다

> 모든 이해관계자에게 테스트 유형을 구분하고 설명하는 방법 제공

 

제품 리스크 분석

- 테스팅 엄격함 수준 판단에 도움

제품 리스크 제어

- 완화, 수용, 전가, 대안 계획

(리스크분석 , 리스크제어) 는 다른 용어

 

소프트웨어 개발 수명주기

- 기본적으로 초기테스팅이 기반

- 산출물의 초안이 아닌 초안 분석 후 베이시스가 작성되어야 테스트 가능

 

데브옵스

- 지속적으로 변화하는 테스트 환경 보다는 "테스트자동화" 에 더 초점을 둠

 

유지보수 테스팅

- 테스팅 계기  ( 수정, 운영환경 변경, 시스템 단종 )

> 수정사항

> 운영환경 업그레이드 , 마이그레이션

> 시스템 단종, 복원 및 복구 절차 테스팅

 

오류추정

- 테스터의 지식을 기반으로 예측

- 개발자의 사생활은 모름

 

탐색적 테스팅

- 탐테 중에는 모든 블랙박스 기법 사용 가능

- 설계,실행 동시에 함

 

협업 기반 테스트 접근법 = 협업 사용자 스토리 작성 방법

- 사용자 스토리 (중요 요소)

> 카드 : 스토리 설명 매체

> 대화 : 소프트웨어 사용 방법(문서 OR 구두)

> 확인 : 인수 조건

 

커버리지기반 우선순위 지정 기법

- 가장 많은 케이스를 포함하는 tc 부터 우선순위 높음

 

오류(error)

- 인간의 실수

- 결함의 원인

 

결함(defect)

- 오류로 부터 발생

- 잘못된 코딩

 

장애(failure)

- 결함의 실행을 의미

- 사용자에게 해당 결함이 발생

테스트 구현 (산출물)

- 테스트 실행 일정

 

시프트 레프트 접근법

- 코드 구현 or 컴포넌트 통합 전에 케이스 작성

예시)

- 이해관계자가 승인하기 전에 요구사항 검토

- 관련 코드 작성 전 연관 단위 테스트 작성

- 컴포넌트 테스팅 중에 컴포넌트 성능 테스트 실행

 

순차개발모델

- 초기에 할게 없음, 동적테스트 후반에 가능

 

결정테이블 및 분기테스팅의 차이점

결정테이블

- 비즈니스로직에서 케이스 도출

- 블랙박스 테스트

분기테스트

- 테스트 대상의 제어흐름에 대한 지식에서 도출

- 화이트박스 테스트

 

0~ 5}{6 ~ 12}{13

5 6 12 13

4 5 6 7 11 12 13 14

0 1 4 7 11 14

 

 

'이론공부' 카테고리의 다른 글

DevOps  (0) 2024.09.02
운영체제  (3) 2024.06.07
운영체제 기억장치, 입출력 방식  (1) 2024.05.31
인공지능  (0) 2024.04.21
VC++  (1) 2024.04.20