소프트웨어테스트dslab.konkuk.ac.kr/class/2016/16se_edu/현대모비스...테스트분야개념들...

69
소프트웨어 테스트 소프트웨어 테스트 - 개념, 기법 및 활용 - 건국대학교 유준범 http://dslab.konkuk.ac.kr http://dslab.konkuk.ac.kr 1 2012.02.24 현대모비스 세미나

Upload: others

Post on 09-Mar-2020

13 views

Category:

Documents


0 download

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 블랙박스 테스트 사례

4

삼성전자 핸드폰 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

개발 총괄

11

소프트웨어 테스트

12

소프트웨어 테스트웨어 테

입력을 주고 소프트웨어를 직접 실행함으로써, 원하는 출력이 생성되는지 확인하는 일련의 작업지 확인하는 일련의 작업

소프트웨어입력 출력

원하는출력=

?

실행 환경

정리

테스트 결과

수정

전달

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

17

블랙박스 테스트

18

Needles

Haystack

L t’ fi d dl t !!!

19

Let’s find needles out !!!

균등 분할균등 분할= Random Testing

Uniform Testing= Uniform Testing

20Haystack

실제로 바늘은?실제로 바늘은?

Needles

NeedlesNeedleseed es

Needles

21

바늘을 신속하게 찾기 위해서는?바늘을 신속하게 찾기 위해서는?

정보 (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

균등 분할균등 분할동일한 Cost로 수행되는 테스트 범위

26테스트 비용(회수): 36회테스트 효율: 低

체계적 분할동일한 Cost로 수행되는 테스트 범위 체계적 분할

Needles

NeedlesNeedles

Needles

27테스트 비용(회수): 27회테스트 효율: 高

기능 테스트기능 테스트

기능 테스트 블랙박스 테스트 명세 기반 테스트≈ ≈

체계적 분할 기반 테스트→

명세(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

기능명세서 분석기능명세서 분석

전통적인전통적인블랙박스 테스트

모델 기반 테스트

테스트 데이터 생성

31

어려워요!!!기능명세서 분석

수동

어려워요!!!기능명세서 분석

수동

전통적인전통적인블랙박스 테스트

모델 기반 테스트수동 자동

테스트 데이터 생성

수동

32

현실은?기능명세서 분석

수동

현실은?기능명세서 분석

전통적인전통적인블랙박스 테스트

모델 기반 테스트

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

38http://www.pairwise.org

39

블랙박스 테스트 수행 내용 (건국대학교 수업 中)

40

건국대학교 2010 소프트웨어검증 수업건국대학 웨어검증 수업

팀프로젝트 내용: 1. CTIP 환경 구축 (오픈소스만 이용)

2. 기능 테스트 수행

3. 테스트 대상: NuSRS Quick Checker (Java)

+

Quick Checker(문법검사 도구)

41NuSRS 2.0 (정형명세 도구)

N SRS & Q i k Ch kNuSRS & Quick Checker

42FOD (Function Overview Diagram)

FSM / TTS (Timed Transition System)FSM / TTS (Timed Transition System)

SDT (Structured Decision Table)

43

수행 내용수행 내용

44

기능명세서 분석기능명세서 분석

립 테 성‘독립 테스트 속성’ 찾기

‘대표값’ 찾기

테스트 케이스 생성

테스트 데이터 생성

테스트 수행 및결과보고서 작성

45

Category-Partitioning Test!

468개 기능 요구사항

1 기능명세서 분석1. 기능명세서 분석

8개 기능 요구사항

20개 구체화된 기능 요구사항

47

2 ‘독립 테스트 속성’ 찾기2. ‘독립 테스트 속성’ 찾기

48

49

3 ‘대표값’ 찾기3. ‘대표값’ 찾기

50

51

4 테스트 케이스 생성i i i 4. 테스트 케이스 생성Category-Partitioning Test

SDT

Pairwise Test

32 → 1352

32 → 13

TTSTTS

96 → 33총 73 테스트 케이스 생성

53

5 테스트 데이터 생성5. 테스트 데이터 생성

54

NuSRS SDT 작성 → XML 형식으로 저장

55

6 테스트 실행JUnit: 테스트 환경 테스트 Driver 6. 테스트 실행Scaffolding + 테스트 대상

1. 테스트 데이터 입력1. 테스트 데이터 입력

2. 테스트 실행

563. 테스트 결과 확인(테스트 오라클)

7 결과보고서 작성7. 결과보고서 작성

57

58

20개의 구체화된 요구사항

59

CTIPCTIP(Continuous Testing & Integration Platform)

사용된 무료 도구들

구축된 CTIP 환경

60건국대학교 4학년 수업: ‘소프트웨어 검증’http://dslab.konkuk.ac.kr/Class/Old_Classes.htm

61건국대학교 4학년 수업: ‘소프트웨어 검증’http://dslab.konkuk.ac.kr/Class/Old_Classes.htm

F M I f tiFor More Information

http://dslab.konkuk.ac.krp //

62

63

소프트웨어 테스트소프트웨어 테스트

64

블랙박스 테스트블랙박스 테스트

65

블랙박스 테스트를 잘 하기 위해서는?블랙박스 테스트를 잘 하기 위해서는?

1. 기능 테스트의 기본에 충실하자.

Systematic Partitioning-based Test

오류가 많을 만한 곳을 중점적으로 공략

2. 각종 명세서를 꿰자.

눈감고도 처음부터 끝까지 읊을 수 있을 정도로눈감고도 처음부터 끝까지 읊을 수 있을 정도로

3 전문가를 양성하자3. 전문가를 양성하자.

도구는 도구일 뿐

손으로 할 수 없으면 아무리 비싼 도구로도 못한다

66

67

화이트박스 테스트

68

테스트 자동화 환경

69