Software Engineering

Similar documents
<4D F736F F F696E74202D205B37C0E55D20B0CBC1F520B9D720C8AEC0CE2E BC8A3C8AF20B8F0B5E55D>

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Software testing

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

Microsoft PowerPoint 테스트.ppt

Microsoft Word - [TP_3][T1]UTP.docx

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - Java7.pptx

중간고사

윈도우즈프로그래밍(1)

Chap 6: Graphs

Microsoft PowerPoint - chap05-제어문.pptx

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Microsoft PowerPoint Predicates and Quantifiers.ppt

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint Template

adfasdfasfdasfasfadf

Chap 6: Graphs

Microsoft PowerPoint - [2009] 02.pptx

Frama-C/JESSIS 사용법 소개

슬라이드 1

<4D F736F F F696E74202D20C7F6B4EBB8F0BAF1BDBA202D20BCBCB9CCB3AA20BCD2C7C1C6AEBFFEBEEE20C5D7BDBAC6AE C0AFC1D

금오공대 컴퓨터공학전공 강의자료

untitled

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

<353120C1B6C7F6C1A42DC3B6B5B5BDC3BDBAC5DB20BCD2C7C1C6AEBFFEBEEE20C5D7BDBAC6AE20C4BFB9F6B8AEC1F620C0DAB5BFC8AD20B5B5B1B82E687770>

Infinity(∞) Strategy

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - 14_Testing(2010).ppt [호환 모드]

Chapter 4. LISTS

슬라이드 1

목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap-06.pptx

PowerPoint 프레젠테이션

untitled

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Introduction to CTIP

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

<B1D4B0DDBCAD202D20C4DAB5E520B1E2B9DD2E687770>

쉽게 풀어쓴 C 프로그래밍

Ver. T3_DWS.UTP-1.0 Unit Testing Plan for Digital Watch System Test Plan Test Design Specification Test Cases Specification Date Team Infor

소개 는 국내 산업계 IC 전문 인재양성과 기술 보급을 위한 IC 표준화 및 시험인증 전문 교육기관입니다. IC 글로벌 경쟁력 제고를 위한 핵심인재 양성을 목적으로 교육세나 및 자격시험 서비스를 제공합니다. 교육 훈련비용 일부를 지원하는 직업능력개발훈련과정을 운영합니다

쉽게 풀어쓴 C 프로그래밍

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

IBM Mobile Quality Assurance 소개

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

Chapter_06

쉽게

PowerPoint Template


슬라이드 1

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

< B0B3C0CEC1A4BAB8BAD0C0EFC1B6C1A4BBE7B7CAC1FD2E687770>

쉽게 풀어쓴 C 프로그래밍

BY-FDP-4-70.hwp

PowerPoint 프레젠테이션

C 언어 프로그래밊 과제 풀이

chap 5: Trees

Microsoft PowerPoint - chap06-2pointer.ppt

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

JUNIT 실습및발표

Chap 6: Graphs

PowerPoint 프레젠테이션

슬라이드 1

PowerPoint 프레젠테이션

본 강의에 들어가기 전

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

OCW_C언어 기초

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])


Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PowerPoint 프레젠테이션

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

*세지6문제(306~316)OK

gdb 사용법 Debugging Debug라는말은 bug를없앤다는말이다. Bug란, 컴퓨터프로그램상의논리적오류를말하며, 이것을찾아해결하는과정이바로, debugging이다. 초기컴퓨터들은실제벌레가컴퓨터에들어가서오작동을일으키는경우가있었다고하며, 여기서 debug 이라는말이

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

03장.스택.key

BMP 파일 처리

문서 템플릿

컴파일러

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

PowerPoint Presentation

<30342DBCF6C3B3B8AEBDC3BCB33228C3D6C1BE292E687770>

C프로-3장c03逞풚

C++-¿Ïº®Çؼ³10Àå

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

PowerPoint 프레젠테이션

Transcription:

1 9. 소프트웨어테스팅

