SlideShare a Scribd company logo
2015, 봄학기
게임콘텐츠스쿨
이종원 교수
ISTQB 강의노트 5
테스트 설계 기법[2]
학습내용
v 명세기반 설계기법
– 상태전이테스팅, 유즈케이스테스팅
v 구조기반 설계기법
– 커버리지
– 구문테스팅, 결정테스팅
상태 전이 테스팅이란?
v 시스템은 현재 상황과 이전의 이력을 반영하는 상태 및 그
변화에 따라 다르게 동작할 수 있음
– 시스템을 상태 사이의 관계로 파악
v 상태 전이 다이어그램으로 표현할 수 있으며, 이 다이어그램
을 바탕으로 테스트 케이스를 도출함
– 상태간의 전이
– 상태를 변화시키는 이벤트와 입력값
– 상태의 변화로 유발되는 동작 등 파악
v 시스템의 상태기반 행위가 명세된 내용과 일치함을 검증
상태 전이 다이어그램 예제
v 음료 자판기의 상태전이 다이어그램
음료선택
금액투입대기
ev취소/투입금액반환;라이트리셋()
ev음료버튼선택/캔방출();잔액반환();잔량수정()
ev금액투입[투입금액>=가격]
ev취소/투입금액반환()
ev금액투입[투입금액<가격]
ev금액투입
[투입금액<가격]
ev금액투입
[투입금액>=가격]
상태 전이 테스팅이란?
v 상태 전이 다이어그램을 기반으로 상태-이벤트 테이블 작성
v 임베디드 시스템, 자동화가 필요한 부분에서 주로 사용
v 상태 전이 테스팅을 통한 테스트 설계 방식
– 전형적인 상태의 순서를 커버하는 방식
– 모든 상태를 커버하는 방식
– 모든 상태 전이를 실행하는 방식
– 특정한 상태 전이 순서를 실행하는 방식
– 불가능한 상태 전이를 테스트하는 방식
상태 다이어그램 표기법
v 다이어그램 표기법 : 106쪽 표 4.7 참조
요소 설명 표기법
상태
하나 또는 그 이상의 이벤트를 기
다리는 시스템 모드
원, 원 안에 상태명 표시
전이
이벤트에 의해 한가지 상태에서
다른 상태로의 변경
화살표
이벤트 상태의 전이를 유발하는 요인
화살표에 이름과 값으로 표시
(예: ev취소)
가드 이벤트가 발생하는 조건
이벤트 오른편의 [ ]안에 조건이
나 값으로 표시
액션
상태의 전이에 따라서 유발되는
동작
화살표에 이름과 값으로 표시
(예: ev취소/투입금액반환)
상태전이테스팅으로 발견할 수 있는 결함
v 명세가 잘못된 경우(모델상의 결함)
– 초기 상태 누락
– 전이 또는 액션의 누락
– 가드를 전이 대신 표기함
– 가드의 중복 또는 불일치
v 구현이 잘못된 경우
– 상태: 여분/누락/훼손
– 액션이 틀리거나 누락됨
– 스니크 패스, 트랩도어
인스펙션
리뷰
정적분석툴
동적 테스팅
테스트 케이스 도출 순서
v 상태 전이 다이어그램을 바탕으로 테스트 케이스 도출 순서
① 상태-이벤트 테이블 구성
② 전이 트리 구성
③ 반응(유효) 테스트 케이스 구성
④ 무반응(비유효) 테스트 케이스 구성
⑤ 가드 또는 조건 테스트 케이스 구성
⑥ 테스트 프로시저 구성
상태 전이 테스팅 예제
v 음료 자판기의 상태전이 다이어그램(117쪽)
음료선택
금액투입대기
ev취소/투입금액반환;라이트리셋()
ev음료버튼선택/캔방출();잔액반환();잔량수정()
ev금액투입[투입금액>=가격]
ev취소/투입금액반환()
ev금액투입[투입금액<가격]
ev금액투입
[투입금액<가격]
ev금액투입
[투입금액>=가격]
상태 전이 테스팅 예제
v 상태-이벤트 테이블 구성
상태
이벤트
대기 금액투입 음료선택
ev금액투입
[투입금액>=가격]
음료선택 음료선택
ev금액투입
[투입금액<가격]
금액투입 금액투입
ev음료버튼선택 대기
ev취소 대기 대기
상태 전이 테스팅 예제
v 전이트리
대기
음료선택
금액투입
대기
대기
음료선택
금액투입
대기
음료선택
대기
대기
음료선택
금액투입
음료선택
금액투입
path 1
path 2
path 3
path 4
path 5
path 6
path 7
path 8
path 9
상태 전이 테스팅 예제
v 반응(유효) 테스트 케이스 구성
Start
State
Event Action Next
State
Event Action Final
State
V001
(path1)
대기
ev금액투입
[투입금
액>=가격]
* 1000원
-
음료
선택
ev음료버튼
선택
캔방출;
잔액반화
(700원);
잔량업데
이터(9)
대기
V002
(path2)
대기
ev금액투입
[투입금
액>=가격]
* 1000원
-
음료
선택 ev취소
투입금액
반환(1000
원);
라이트리
셋
대기
유즈케이스 테스팅이란?
v 유즈케이스나 비즈니스 시나리오를 기반으로 테스트를 명세
화 할 수 있음
v 시스템이 유즈케이스로 모델링되어 있을 때 유즈케이스에서
테스트 케이스를 도출하는 테스트 설계기법
– 아직 완전하게 정립된 상태가 아님
v 유즈케이스 명세서
– 시스템이 제공하는 기본 단위 기능을 정의
– 유즈케이스와 액터(사용자, 시스템)간의 상호작용
유즈케이스 테스팅
v 유즈케이스는 시스템을 실제 사용하는 방식에 기반하여 프
로세스 흐름을 기술함
v 따라서 유즈케이스에 기반하여 생성된 테스트 케이스는 시
스템이 실제 사용되는 프로세스 흐름에서 결함을 발견하는
데 유용함
v 인수테스팅에 유용함
유즈케이스 테스팅의 종류
v 컴포넌트(단위) 레벨 유즈케이스 테스팅
– 액터와 유즈케이스 간의 상호작용 테스팅
– 개별적인 유즈케이스에 대한 단위테스팅
v 시스템 레벨 유즈케이스 테스팅
– 유즈케이스 간의 상호작용과 활동을 테스팅
유즈케이스 테스팅 예제
v 123쪽 예제
v 기본흐름과 대체흐름 각각을 시나리오로 보고 테스트 케이
스로 매핑
기본흐름
S0-정상출금
A1) 비유효 카드
S1-카드 판독 불능
A3) 2회 부정확한 암호
S3-부정확한 암호 A4) 잔액 부족
S4-잔액부족
A2) 부정확한 암호
S2-부정확한 암호(재시도 허용)
유즈케이스 테스팅 예제
v 출금 유즈케이스의 테스트 케이스
테스트
케이스
시나리오 카드번호 암호 출금금액 계좌잔액 예상결과
TC0 S0 Valid Valid 금액<=잔액 정상출금
TC1 S1 Invalid N/A N/A N/A
카드
판독불능
메시지
유즈케이스 예제
v 요구사항: 채용담당자는 채용공고를 게시할 때 신용카드로 결제할 수 있다.
주 행위자(액터) 채용 담당자
전제조건 채용정보가 입력되었지만 아직 볼 수는 없다.
성공보장 채용공고가 등록되었음. 채용담당자의 신용카드로 결제되었음.
주 성공
시나리오
(기본흐름)
1. 채용담당자는 신용카드번호, 날짜, 인증정보등을 입력한다.
2. 시스템은 신용카드를 검증한다.
3. 시스템은 신용카드 결제를 수행한다.
4. 등록한 채용공고를 구직자들이 조회할 수 있다.
5. 채용담당자는 고유한 등록 확인 번호를 부여받는다.
확장(대체흐름) 2a. 시스템이 처리할 수 없는 카드 종류다.
2a1. 시스템은 사용자에게 다른 카드를 사용하라고 통지한다.
2b. 카드의 ID번호가 잘못되었다.
2b1. 시스템은 사용자에게 다른 카드를 사용하라고 통지한다.
2c. 카드의 유효기간이 지났다.
2c1. 시스템은 사용자에게 다른 카드를 사용하라고 통지한다.
3a. 카드의 신용한도가 부족하다.
3a1. 시스템은 결제할 수 있는 만큼 결제한다.
3a2. 사용자는 이에 대해 통지받고, 잔액결제를 위해 두번째 카드를
정보를 입력하라는 요청을 받는다. 단계2에서 계속된다.
유즈케이스 예제
v 주 성공 시나리오(기본 흐름)
– 1, 2, 3, 4, 5
v 대체 흐름
– 1, 2, 2a, 2a1, 2, 3, 4, 5
– 1, 2, 2b, 2b1, 2, 3, 4, 5
– 1, 2, 2c, 2c1, 2, 3, 4, 5
– 1, 2, 3, 3a, 3a1,3a2, 2, 3, 4, 5
구조기반 기법[1]
v 구조기반기법
– 소프트웨어 코드나 설계 등 구조를 보여주는 정보로부터
테스트 케이스 도출
– 소프트웨어의 커버리지 정도가 기존 테스트 케이스로부
터 측정되고 커버리지를 늘리기 위해 추가적 테스트 케
이스를 체계적으로 도출
구조기반기법[2]
v 컴포넌트 레벨
– 구문(문장), 결정 또는 분기문 등 코드 그 자체
– 화이트 박스 테스트
v 통합 레벨
– 한 모듈이 다른 모듈을 호출하는 관계를 도식화한 콜 트
리
v 시스템 레벨
– 메뉴 구조, 비즈니스 프로세스, 웹 페이지 구조 등
커버리지
v 커버리지
– 시스템 또는 소프트웨어의 구조가 테스트 스위트(test
suite)에 의해 테스트된 정도
– 테스팅의 충분함을 측정
– 커버리지가 100%가 아니면 누락된 아이템을 테스트하기
위해 추가적인 테스트 설계
v 결정포인트
– 조건식 등
커버리지 종류
v 구문 커버리지
v 결정(분기) 커버리지(Decision coverage, DC)
v 조건 커버리지
v 조건/결정 커버리지
v 변경조건/결정 커버리지(Modified Condition/DC)
v 다중 조건 커버리지
제어흐름도
v 노드와 간선(edge)으로 제어(실행) 흐름을 표현한 것
v 경로(path): 노드의 실행 순서를 표시
– 완전경로: 시작노드와 종료노드를 포함한 전체 경로
– 부분경로: 완전경로에 포함되는 경로
v 결정포인트: 분기노드 -> 소스코드 상의 if, while, for,
switch문
D
and, or 연산
v AND연산(A&&B=C)
A B C
0 0 0
0 1 0
1 0 0
1 1 1
v OR연산(A||B=C)
A B C
0 0 0
0 1 1
1 0 1
1 1 1
결정포인트(조건식)
if ( a > b and a < c )
전체 조건식
개별 조건식개별 조건식
요약
if (A and B) {
1을 실행;
}
else {
2를 실행;
}
Dpoint(결정포인트) A B
0 1 0
1 1 1
결정
커버리지
Dpoint(결정포인트) A B
0 1 0
0 0 1
조건
커버리지
Dpoint(결정포인트) A B
0 0 0
1 1 1
조건/결정
커버리지
결정포인트
구문 테스팅과 커버리지
v 구문 커버리지
– 테스트 스위트에 의해 실행된 구문이 몇 %인지 측정
– 코드의 모든 구문을 실행할 수 있는 입력값이나 이벤트
등의 테스트 데이터로 실시
– 100% 구문 커버리지는 프로그램내의 모든 구문을 적어
도 한번씩 접근하여 테스트하는 것을 의미
v 적은 개수의 테스트 케이스로 쉽게 달성
v 코드상에 존재하는 가능한 경우를 모두 검증하지 못함
v 커버리지 중 보장성이 가장 낮음
결정 테스팅과 커버리지
v 테스트 케이스 스위트에 의해 실행된 조건문(if문의 참,거짓)
분기가 전체 가능한 분기의 몇 %인지 측정
v 결정포인트 내의 전체 조건식이 참, 거짓 양쪽 경우 모두 테
스팅
– 129쪽 표 4.20 참조
– 테스트 케이스는 최소 2개
v 결정포인트에 해당하는 제어 흐름을 다루므로 제어흐름 테
스팅의 한 형태
– 제어흐름테스트는 공식적인 화이트박스 테스트 설계기법
v 분기테스팅, 분기커버리지라고도 함
제어흐름테스트
: 133쪽
D2
D3
2
5 6
7
D1
1
3 4
8
1.모든 흐름을 최소
한번씩 지나가도록
2.(각 결정포인트 간)
흐름의 조합을 모두
지나가도록
3.반복적인 흐름을 포
함하는 모든 경우를
고려
D2
D3
2
5 6
7
D1
1
3 4
8
1.모든 흐름을 최소
한번씩 지나가도록
2.(각 결정포인트 간)
흐름의 조합을 모두
지나가도록
3.반복적인 흐름을 포
함하는 모든 경우를
고려
제어흐름테스트
: 133쪽
TC1: (1,2,8,3,5,7)
제어흐름테스트
: 133쪽
D2
D3
2
5 6
7
D1
1
3 4
8
1.모든 흐름을 최소
한번씩 지나가도록
2.(각 결정포인트 간)
흐름의 조합을 모두
지나가도록
3.반복적인 흐름을 포
함하는 모든 경우를
고려
TC2: (1,3,6,8,4,7)
제어흐름테스트
: 133쪽
D2
D3
2
5 6
7
D1
1
3 4
8
1.모든 흐름을 최소
한번씩 지나가도록
2.(각 결정포인트 간)
흐름의 조합을 모두
지나가도록
3.반복적인 흐름을 포
함하는 모든 경우를
고려
TC2: (1,3,6,8,4,7)
제어흐름테스트
: 133쪽
D2
D3
2
5 6
7
D1
1
3 4
8
1.모든 흐름을 최소
한번씩 지나가도록
2.(각 결정포인트 간)
흐름의 조합을 모두
지나가도록
3.반복적인 흐름을 포
함하는 모든 경우를
고려
134쪽, 135쪽 참조
v 다음 코드에서 100% 구문 커버리지를 달성하려면 얼마나
많은 테스트를 해야 하나?
1 if (x==3) then
2 display_messageX;
3 if (y==2) then
4 display_messageY;
5 else
6 display_messageZ;
7 else
8 display_messageZ;
X==3
msgZ
y==2
msgZ
msgX
msgY

