소프트웨어테스트dslab.konkuk.ac.kr/class/2016/16se_edu/현대모비스...테스트분야개념들...
TRANSCRIPT
소프트웨어 테스트소프트웨어 테스트- 개념, 기법 및 활용 -
건국대학교유준범
http://dslab.konkuk.ac.krhttp://dslab.konkuk.ac.kr
12012.02.24 현대모비스 세미나
테스트 분야 개념들테 분야 개념들
소프트웨어 테스트
테스트 계획서
블랙박스 테스트 구조 테스트테스트 실행
소프트웨어 테스트Boundary Value 테스트 3점 점합
기능 테스트
테스트 실행모델 기반 테스트
Pairwise 테스트테스트 결과 보고서
화이트박스 테스트기능 테스트
테스트 오라클테스트 케이스 자동 생성 CTIP (Continuous Test & Integration Platform)
테스트 케이스
테스트 데이터
테스트 오라클
Coverage Criteria
Category-Partitioning 테스트
Coverage Criteria
테스트 드라이버 테스트 Scaffolding테스트 데이터 자동 생성
테스트 자동화 도구
2
테스트 드라이버 테 gCoverage 측정
하드웨어 - 소프트웨어 Co-테스트테스트 명세서
목차목차
• 삼성전자 핸드폰 SW 블랙박스 테스트 사례
• 소프트웨어 테스트
• 블랙박스 테스트– 블랙박스 테스트 수행 내용 (건국대학교 수업 中)
• 화이트박스 테스트
• 테스트 자동화 환경
3
삼성전자 핸드폰 SW 블랙박스 테스트삼성전자 핸 폰 블랙박 테
삼성전자 (구)정보통신총괄 직군(職群)삼성전자 (구)정보통신총괄 직군(職群)- G (General)
- E (Engineering)
- M (Marketing)
- S (Software)
- T (Test)
5
시험, 검수 및 품질관리
테스트 대상 사용자 설명서
블랙박스 테스트블랙박스 테스트
전화 통화 中,
예약된 Alarm 동작
+
문자메시지(SMS) 도착
다른 전화가 걸려와 ‘통화 중 대기’ 발생
정상동작?
테스터
6
정상동작?
테스트 대상 사용자 설명서
블랙박스 테스트블랙박스 테스트
전화 통화 中,
+
예약된 Alarm 동작
문자메시지(SMS) 도착
다른 전화가 걸려와 ‘통화 중 대기’ 발생
문자메시지 저장함 Full 상태
+
테스터
문자메시지 저장함 Full 상태
7
정상동작?
현장에서 수행되는 블랙박스 테스트 블랙박스 테스트 이론
전화 통화 中,
+
예약된 Alarm 동작
문자메시지(SMS) 도착
Category-Partitioning Test
Pairwise Test자메시지( ) 착
다른 전화가 걸려와 ‘통화 중 대기’ 발생
+
문자메시지 저장함 Full 상태 Boundary Value Test
정상동작?
8
통신사에 납품하기 위해서는?통신사에 납품하기 위해서는?
개발자 (E직군)
인증용 블랙박스 테스트
테스트케이스: 약 3,000개성공률: 약 99.85 %
테스트 주체: 통신사실제 테스트 주체: 개발사
9
SCH-W290
통신사 인증용 블랙박스 테스트통신사 인증용 블랙박스 테스트
기능별 구성
MessengerMessenger- 문자메시지- MMS- 이메일
테스트 주체: 각 개발팀30%
- CB / 긴급방송
Call각 개발팀
Multimedia
Browser Component / Integration Testvs
PC Link
SW Platform (Middleware)
vs.System Test
개발 총괄
10
개발 총괄
소프트웨어 테스트웨어 테
입력을 주고 소프트웨어를 직접 실행함으로써, 원하는 출력이 생성되는지 확인하는 일련의 작업지 확인하는 일련의 작업
소프트웨어입력 출력
원하는출력=
?
실행 환경
정리
테스트 결과
수정
전달
13
개발자
언제까지 반복?언제까지 반복?
정답: 기준을 만족할 때 까지
기준
테스트 성공률 테스트 실행 관점
기준
Coverage Criteria 테스트 입력 생성 관점테스트 품질
14
+ 테스트 품질
블랙박스 화이트박스블랙박스 vs. 화이트박스
블랙박스 테스트
있어야 할 기능이 정확하게 구현되어 있는가?
기능 테스트 (Functional Test)
기능명세서, 요구사항명세서, 사용자설명서
모든 기능을 테스트 입력으로 만들어야
내부 구현은 관심 無
화이트박스 테스트
구현 프로그램의 가능한 모든 경우(Execution Path)를 시험해 봤는가?
구조 테스트 (Structural Test)
CFG (Control Flow Graph) , DFG (Data Flow Graph)
특정 Coverage Criteria를 만족하는 테스트 입력을 만들어야
기능의 구현 여부는 관심 無
15
질문!!!질문!!!
1. 시스템시험(System Test)은 어떤 종류의 테스트입니까?
정답: 블랙박스 테스트
2. 단위시험(Unit Test)은 어떤 종류의 테스트입니까?
정답: 두 종류 모두 가능
16
바늘을 신속하게 찾기 위해서는?바늘을 신속하게 찾기 위해서는?
정보 (Information)
Haystack
Needles
누가? 무엇을? 어디로? 어디에서?
개발자 누가? 어떤 기능을? 어떤 방식으로? 어떤 환경/가정에서?
22
정보는 어디에?정보는 어디에?
명세서 (Specification)
프로젝트 계획서 (Project Plan)
요구사항 명세서 (Requirements Specification)
디자인 명세서 (Design Specification)디자인 명세서 (Design Specification)
테스트 계획서 (Test Plan)
각 서각종 모든 문서
23
블랙박스 테스트블랙박 테
명세서에 정의된 기능이 잘 구현되어 있는지 확인하는 테스트
가장 기본이 되는 테스트 (A Base-line Test)가장 기본이 되는 테스트 (A Base line Test)
= 기능 테스트 (Functional Test)
= 명세 기반 테스트 (Specification-based Test)= 명세 기반 테스트 (Specification-based Test)
= 체계적 분할 기반 테스트 (Systematic Partitioning-based Test)
체계적 분할 (Systematic Partitioning)기본 이론 : 체계적 분할 (Systematic Partitioning)기본 이론 :
24
체계적 분할체계적 분할
체계적 분할 (Systematic Partitioning)기본 이론 :
특정 정보를 이용하여, 전체 테스트 입력 범위 중 오류를 잘찾아낼 수 있는 입력구간(region of input space)을 찾아낸다.
∵ 전체 입력 범위를 모두 테스트 할 수 없다∵ 전체 입력 범위를 모두 테스트 할 수 없다.
∵ 오류들은 주로 몰려있다.
25
기능 테스트기능 테스트
기능 테스트 블랙박스 테스트 명세 기반 테스트≈ ≈
체계적 분할 기반 테스트→
명세(Specification)를 사용하여 입력 범위를 분할(partitioning of input space)명세(Specification)를 사용하여 입력 범위를 분할(partitioning of input space)
각 분할된 범위(Category)를 테스트
28
y ntly
e s
기능 테스트 단계
Iden
tify
Inde
pend
eTe
stab
leFe
atur
es 기능 테스트 단계
Generate Test-C
Specifica erate Test-Case
ifications
t-Case
cations Genera
Specifi
Gen
erat
e Te
st C
ases
Inst
antia
teTe
sts
29Source: “Software Testing and Analysis” by Mauro Pezzè and Michal Young, WILEY
기능 명세서기능 명세서
독립 테스트 속성
‘독립 테스트 속성’을 찾는다.Finite State Machine,
Grammar,Algebraic Specification
Brute force testing
독립 테스트 속성
‘모델’을 만든다.‘대표값’을 찾는다
Algebraic Specification,Logic Specification,
CFG / DFG
대표값 모델
테스트케이스 명세서
테스트케이스 명세서를 만든다. Test selection criteriaSemantic Constraint,
Combinational Selection,Exhaustive Enumeration,
Random Selection
테스트케이스 명세서
테스트케이스/데이터
테스트케이스를 생성한다. Manual Mapping,Symbolic Execution,
A-posteriori Satisfaction테스트케이스/데이터
Scaffolding
Instantiate tests
A posteriori Satisfaction
30
Scaffolding
현실은?기능명세서 분석
수동
현실은?기능명세서 분석
전통적인전통적인블랙박스 테스트
모델 기반 테스트
Brute Force Test→ 막 테스트
수동
막 테
테스트 데이터 생성수동
33
수동
기능 테스트를 잘 하기 위해서는?기능 테스트를 잘 하기 위해서는?
1. 기능명세서를 꿰자.
삼성전자 T직군 SW 테스터처럼
2. 기능 테스트의 기본에 충실하자.
Systematic Partitioning-based Test
오류가 많을 만한 곳을 중점적으로 공략
3. 사람 중심으로 운영하자.
손으로 다 할 수 있어야 도구도 잘 쓴다.
34
대표적인 블랙박스 테스트 기법들대표적인 블랙박스 테스트 기법들
Category-Partitioning Test 1. ‘독립 테스트 속성’을 찾는다.2 각 속성별 ‘대 값’을 찾는다2. 각 속성별로 ‘대표값’을 찾는다.3. 테스트케이스를 생성한다.
Pairwise Test 1. Category-Partitioning Test를 수행한다.2. 관련 있는 속성들을 2~4 단위로 묶는다.3 자동화 도구를 활용한다
C t l b d T t
3. 자동화 도구를 활용한다.
Catalog-based Test 1. 오래 동안 유사한 테스트를 수행한다.2. 대표적인 속성을 Catalog로 만든다.3. 위 테스트들을 수행한다.
35
C t P titi i T tCategory-Partitioning Test예제: 모니터 디스플레이 테스트
Step 1. ‘독립 테스트 속성’을 찾는다.
Display Mode Language Fonts Color Screen Sizep y g g
Step 2. ‘대표값’을 찾는다.
Display Mode Language Fonts Color Screen Size
Full-Graphics English Minimal Monochrome Hand-Held
Text-OnlyLimited-
Bandwidth
French
Spanish
StandardDocument-Embedded
Color-Map
16-Bits
Laptop
Full-Size
Korean True-Color
Step 3. 테스트케이스를 생성한다.
36
Step 3. 테스트케이스를 생성한다.
3 x 4 x 3 x 4 x 4 = 432 test cases
P i i T tPairwise Test
Language Color Display Mode Fonts Screen Size
Test Cases: 432 → 17
g g p y
English Monochrome Full-graphics Minimal Hand-held
English Color-map Text-only Standard Full-size
English 16-bit Limited-bandwidth - Full-size
English True-color Text-only Document-Embedded Laptop
French Monochrome Limited-bandwidth Standard Laptop
French Color-map Full-graphics Document-Embedded Full-size
French 16-bit Text-only Minimal -
French True-color - - Hand-held
Spanish Monochrome - Document-Embedded Full-size
Spanish Color-map Limited-bandwidth Minimal Hand-held
Spanish 16-bit Full-graphics Standard Laptop
Spanish True-color Text-only - Hand-held
Korean - - Monochrome Hand-held
Korean Color-map - Minimal Laptop
Korean 16-bit Limited-bandwidth Document-Embedded Hand-held
K T l F ll hi Mi i l F ll i
37
Korean True-color Full-graphics Minimal Full-size
Korean True-color Limited-bandwidth Standard Hand-held
건국대학교 2010 소프트웨어검증 수업건국대학 웨어검증 수업
팀프로젝트 내용: 1. CTIP 환경 구축 (오픈소스만 이용)
2. 기능 테스트 수행
3. 테스트 대상: NuSRS Quick Checker (Java)
+
Quick Checker(문법검사 도구)
41NuSRS 2.0 (정형명세 도구)
FSM / TTS (Timed Transition System)FSM / TTS (Timed Transition System)
SDT (Structured Decision Table)
43
기능명세서 분석기능명세서 분석
립 테 성‘독립 테스트 속성’ 찾기
‘대표값’ 찾기
테스트 케이스 생성
테스트 데이터 생성
테스트 수행 및결과보고서 작성
45
Category-Partitioning Test!
6 테스트 실행JUnit: 테스트 환경 테스트 Driver 6. 테스트 실행Scaffolding + 테스트 대상
1. 테스트 데이터 입력1. 테스트 데이터 입력
2. 테스트 실행
563. 테스트 결과 확인(테스트 오라클)
CTIPCTIP(Continuous Testing & Integration Platform)
사용된 무료 도구들
구축된 CTIP 환경
60건국대학교 4학년 수업: ‘소프트웨어 검증’http://dslab.konkuk.ac.kr/Class/Old_Classes.htm
블랙박스 테스트를 잘 하기 위해서는?블랙박스 테스트를 잘 하기 위해서는?
1. 기능 테스트의 기본에 충실하자.
Systematic Partitioning-based Test
오류가 많을 만한 곳을 중점적으로 공략
2. 각종 명세서를 꿰자.
눈감고도 처음부터 끝까지 읊을 수 있을 정도로눈감고도 처음부터 끝까지 읊을 수 있을 정도로
3 전문가를 양성하자3. 전문가를 양성하자.
도구는 도구일 뿐
손으로 할 수 없으면 아무리 비싼 도구로도 못한다
66