주요내용 품질이란무엇인가? 테스팅이란무엇인가? 블랙박스테스팅기법에는무엇이있는가? 화이트박스테스팅기법에는무엇이있는가? 2

소프트웨어개발과품질 품질의다양한의미 - 프로그램이정상적으로작동하는것 - 프로그램에기대하는막연한완성도 - 명시된요구사항을만족시키는것 - 고객이의도한대로요구사항을올바르게정의하는것 3

4 소프트웨어테스팅 (Software Testing)

테스팅 (Testing) 정의 - 기존조건및필요조건 ( 즉, 결함 / 에러 / 버그 ) 사이의차이점을발견하기위하여 소프트웨어항목을분석하고, 분석된항목의특성을평가하는프로세스 [IEEE-Std-829] - 에러를발견하려는의도를가지고프로그램을실행하는프로세스 [Myers] 5

테스팅과디버깅의차이점 테스팅 (Testing) 디버깅 (Debugging) 목적알려지지않은에러의발견이미알고있는에러의수정 수행 시스템내부관련자, 테스팅팀등외부의제 3 자 시스템내부관련자 주요 작업 에러발견 (Fault Detection) 에러의정확한위치파악 (Fault Location) 에러의타입식별 (Fault Identification) 에러수정 (Fault Correction) 6

결함을지칭하는다양한용어 에러 (Error), 오류 결함의원인사람 (S/W 개발자, 분석가등 ) 에의하여생성된실수가주를이룸 결함 (Defect), 결점 (Fault), 버그 (Bug) 실패또는문제의원인제품에포함된결함 실패 (Failure), 문제 (Problem) 제품의결함 (Defect) 이있는부분이실행될때발생되는현상 7

테스트케이스 (Test Case) 의미 - 테스트의목적에맞게테스트조건, 입력값, 예상출력값, 실제테스트결과를 기록하는것 [IEEE-Std-610] 목적 - 테스터가테스팅을체계적으로할수있도록함 - 개발자가테스팅결과를통해디버깅을하는기준이됨 8

테스트케이스의예 테스트케이스 ID: ST-0001 목적로그인시아이디와패스워드의대소문자를구분하여처리한다. 테스트 조건 아이디 / 비번 : abcd / abcd 가 DB 에이미입력되어있음. 테스터한동석테스트일자 2006.10.01~2006.10.01 단계입력값예상출력값실행결과조치사항 조치후시험결과 1 아이디 : ABCD 패스워드 : abcd 아이디없음경고정상로그인디버깅필요 아이디없음 경고 2 3 아이디 : abcd 패스워드 : ABCD 아이디 : abcd 패스워드 : abcd 패스워드틀림경고패스워드틀림경고 - - 정상로그인정상로그인 - - 9

테스팅종류 테스트정보를얻는대상에따른분류 - 블랙박스테스팅 (Black-Box Testing) 요구사항명세서 (SRS) 나설계서로부터테스트케이스추출 - 화이트박스테스팅 (White-Box Testing) 내부구조 ( 소스코드 ) 를기반으로테스트케이스추출 10

[ 예 ] 세양수중큰수출력프로그램 (1/3) 사용자요구사항 - 서로다른세양수 A, B, C 를입력하여그중가장큰수를출력하라. 시작 시작 1 1 A, B, C 값입력 A, B, C 값입력 2 2 A > B A > B N N Y 3 4 Y 3 4 MAX = A MAX = B Black box 5 MAX = A 5 MAX = B MAX > C N 7 MAX > C N 7 Y 6 MAX = C Y 6 MAX = C MAX 출력 MAX 출력 8 8 종료 종료 11 (a) 블랙박스테스팅 (b) 화이트박스테스팅

[ 예 ] 세양수중큰수출력프로그램 (2/3) 블랙박스테스트케이스 ID 테스트케이스 1 A가가장큰정수일경우 2 B가가장큰정수일경우 3 C가가장큰정수일경우 4 A를음수로입력할경우 5 A와 B를같은정수로입력할경우 6 B를소수로입력할경우 7 12