More Related Content

What's hot

소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅
영기 김
 
Manual testing interview questions and answers
Manual testing interview questions and answersManual testing interview questions and answers
Manual testing interview questions and answers
karanmca
 
Exploratory testing
Exploratory testingExploratory testing
Exploratory testing
Huib Schoots
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
paulo peres
 

What's hot (20)

Istqb 4-테스트설계기법-2015-3-배포
Istqb 4-테스트설계기법-2015-3-배포Istqb 4-테스트설계기법-2015-3-배포
Istqb 4-테스트설계기법-2015-3-배포
 
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅
 
(애자일) 테스트 계획서 샘플
(애자일) 테스트 계획서 샘플(애자일) 테스트 계획서 샘플
(애자일) 테스트 계획서 샘플
 
크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례
 
Manual testing interview questions and answers
Manual testing interview questions and answersManual testing interview questions and answers
Manual testing interview questions and answers
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
 
[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스
 
Exploratory testing
Exploratory testingExploratory testing
Exploratory testing
 
자동화된 Test Case의 효과
자동화된 Test Case의 효과자동화된 Test Case의 효과
자동화된 Test Case의 효과
 
Istqb chapter 5
Istqb chapter 5Istqb chapter 5
Istqb chapter 5
 
Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 

Viewers also liked

Fault tolerance 1장
Fault tolerance 1장Fault tolerance 1장
Fault tolerance 1장
eva
 
임베디드시스템개발 Part2
임베디드시스템개발 Part2임베디드시스템개발 Part2
임베디드시스템개발 Part2
Minsuk Lee
 
임베디드시스템개발 Part1
임베디드시스템개발 Part1임베디드시스템개발 Part1
임베디드시스템개발 Part1
Minsuk Lee
 
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
KTH
 
애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유
agilekorea
 
C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나
NAVER D2
 

Viewers also liked (18)

두블리 수익설명 [DubLi]
두블리 수익설명 [DubLi]두블리 수익설명 [DubLi]
두블리 수익설명 [DubLi]
 
Fault tolerance 1장
Fault tolerance 1장Fault tolerance 1장
Fault tolerance 1장
 
스마트 모바일 앱 개발 방법론(2)
스마트 모바일 앱 개발 방법론(2)스마트 모바일 앱 개발 방법론(2)
스마트 모바일 앱 개발 방법론(2)
 
스마트 모바일 앱 개발 방법론(1)
스마트 모바일 앱 개발 방법론(1)스마트 모바일 앱 개발 방법론(1)
스마트 모바일 앱 개발 방법론(1)
 
임베디드시스템개발 Part2
임베디드시스템개발 Part2임베디드시스템개발 Part2
임베디드시스템개발 Part2
 
임베디드시스템개발 Part1
임베디드시스템개발 Part1임베디드시스템개발 Part1
임베디드시스템개발 Part1
 
ISTQB - Foundation Level Syllabus 2011
ISTQB - Foundation Level Syllabus 2011ISTQB - Foundation Level Syllabus 2011
ISTQB - Foundation Level Syllabus 2011
 
게임 개발자들을 위한 마케팅 상식 (BDC 발표)
게임 개발자들을 위한 마케팅 상식 (BDC 발표)게임 개발자들을 위한 마케팅 상식 (BDC 발표)
게임 개발자들을 위한 마케팅 상식 (BDC 발표)
 
[2012 11 12]애자일 회고
[2012 11 12]애자일 회고[2012 11 12]애자일 회고
[2012 11 12]애자일 회고
 
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
 
'사업계획'에 유용한 비즈니스 프레임워크의 이해
'사업계획'에 유용한 비즈니스 프레임워크의 이해'사업계획'에 유용한 비즈니스 프레임워크의 이해
'사업계획'에 유용한 비즈니스 프레임워크의 이해
 
ISTQB REX BLACK book
ISTQB REX BLACK bookISTQB REX BLACK book
ISTQB REX BLACK book
 
모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용
 
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
 
모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료
 
애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유
 
C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나
 
Agile - SCRUM을 통한 개발관리
Agile - SCRUM을 통한 개발관리Agile - SCRUM을 통한 개발관리
Agile - SCRUM을 통한 개발관리
 

Similar to Istqb 4-테스트설계기법-2015-2-1-배포

Similar to Istqb 4-테스트설계기법-2015-2-1-배포 (6)

주가_변화시점탐지(Change point Detection)
주가_변화시점탐지(Change point Detection)주가_변화시점탐지(Change point Detection)
주가_변화시점탐지(Change point Detection)
 
프로젝트비용원과관리.pptx
프로젝트비용원과관리.pptx프로젝트비용원과관리.pptx
프로젝트비용원과관리.pptx
 
SI 화면테스트(단위) 가이드
SI 화면테스트(단위) 가이드SI 화면테스트(단위) 가이드
SI 화면테스트(단위) 가이드
 
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
 
우리 제품의 검증 프로세스 소개 자료
우리 제품의 검증 프로세스 소개 자료 우리 제품의 검증 프로세스 소개 자료
우리 제품의 검증 프로세스 소개 자료
 
테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례테스터가 말하는 테스트코드 작성 팁과 사례
테스터가 말하는 테스트코드 작성 팁과 사례
 

Recently uploaded

캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
cho9759
 
INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
ahghwo99
 

Recently uploaded (7)

2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
 
인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
 
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
 
INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
 
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
 
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
 
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
 

Istqb 4-테스트설계기법-2015-2-1-배포

  • 1. 2015, 봄학기 게임콘텐츠스쿨 이종원 교수 ISTQB 강의노트 5 테스트 설계 기법[2]
  • 2. 학습내용 v 명세기반 설계기법 – 상태전이테스팅, 유즈케이스테스팅 v 구조기반 설계기법 – 커버리지 – 구문테스팅, 결정테스팅
  • 3. 상태 전이 테스팅이란? v 시스템은 현재 상황과 이전의 이력을 반영하는 상태 및 그 변화에 따라 다르게 동작할 수 있음 – 시스템을 상태 사이의 관계로 파악 v 상태 전이 다이어그램으로 표현할 수 있으며, 이 다이어그램 을 바탕으로 테스트 케이스를 도출함 – 상태간의 전이 – 상태를 변화시키는 이벤트와 입력값 – 상태의 변화로 유발되는 동작 등 파악 v 시스템의 상태기반 행위가 명세된 내용과 일치함을 검증
  • 4. 상태 전이 다이어그램 예제 v 음료 자판기의 상태전이 다이어그램 음료선택 금액투입대기 ev취소/투입금액반환;라이트리셋() ev음료버튼선택/캔방출();잔액반환();잔량수정() ev금액투입[투입금액>=가격] ev취소/투입금액반환() ev금액투입[투입금액<가격] ev금액투입 [투입금액<가격] ev금액투입 [투입금액>=가격]
  • 5. 상태 전이 테스팅이란? v 상태 전이 다이어그램을 기반으로 상태-이벤트 테이블 작성 v 임베디드 시스템, 자동화가 필요한 부분에서 주로 사용 v 상태 전이 테스팅을 통한 테스트 설계 방식 – 전형적인 상태의 순서를 커버하는 방식 – 모든 상태를 커버하는 방식 – 모든 상태 전이를 실행하는 방식 – 특정한 상태 전이 순서를 실행하는 방식 – 불가능한 상태 전이를 테스트하는 방식
  • 6. 상태 다이어그램 표기법 v 다이어그램 표기법 : 106쪽 표 4.7 참조 요소 설명 표기법 상태 하나 또는 그 이상의 이벤트를 기 다리는 시스템 모드 원, 원 안에 상태명 표시 전이 이벤트에 의해 한가지 상태에서 다른 상태로의 변경 화살표 이벤트 상태의 전이를 유발하는 요인 화살표에 이름과 값으로 표시 (예: ev취소) 가드 이벤트가 발생하는 조건 이벤트 오른편의 [ ]안에 조건이 나 값으로 표시 액션 상태의 전이에 따라서 유발되는 동작 화살표에 이름과 값으로 표시 (예: ev취소/투입금액반환)
  • 7. 상태전이테스팅으로 발견할 수 있는 결함 v 명세가 잘못된 경우(모델상의 결함) – 초기 상태 누락 – 전이 또는 액션의 누락 – 가드를 전이 대신 표기함 – 가드의 중복 또는 불일치 v 구현이 잘못된 경우 – 상태: 여분/누락/훼손 – 액션이 틀리거나 누락됨 – 스니크 패스, 트랩도어 인스펙션 리뷰 정적분석툴 동적 테스팅
  • 8. 테스트 케이스 도출 순서 v 상태 전이 다이어그램을 바탕으로 테스트 케이스 도출 순서 ① 상태-이벤트 테이블 구성 ② 전이 트리 구성 ③ 반응(유효) 테스트 케이스 구성 ④ 무반응(비유효) 테스트 케이스 구성 ⑤ 가드 또는 조건 테스트 케이스 구성 ⑥ 테스트 프로시저 구성
  • 9. 상태 전이 테스팅 예제 v 음료 자판기의 상태전이 다이어그램(117쪽) 음료선택 금액투입대기 ev취소/투입금액반환;라이트리셋() ev음료버튼선택/캔방출();잔액반환();잔량수정() ev금액투입[투입금액>=가격] ev취소/투입금액반환() ev금액투입[투입금액<가격] ev금액투입 [투입금액<가격] ev금액투입 [투입금액>=가격]
  • 10. 상태 전이 테스팅 예제 v 상태-이벤트 테이블 구성 상태 이벤트 대기 금액투입 음료선택 ev금액투입 [투입금액>=가격] 음료선택 음료선택 ev금액투입 [투입금액<가격] 금액투입 금액투입 ev음료버튼선택 대기 ev취소 대기 대기
  • 11. 상태 전이 테스팅 예제 v 전이트리 대기 음료선택 금액투입 대기 대기 음료선택 금액투입 대기 음료선택 대기 대기 음료선택 금액투입 음료선택 금액투입 path 1 path 2 path 3 path 4 path 5 path 6 path 7 path 8 path 9
  • 12. 상태 전이 테스팅 예제 v 반응(유효) 테스트 케이스 구성 Start State Event Action Next State Event Action Final State V001 (path1) 대기 ev금액투입 [투입금 액>=가격] * 1000원 - 음료 선택 ev음료버튼 선택 캔방출; 잔액반화 (700원); 잔량업데 이터(9) 대기 V002 (path2) 대기 ev금액투입 [투입금 액>=가격] * 1000원 - 음료 선택 ev취소 투입금액 반환(1000 원); 라이트리 셋 대기
  • 13. 유즈케이스 테스팅이란? v 유즈케이스나 비즈니스 시나리오를 기반으로 테스트를 명세 화 할 수 있음 v 시스템이 유즈케이스로 모델링되어 있을 때 유즈케이스에서 테스트 케이스를 도출하는 테스트 설계기법 – 아직 완전하게 정립된 상태가 아님 v 유즈케이스 명세서 – 시스템이 제공하는 기본 단위 기능을 정의 – 유즈케이스와 액터(사용자, 시스템)간의 상호작용
  • 14. 유즈케이스 테스팅 v 유즈케이스는 시스템을 실제 사용하는 방식에 기반하여 프 로세스 흐름을 기술함 v 따라서 유즈케이스에 기반하여 생성된 테스트 케이스는 시 스템이 실제 사용되는 프로세스 흐름에서 결함을 발견하는 데 유용함 v 인수테스팅에 유용함
  • 15. 유즈케이스 테스팅의 종류 v 컴포넌트(단위) 레벨 유즈케이스 테스팅 – 액터와 유즈케이스 간의 상호작용 테스팅 – 개별적인 유즈케이스에 대한 단위테스팅 v 시스템 레벨 유즈케이스 테스팅 – 유즈케이스 간의 상호작용과 활동을 테스팅
  • 16. 유즈케이스 테스팅 예제 v 123쪽 예제 v 기본흐름과 대체흐름 각각을 시나리오로 보고 테스트 케이 스로 매핑 기본흐름 S0-정상출금 A1) 비유효 카드 S1-카드 판독 불능 A3) 2회 부정확한 암호 S3-부정확한 암호 A4) 잔액 부족 S4-잔액부족 A2) 부정확한 암호 S2-부정확한 암호(재시도 허용)
  • 17. 유즈케이스 테스팅 예제 v 출금 유즈케이스의 테스트 케이스 테스트 케이스 시나리오 카드번호 암호 출금금액 계좌잔액 예상결과 TC0 S0 Valid Valid 금액<=잔액 정상출금 TC1 S1 Invalid N/A N/A N/A 카드 판독불능 메시지
  • 18. 유즈케이스 예제 v 요구사항: 채용담당자는 채용공고를 게시할 때 신용카드로 결제할 수 있다. 주 행위자(액터) 채용 담당자 전제조건 채용정보가 입력되었지만 아직 볼 수는 없다. 성공보장 채용공고가 등록되었음. 채용담당자의 신용카드로 결제되었음. 주 성공 시나리오 (기본흐름) 1. 채용담당자는 신용카드번호, 날짜, 인증정보등을 입력한다. 2. 시스템은 신용카드를 검증한다. 3. 시스템은 신용카드 결제를 수행한다. 4. 등록한 채용공고를 구직자들이 조회할 수 있다. 5. 채용담당자는 고유한 등록 확인 번호를 부여받는다. 확장(대체흐름) 2a. 시스템이 처리할 수 없는 카드 종류다. 2a1. 시스템은 사용자에게 다른 카드를 사용하라고 통지한다. 2b. 카드의 ID번호가 잘못되었다. 2b1. 시스템은 사용자에게 다른 카드를 사용하라고 통지한다. 2c. 카드의 유효기간이 지났다. 2c1. 시스템은 사용자에게 다른 카드를 사용하라고 통지한다. 3a. 카드의 신용한도가 부족하다. 3a1. 시스템은 결제할 수 있는 만큼 결제한다. 3a2. 사용자는 이에 대해 통지받고, 잔액결제를 위해 두번째 카드를 정보를 입력하라는 요청을 받는다. 단계2에서 계속된다.
  • 19. 유즈케이스 예제 v 주 성공 시나리오(기본 흐름) – 1, 2, 3, 4, 5 v 대체 흐름 – 1, 2, 2a, 2a1, 2, 3, 4, 5 – 1, 2, 2b, 2b1, 2, 3, 4, 5 – 1, 2, 2c, 2c1, 2, 3, 4, 5 – 1, 2, 3, 3a, 3a1,3a2, 2, 3, 4, 5
  • 20. 구조기반 기법[1] v 구조기반기법 – 소프트웨어 코드나 설계 등 구조를 보여주는 정보로부터 테스트 케이스 도출 – 소프트웨어의 커버리지 정도가 기존 테스트 케이스로부 터 측정되고 커버리지를 늘리기 위해 추가적 테스트 케 이스를 체계적으로 도출
  • 21. 구조기반기법[2] v 컴포넌트 레벨 – 구문(문장), 결정 또는 분기문 등 코드 그 자체 – 화이트 박스 테스트 v 통합 레벨 – 한 모듈이 다른 모듈을 호출하는 관계를 도식화한 콜 트 리 v 시스템 레벨 – 메뉴 구조, 비즈니스 프로세스, 웹 페이지 구조 등
  • 22. 커버리지 v 커버리지 – 시스템 또는 소프트웨어의 구조가 테스트 스위트(test suite)에 의해 테스트된 정도 – 테스팅의 충분함을 측정 – 커버리지가 100%가 아니면 누락된 아이템을 테스트하기 위해 추가적인 테스트 설계 v 결정포인트 – 조건식 등
  • 23. 커버리지 종류 v 구문 커버리지 v 결정(분기) 커버리지(Decision coverage, DC) v 조건 커버리지 v 조건/결정 커버리지 v 변경조건/결정 커버리지(Modified Condition/DC) v 다중 조건 커버리지
  • 24. 제어흐름도 v 노드와 간선(edge)으로 제어(실행) 흐름을 표현한 것 v 경로(path): 노드의 실행 순서를 표시 – 완전경로: 시작노드와 종료노드를 포함한 전체 경로 – 부분경로: 완전경로에 포함되는 경로 v 결정포인트: 분기노드 -> 소스코드 상의 if, while, for, switch문 D
  • 25. and, or 연산 v AND연산(A&&B=C) A B C 0 0 0 0 1 0 1 0 0 1 1 1 v OR연산(A||B=C) A B C 0 0 0 0 1 1 1 0 1 1 1 1
  • 26. 결정포인트(조건식) if ( a > b and a < c ) 전체 조건식 개별 조건식개별 조건식
  • 27. 요약 if (A and B) { 1을 실행; } else { 2를 실행; } Dpoint(결정포인트) A B 0 1 0 1 1 1 결정 커버리지 Dpoint(결정포인트) A B 0 1 0 0 0 1 조건 커버리지 Dpoint(결정포인트) A B 0 0 0 1 1 1 조건/결정 커버리지 결정포인트
  • 28. 구문 테스팅과 커버리지 v 구문 커버리지 – 테스트 스위트에 의해 실행된 구문이 몇 %인지 측정 – 코드의 모든 구문을 실행할 수 있는 입력값이나 이벤트 등의 테스트 데이터로 실시 – 100% 구문 커버리지는 프로그램내의 모든 구문을 적어 도 한번씩 접근하여 테스트하는 것을 의미 v 적은 개수의 테스트 케이스로 쉽게 달성 v 코드상에 존재하는 가능한 경우를 모두 검증하지 못함 v 커버리지 중 보장성이 가장 낮음
  • 29. 결정 테스팅과 커버리지 v 테스트 케이스 스위트에 의해 실행된 조건문(if문의 참,거짓) 분기가 전체 가능한 분기의 몇 %인지 측정 v 결정포인트 내의 전체 조건식이 참, 거짓 양쪽 경우 모두 테 스팅 – 129쪽 표 4.20 참조 – 테스트 케이스는 최소 2개 v 결정포인트에 해당하는 제어 흐름을 다루므로 제어흐름 테 스팅의 한 형태 – 제어흐름테스트는 공식적인 화이트박스 테스트 설계기법 v 분기테스팅, 분기커버리지라고도 함
  • 30. 제어흐름테스트 : 133쪽 D2 D3 2 5 6 7 D1 1 3 4 8 1.모든 흐름을 최소 한번씩 지나가도록 2.(각 결정포인트 간) 흐름의 조합을 모두 지나가도록 3.반복적인 흐름을 포 함하는 모든 경우를 고려
  • 31. D2 D3 2 5 6 7 D1 1 3 4 8 1.모든 흐름을 최소 한번씩 지나가도록 2.(각 결정포인트 간) 흐름의 조합을 모두 지나가도록 3.반복적인 흐름을 포 함하는 모든 경우를 고려 제어흐름테스트 : 133쪽 TC1: (1,2,8,3,5,7)
  • 32. 제어흐름테스트 : 133쪽 D2 D3 2 5 6 7 D1 1 3 4 8 1.모든 흐름을 최소 한번씩 지나가도록 2.(각 결정포인트 간) 흐름의 조합을 모두 지나가도록 3.반복적인 흐름을 포 함하는 모든 경우를 고려 TC2: (1,3,6,8,4,7)
  • 33. 제어흐름테스트 : 133쪽 D2 D3 2 5 6 7 D1 1 3 4 8 1.모든 흐름을 최소 한번씩 지나가도록 2.(각 결정포인트 간) 흐름의 조합을 모두 지나가도록 3.반복적인 흐름을 포 함하는 모든 경우를 고려 TC2: (1,3,6,8,4,7)
  • 34. 제어흐름테스트 : 133쪽 D2 D3 2 5 6 7 D1 1 3 4 8 1.모든 흐름을 최소 한번씩 지나가도록 2.(각 결정포인트 간) 흐름의 조합을 모두 지나가도록 3.반복적인 흐름을 포 함하는 모든 경우를 고려 134쪽, 135쪽 참조
  • 35. v 다음 코드에서 100% 구문 커버리지를 달성하려면 얼마나 많은 테스트를 해야 하나? 1 if (x==3) then 2 display_messageX; 3 if (y==2) then 4 display_messageY; 5 else 6 display_messageZ; 7 else 8 display_messageZ;