[ 예 ] 세양수중큰수출력프로그램 (3/3) 화이트박스테스트케이스 시작 ID 테스트케이스 1 A, B, C 값입력 1 (1->2->3->5->6->8) 2 (1->2->3->5->7->8) 3 (1->2->4->5->6->8) 2 A > B N Y 3 4 4 (1->2->4->5->7->8) MAX = A MAX = B 5 MAX > C N 7 Y 6 MAX = C MAX 출력 8 종료 13 (b) 화이트박스테스팅

블랙박스테스팅 (Black-Box Testing) 개요 - 요구사항명세서나설계서를참조하면서수행하는테스팅 소스코드자체의로직 (Logic) 에는관심이없고입, 출력값에만관심이있다 - 방법 신택스테스팅 (Syntax Testing) 동등분할 (Equivalence Partitioning) 경계값분석 (Boundary Value Analysis) 의사결정테이블 (Decision Table) 14

신택스테스팅 (Syntax Testing) 개요 - 블랙박스테스팅기법중가장단순한방법 - 입력데이터가미리정의된데이터유형에적합한지를검증하는방법 - 입력값을적합 (Valid) 과부적합 (Invalid) 으로분류한뒤, 예상되는결과를검증하는기법 활용 - 회원가입폼과같은화면에서사용자의이름이나아이디의데이터유형이적합한지를 확인하는경우 15

[ 예 ] 신택스테스팅 입력변수적합조건부적합조건 사용자이름 6 자리이상 8 자리이하알파벳숫자, 특별기호등 No. 적합 / 부적합입력유형입력값예상결과 1 적합 7자리알파벳 kildong 정상처리 2 부적합 길이가짧은경우 kil 에러메시지 - 길이부적합 3 부적합 알파벳이아닌경우 길동386 에러메시지 - 입력유형부적합 16 2008 Software Engineering

동등분할 (Equivalence Partitioning) 개요 - 입력값이범위가정해져있을경우, 각범위의대표값을이용하여테스팅 장점 - 간단하고이해하기쉬움 - 이용자가작성가능 - 무작위방법보다체계적인방법 17 2008 Software Engineering

[ 예 ] 동등분할 (1/2) 사용자요구사항 - 100 점이만점이고 0 ~ 100 점을받을수있는시험이있다. 시험점수를입 력하면, 점수에따라다음과같이 A 부터 F 까지의성적을출력하라. 성적 90점이상 ~ 100점이하 A 80점이상 ~ 90점미만 B 70점이상 ~ 80점미만 C 0점이상 ~ 70점미만 F 18 2008 Software Engineering

[ 예 ] 동등분할 (2/2) 동등분할테스트케이스 0 점수 < 70 70 점수 < 80 80 점수 < 90 90 점수 100 테스트케이스 1 2 3 4 점수범위 0 점이상 ~ 70 점이하 70 점이상 ~ 80 점미만 80 점이상 ~ 90 점미만 90 점이상 ~ 100 점이하 입력값 ( 점수 ) 50 점 75 점 85 점 95 점 예상결과값 F C B A 실제결과값 F C B A 19 2008 Software Engineering

경계값분석 (Boundary Value Analysis) 개요 - 입력값의주요오류대상인경계값을입력값으로테스트케이스를작성하여테스팅 [ 예 ] - 동등분할의예제를경계값분석방법을이용하여테스트케이스를추출한경우 테스트케이스 1 2 3 4 5 입력값 ( 점수 ) -1점 0점 99점 100점 101점 점수범위 점수범위초과 정상 정상 정상 점수범위초과 예상결과값 경고창 F A A 경고창 실제결과값 경고창 F A A 경고창 20 2008 Software Engineering

의사결정테이블 (Decision Table) 개요 - 입 / 출력값이 True, False 로결정될수있는경우모든경우의수를확인해볼수있는 방법 활용 - 입력, 출력값이 Yes, No 로결정될수있는경우 - 적은수의조건을가진입력값에유용함 21

[ 예 ] 의사결정테이블 사용자요구사항 - 아이디와비밀번호를입력하여둘모두유효하면정상로그인이된다. - 그러나아이디가유효하지않을경우잘못된아이디라는경고창을보여준다. - 아이디는유효하나비밀번호가유효하지않으면잘못된비밀번호라는경고창을보여준다. 의사결정테이블테스트케이스 테스트조건 1 2 3 4 입력값 예상 출력값 유효한아이디 T T F F 비밀번호 T F T F 로그인성공 T F F F 잘못된아이디경고창 F F T T 잘못된비밀번호경고창 F T F F 22

화이트박스테스팅 (White-Box Testing) 개요 - 소스코드를직접참조하면서수행하는테스팅기술 - 방법 문장커버리지 (Statement Coverage) 분기커버리지 (Branch Coverage) 조건커버리지 (Condition Coverage) 다중조건커버리지 (Multiple Condition Coverage) 23

문장커버리지 (Statement Coverage) 개요 - 프로그램을구성하는문장들이최소한한번은실행될수있는입력값을테스트케이 스로선정함 보너스 = 0 [ 예 ] - 테스팅예제순서도를문장커버리지를 ( 가 ) a If( 작년 == A AND condition > 1) N 적용하여추출한테스트케이스 테스트케이스 ID 입력값 경로 출력값 1 (A, 2, 2) (a-b-c-e-f-h) 300 ( 나 ) b Y 보너스 = 100 c If(condition == 2 OR 자녀수 > 3) N d............ e Y 보너스 = 보너스 + 200 g f 보너스출력 h < 테스팅예제순서도 > 24

분기커버리지 (Branch Coverage) 개요 - 프로그램에있는분기를최소한한번은실행하게 보너스 = 0 a 하는테스팅하는방법 ( 가 ) If( 작년 == A AND condition > 1) N [ 예 ] - 테스팅예제순서도를분기커버리지를적용하여 b Y 보너스 = 100 d 추출한테스트케이스 c ID 테스트케이스 입력값경로출력값 ( 나 ) If(condition == 2 OR 자녀수 > 3) N 1 (A, 2, 2) (a-b-c-e-f-h) 300 2 (B, 1, 2) (a-d-c-g-h) 0............ e Y 보너스 = 보너스 + 200 f 보너스출력 g h < 테스팅예제순서도 > 25

조건커버리지 (Condition Coverage) 개요 - &&, 등의조건을가진분기문이전체조건식의결과와관계없이 && 나 전후의각 개별조건식이참한번, 거짓한번을갖도록테스트케이스를만드는방법 26

[ 예 ] 조건커버리지 (1/2) 사용자요구사항 - 학생의평균과과목수를받아서, 장학금대상자를선정하라. 장학금대상자는평균이 90 점이상이고, 과목수가 5 과목이상인학생으로한다. 시작 a 개별조건식 평균, 과목수입력 b If( ( 평균 >=90) && ( 과목수 >=5) ) If( ( 평균 >=90) && ( 과목수 >=5) ) N d 전체조건식 c Y 장학금대상자선정 e 27 종료

[ 예 ] 조건커버리지 (2/2) 조건커버리지테스트케이스 ID 테스트케이스입력값경로출력값 1 (95, 4) (a-b-d-e) 대상자아님 2 (72, 7) (a-b-d-e) 대상자아님............ 입력값은 ( 평균, 과목수 ) 이며, 출력값은대상자선정여부이다. 조건커버리지테스트케이스진리표 평균 과목수 전체조건식 95 이면참 4 이면거짓 거짓 72 이면거짓 7 이면참 거짓......... 28

다중조건커버리지 (Multiple Condition Coverage) 개요 - 조건커버리지가각개별조건식의조건을검사하는것이라면, 다중조건커버리지는 전체조건식의조건을검사하는테스트케이스를만드는방법 29

[ 예 ] 다중조건커버리지 다중조건커버리지테스트케이스 - 조건커버리지의예제를다중조건커버리지를적용하여추출한테스트케이스 ID 테스트케이스입력값경로출력값 1 (95, 4) (a-b-d-e) 대상자아님 2 (72, 7) (a-b-d-e) 대상자아님 3 (80, 4) (a-b-d-e) 대상자아님 4 (92, 5) (a-b-c-e) 대상자 다중조건커버리지진리표 입력값은 ( 평균, 과목수 ) 이며, 출력값은대상자선정여부이다. - 조건커버리지의예제를다중조건커버리지를적용하여추출한테스트케이스진리표 평균 과목수 전체조건식 95 이면참 4 이면거짓 거짓 72 이면거짓 7 이면참 거짓 80 이면거짓 4 이면거짓 거짓 92 이면참 5 이면참 참 30

기본경로테스팅 (Basic Path Testing) 개요 - Tom McCabe에의해개발된기법 - 프로그램의제어구조 (Control Structure) 를플로우그래프 (Flow Graph) 로표현하고, 순환복잡도 (Cyclomatic Complexity) 를통해독립적인경로의수를찾아테스트케이스를추출하는기법 테스트케이스추출단계 1. 테스팅할대상의플로우그래프를그린다. 2. 순환복잡도를계산한다. 3. 독립적인경로들을정의한다. 4. 정의된각경로의테스트케이스를작성한다. 31

1. 테스팅할대상의플로우그래프를그린다. 개요 - 입력에서출력에이르기까지의프로그램내부구조를플로우그래프 (Flow Graph) 로 표현 플로우그래프 프로그램내부구조의제어흐름 (Control Flow) 을그래프로표현하여구조를파악하고시험경로 (Path) 를추출하기위해표현 플로우그래프표기법 Sequence If, else While 32

2. 순환복잡도를계산한다. 개요 - 순환복잡도 (Cyclomatic Complexity) 를통해전체프로그램내부구조를시험할수있 는독립적인경로의수를계산 순환복잡도프로그램의논리적인복잡도를정량적으로측정하기위해제공되는매트릭 (Matric) 순환복잡도공식 CC = R 의수 CC = E - N + 2 CC = P + 1 CC(Cyclomatic Complexity): 순환복잡도 R(Region): 노드와가장자리노드로둘러싸인영역과그래프밖영역의수 E(Edge): 화살표의수 N(Node): 노드의수 P(Predicate): 분기노드의수 33

3. 독립적인경로들을정의한다. 개요 - 순환복잡도를통해계산된횟수를기반으로독립적인경로들을정의 34

4. 정의된각경로의테스트케이스를작성한다. 개요 - 정의된각경로를시험할테스트케이스를작성 35

[ 예 ] 기본경로테스팅 (1/5) 요구사항 - 국어, 영어, 수학점수를입력받아, 평균점수가 70 점이상이면 PASS' 를, 미만이 면 FAIL' 을출력한다 int main(int argc, char *argv[]) { int[] testpoint = input(); while(testpoint.count() =! 3) { int inputpoint; printf(" 점수를입력해주세요 "); scnaf("%d", &inputpoint); testpoint.add() = inputpoint; } int avpoint = (testpoint[0] + testpoint[1] + testpoint[2]) / 3; 36 } if(avpoint >= 70) { printf( PASS"); } else { printf( FAIL"); } printf(" 출력이종료되었습니다 ")

[ 예 ] 기본경로테스팅 (2/5) 1. 테스팅할대상의플로우그래프를그린다. - 3 과목평균점수의 PASS 여부예제의순서도와플로우그래프 시작 1 1 2 Edge 2 R1 Node 3 4 5 Predicate Node 3 4 5 R2 Region 6 7 R2 6 7 8 8 종료 (A) 순서도 (Flow chart) (B) 플로우그래프 (Flow graph) 37

[ 예 ] 기본경로테스팅 (3/5) 2. 순환복잡도를계산한다. - 순환복잡도공식에따라, V(G) = 3 V(G) = 9-8 + 2 = 3 V(G) = 2 + 1 = 3 - 계산결과순환복잡도는 3 이므로, 최소한 3 번이상의독립적인경로를시험하면 전체내부구조를포함할수있음 38

[ 예 ] 기본경로테스팅 (4/5) 3. 독립적인경로들을정의한다. - 순환복잡도를통해계산된횟수를기반으로독립적인경로들을정의하면, 경로 1: 1-2 - 3-2 - 4-5 - 6-8 경로 2: 1-2 - 3-2 - 4-5 - 7-8 경로 3: 1-2 - 4-5 - 6-8 39

[ 예 ] 기본경로테스팅 (5/5) 4. 정의된각경로의테스트케이스를작성한다. - 정의된각경로를시험할테스트케이스를작성하면, 3 과목평균점수의 PASS 여부예제의테스트케이스 ID 테스트케이스 경로입력값예상출력값 1 경로 1 선입력 {70, 75}, 후입력 {80} PASS 2 경로 2 선입력 {60, 65}, 후입력 {50} FAIL 3 경로 3 선입력 {70, 90, 80}, 후입력 { 없음 } PASS 입력값은 ( 국어, 영어, 수학 ) 으로선, 후의입력된조건이있으며, 출력값은 PASS 여부이다. 40

화이트박스테스팅의특징 테스트의목적과조건에맞게적절한방법선택 각테스팅방법에따라복잡도, 소요되는시간 ( 비용 ) 이다름 41

42 테스팅단계

소프트웨어개발단계와테스팅 (V 모델 ) 소프트웨어개발단계마다생산되는산출물을이용하여테스팅수행 요구사항정의 인수테스팅 요구사항분석 시스템테스팅 설계 통합테스팅 구현 단위테스팅 43

테스팅단계 단위테스팅 (Unit Testing) - 개요 구현단계에서각모듈이완성되었을경우개별적인모듈을테스팅 테스팅의주체는해당모듈의개발자 화이트박스 / 블랙박스테스팅모두가능 - 테스트할모듈을단독적으로실행할수있는환경필요 스텁 (Stub) 테스팅대상모듈에서호출하는모듈 테스트드라이버 (Test Driver) 테스팅대상모듈을호출하는환경 44

테스팅단계 통합테스팅 (Integrating Testing) - 개요 모듈을통합한단계에서수행되는테스팅 모듈간의상호작용을검사하는테스팅 - 모듈통합방법에따른테스팅기법종류 빅뱅 (Big Bang) 기법 모듈을한꺼번에통합하여테스팅을하는방법 오류가발생하였을경우어느부분에서오류가났는지찾기가어려움 하향식 (Top-Down) 기법 가장상위모듈부터하위모듈로점진적으로통합하는방법 상위모듈테스팅시, 하위모듈에대한스텁이필요 상향식 (Bottom-Up) 기법 하위모듈부터테스팅하고상위모듈로점진적으로통합하는방법 하위모듈테스팅시, 상위모듈에대한테스트드라이버가필요 45

테스팅단계 시스템테스팅 (System Testing) - 개요 모듈이모두통합된후, 사용자의요구사항이만족되었는지검사하는테스팅 고객에게시스템을전달하기전, 시스템을개발한조직이주체가되는마지막테스팅 - 테스팅대상 요구사항명세서를기초로하여사용자의기능요구사항 보안, 성능, 신뢰성등의비기능요구사항 46

테스팅단계 인수테스팅 (Acceptance Testing) - 개요 시스템이사용자에게인수되기전, 사용자에의해실시되는테스팅 실제사용자가운영하는환경에서실시 인수테스팅을통과해야만시스템이정상적으로사용자에게인수되고프로젝트는종료됨 47

연습문제 1. 모듈안의작동을자세히관찰할수있으며, 프로그램원시코드의논리적 인구조를커버하도록테스트케이스를설계하는프로그램테스트방법은 무엇인가? 2. 블랙박스테스팅은무엇인가? 3. 소프트웨어의테스팅중화이트박스테스팅의과정은무엇이있는가? 4. 테스팅단계의순서를나열하라. 5. 디버깅 (Debugging) 이란무엇인가? 48