Deep_Lee

 

๐Ÿ“š ๋„์„œ ์š”์•ฝ

<๊ฐœ๋ฐœ์ž๋„ ์•Œ์•„์•ผํ•  ์†Œํ”„ํŠธ์›จ์–ด ํ…Œ์ŠคํŒ… ์‹ค๋ฌด ์ œ3ํŒ>

๋ณธ ํฌ์ŠคํŒ…์€ ๊ฐœ์ธ์ ์œผ๋กœ ๋‚จ๊ธฐ๊ณ  ์‹ถ์€ ๋ถ€๋ถ„๋งŒ์„

์š”์•ฝํ•˜์—ฌ ์ž‘์„ฑํ•จ์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

4. ํ…Œ์ŠคํŠธ ์„ค๊ณ„ ๊ธฐ๋ฒ•

4. ํ…Œ์ŠคํŠธ ์„ค๊ณ„ ๊ธฐ๋ฒ•

TC๋ฅผ ๋„์ถœํ•˜๊ณ  ์ˆ˜ํ–‰ํ•˜์—ฌ ํ…Œ์ŠคํŠธ ๋Œ€์ƒ์ด ์–ด๋А ์ˆ˜์ค€๊นŒ์ง€ ํ…Œ์ŠคํŒ… ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ํ…Œ์ŠคํŠธ ์„ค๊ณ„ ๊ธฐ๋ฒ•์œผ๋กœ ์–ด๋–ป๊ฒŒ TC๋ฅผ ๋„์ถœํ•˜๊ณ  ํ…Œ์ŠคํŠธ์— ๋ณด์žฅ์„ฑ์„ ํ™•๋ณดํ•ด ์ฃผ๋Š”์ง€ ๋ณด์ž.

 

4.1 ํ…Œ์ŠคํŠธ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„ ํ”„๋กœ์„ธ์Šค( Test design & implementation process)

ํ…Œ์ŠคํŠธ ์กฐ์ง ๊ตฌ์„ฑ, ํ…Œ์ŠคํŒ…๊ณผ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์˜ ์„ฑ์ˆ™๋„, ์‹œ๊ฐ„์  ์ œ์•ฝ, ์ฐธ์—ฌ ์ธ์› ๋“ฑ ํ…Œ์ŠคํŒ… ์ •ํ™ฉ(context)์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค. 

 

ํ…Œ์ŠคํŠธ ์กฐ๊ฑด์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ๋ฒ ์ด์‹œ์Šค๋ฅผ ๋ถ„์„ํ•œ๋‹ค.

ํŠธ๋žœ์žญ์…˜, ํ’ˆ์งˆ ํŠน์„ฑ ๋˜๋Š” ๊ตฌ์กฐ์  ์š”์†Œ ๋“ฑ์ด ์žˆ๋‹ค.

 

ํ…Œ์ŠคํŠธ ์กฐ๊ฑด๊ณผ ๋ช…์„ธ ๋ฐ ์š”๊ตฌ์‚ฌํ•ญ ์‚ฌ์ด์— ์ถ”์ ์„ฑ(tracebility)๋ฅผ ์œ ์ง€ํ•จ์œผ๋กœ์จ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋ณ€๊ฒฝ ์‹œ ์˜ํ–ฅ๋„ ๋ถ„์„๊ณผ ์š”๊ตฌ์‚ฌํ•ญ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

TC ๊ตฌ์„ฑ ์š”์†Œ

์‚ฌ์ „ ์กฐ๊ฑด, ์ˆ˜ํ–‰ ์ ˆ์ฐจ, ๊ธฐ๋Œ€ ๊ฒฐ๊ณผ์™€ ์‹คํ–‰ ์‚ฌํ›„์กฐ๊ฑด ์™ธ์—๋„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ID, TC ๋ช…, ์ถ”์ ์„ฑ, ์ค‘์š”๋„, ๊ฒฐ๊ณผ ๋“ฑ ๋‚ด์šฉ์— ๋”ฐ๋ผ ํฌํ•จ๋œ๋‹ค.

ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰ ์ ˆ์ฐจ : 7๋‹จ๊ณ„ ์ด๋‚ด ๊ถŒ๊ณ 

๊ฒฐ๊ณผ : NOT TESTED, BLOCKED (์‚ฌ์ „ ์กฐ๊ฑด์ด ์ถฉ์กฑํ•˜์ง€ ์•Š์•„ ํ…Œ์ŠคํŠธ๊ฐ€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Œ)

 

TC ๋ชฉ์  

์ตœ์†Œํ•œ์˜ TC๋กœ ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ๊ฒฐํ•จ์„ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ฒƒ

 

๋Œ€์ƒ์„ ๋น ์ง์—†์ด ํ…Œ์ŠคํŠธํ•˜์—ฌ ์›ํ•˜๋Š” ์ˆ˜์ค€์˜ ํ…Œ์ŠคํŠธ ๋ณด์žฅ์„ฑ(coverage) ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋„๋ก tc ์„ค๊ณ„ํ•ด์•ผ ํ•จ

 

4.2 ํ…Œ์ŠคํŠธ ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ข…๋ฅ˜

๋ธ”๋ž™ ๋ฐ•์Šค ๊ธฐ๋ฒ•(๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•๊ณผ ๊ฒฝํ—˜ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•์„ ํฌํ•จ)

๋‚ด๋ถ€ ์ฝ”๋“œ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ  ํ…Œ์ŠคํŠธ ๋ฒ ์ด์‹œ์Šค, ๊ฐœ๋ฐœ์ž์™€ ํ…Œ์Šคํ„ฐ, ์‚ฌ์šฉ์ž๋“ค์˜ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ tc ๋„์ถœ

 

ํ™”์ดํŠธ ๋ฐ•์Šค ๊ธฐ๋ฒ• (๊ตฌ์กฐ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•) 

์ปดํฌ๋„ŒํŠธ(๋‹จ์œ„) ๋˜๋Š” sw์˜ ๊ตฌ์กฐ(์ฝ”๋“œ)๋ฅผ ์ค‘์‹ฌ์œผ๋กœ tc ๋„์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•

 

๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ• ํŠน์ง•

๊ณต์‹์ ์ด๊ฑฐ๋‚˜ ๋น„๊ณต์‹์ ์ธ ๋ชจ๋ธ์„ ์‚ฌ์šฉ

 

๊ตฌ์กฐ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•์˜ ํŠน์ง•

์ˆ˜ํ–‰๋œ tc ๋ฐ”ํƒ•์œผ๋กœ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์ธก์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ปค๋ฒ„๋ฆฌ์ง€ ๋†’์ด๊ธฐ ์œ„ํ•ด tc๋ฅผ ์‹œ์Šคํ…œ์ ์œผ๋กœ ๋„์ถœํ•ด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ฒฝํ—˜ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ• ํŠน์ง•

์ธ๋ ฅ์˜ ์ง€์‹์ด๋‚˜ ๊ฒฝํ—˜์œผ๋กœ tc ๋„์ถœ

sw์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฐํ•จ์ด๋‚˜ ๊ฒฐํ•จ ๋ถ„ํฌ ๋“ฑ์˜ ์ง€์‹

 

4.3 ๊ธฐ๋ณธ ์„ค๊ณ„ ๊ธฐ๋ฒ•(fundamental test design techniques)

๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•

๋™๋“ฑ ๋ถ„ํ• , ๊ฒฝ๊ณ„๊ฐ’ ๋ถ„์„, ๊ฒฐ์ • ํ…Œ์ด๋ธ” ํ…Œ์ŠคํŒ…, ์ƒํƒœ ์ „์ด ํ…Œ์ŠคํŒ…, ์œ ์ฆˆ์ผ€์ด์Šค ํ…Œ์ŠคํŒ…

 

์ฃผ์–ด์ง„ ๋ช…์„ธ(๊ฐœ๋ฐœ ์„ค๊ณ„ ๋ชจ๋ธ ํ˜•ํƒœ)๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ tc๋ฅผ ๋„์ถœํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ, ํ•ด๋‹น tc๋ฅผ ์‹คํ–‰ํ•ด ์ค‘๋Œ€ํ•œ ๊ฒฐํ•จ ์—†์Œ์„ ๋ณด์žฅํ•จ

 

๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ

์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ, ์œ ์ฆˆ์ผ€์ด์Šค ๋“ฑ์˜ ๋ชจ๋ธ๋กœ ํ‘œํ˜„๋˜์–ด ์žˆ์ง€ ์•Š์„ ๊ฒฝ์šฐ, ๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ…Œ์ŠคํŠธ ์ „๋ฌธ๊ฐ€๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„์„œ์™€ ์„ค๊ณ„์„œ ๋จผ์ € ์ž‘์„ฑํ•œ ํ›„ tc๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

 

์กฐ๊ธฐ ํ…Œ์ŠคํŠธ ์„ค๊ณ„

๋™์ž‘ํ•˜๋Š” sw๊ฐ€ ์—†์–ด๋„ ๋ช…์„ธ๋งŒ ์žˆ๋‹ค๋ฉด ๋ช…์„ธ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ•์œผ๋กœ tc๋ฅผ ๋„์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

 

4.3.1.1 ๋™๋“ฑ ๋ถ„ํ• (Equivalence partitioning)

๋™๋“ฑ ๋ถ„ํ•  ์˜์—ญ์—์„œ ์ตœ์†Œ ํ•˜๋‚˜ ๊ฐ’์„ ์„ ํƒํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๋“ฑ๊ฐ€ ์ง‘ํ•ฉ์—์„œ ๋Œ€ํ‘ฏ๊ฐ’๋งŒ ์„ ์ • : ์•ฝํ•œ ๋™๋“ฑ ๋ถ„ํ•  ํ…Œ์ŠคํŒ… weak equivalence testing

๊ฐ ๋“ฑ๊ฐ€ ์ง‘ํ•ฉ(equivalence class)์—์„œ ํ•˜๋‚˜์˜ ๋Œ€ํ‘ฏ๊ฐ’์„ ์„ ํƒํ•˜์—ฌ tc๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

 

๊ฐ ์„ธ๋ถ„ํ™”๋œ ๋“ฑ๊ฐ€ ์ง‘ํ•ฉ ๊ฐ„์˜ ์กฐํ•ฉ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ•ํ•œ ๋™๋“ฑ ๋ถ„ํ•  ํ…Œ์ŠคํŒ…(strong equivalence partitioning testing)

๊ฐ ๋“ฑ๊ฐ€ ์ง‘ํ•ฉ์˜ ๋ชจ๋“  ์กฐํ•ฉ์„ ๊ณ ๋ คํ•œ ํ…Œ์ŠคํŒ…

 

4.3.1.2 ๊ฒฝ๊ณ„๊ฐ’ ๋ถ„์„(boundary value analysis)

 

์•„.. ๋‚ ๋ผ๊ฐ์š” ใ…  4.7๊นŒ์ง€ ํ–ˆ๋Š”๋ฐ

 

์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋„์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฐํ•จ

๋ชจ๋ธ์ƒ์˜ ๊ฒฐํ•จ

์ดˆ๊ธฐ์ƒํƒœ ๋ˆ„๋ฝ, ์ „์ด ๋˜๋Š” ์•ก์„œ ใ„ด๋ˆ„๋ฝ, ๊ฐ€๋“œ๋ฅผ ์ „์ด ๋Œ€์‹  ์ƒํƒœ์— ํ‘œ๊ธฐํ•จ, ๊ฐ€๋“œ์˜ ์ค‘๋ณต ๋˜๋Š” ๋ถˆ์ผ์น˜

 

๊ตฌํ˜„์ƒ์˜ ๊ฒฐํ•จ(defects in implementation)

์—ฌ๋ถ„/๋ˆ„๋ฝ/ํ›ผ์† ์ƒํƒœ(extra, missing, corrupt state)

์•ก์…˜์ด ํ‹€๋ฆฌ๊ฑฐ๋‚˜ ๋ˆ„๋ฝ๋จ

์Šค๋‹ˆํฌ ํŒจ์Šค(sneak paths), ํŠธ๋žฉ ๋„์–ด(trap doors, back doors)

 

tc ์„ค๊ณ„ ์ˆœ์„œ

์ƒํƒœ-์ด๋ฒคํŠธ ํ…Œ์ด๋ธ” ๊ตฌ์„ฑ

์ „์ด ํŠธ๋ฆฌ ๊ตฌ์„ฑ

๋ฐ˜์‘ legal, ๋˜๋Š” ์œ ํšจ valid tc ๊ตฌ์„ฑ

๋ฌด๋ฐ˜์‘ illegal ๋˜๋Š” ๋น„์œ ํšจ invalid tc ๊ตฌ์„ฑ

๊ฐ€๋“œ guard ๋˜๋Š” ์กฐ๊ฑด tc ๊ตฌ์„ฑ

ํ…Œ์ŠคํŠธ ํ”„๋กœ์‹œ์ € ๊ตฌ์„ฑ

 

 

 

^ : ๊ฐ€๋“œ๊ฐ€ ์กด์žฌํ•˜๋Š” ์ƒํƒœ, ๊ฐ€๋“œ์— ์žˆ๋Š” ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ „์ด ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค. 

 

2) ์ „์ด ํŠธ๋ฆฌ ๊ตฌ์„ฑ

๊ฐ ์ƒํƒœ์—์„œ ์ „์ด ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ํ•œ ๋ฒˆ์”ฉ ์ „์ด๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ชจ๋‘ ํ…Œ์ŠคํŠธํ•˜๋ฉด 0-์Šค์œ„์น˜ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋‹ฌ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

๋‘ ๋ฒˆ์”ฉ ์—ฐ์†์ ์œผ๋กœ ์ „์ด๋  ๊ฒฝ์šฐ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ฉด 1-์Šค์œ„์น˜ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋‹ฌ์„ฑ

=> ์Šค์œ„์น˜ ์ปค๋น„๋ฆฌ์ง€์˜ ์ˆ˜๊ฐ€ ๋†’์•„์งˆ ์ˆ˜๋ก ์ปค๋ฒ„ํ•˜๋Š” ๊นŠ์ด ๋ ˆ๋ฒจ์ด ๋†’์•„์ ธ ๋” ๊ฐ•๋„ ๋†’์€ ํ…Œ์ŠคํŠธ ํ•˜๊ฒŒ ๋œ๋‹ค.

์ฆ‰, ๊ฐ ์ƒํƒœ์—์„œ n ๋ฒˆ์งธ ์ „์ด๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ชจ๋‘ ํ…Œ์ŠคํŠธํ•˜๋ฉด ์ƒํƒœ์ „์ด ํ…Œ์ŠคํŒ…์˜ n-1 ์Šค์œ„์น˜ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋‹ฌ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

 

4) ๋ฌด๋ฐ˜์‘ tc ๊ตฌ์„ฑ

๋น„์œ ํšจํ•œ tc ๋„์ถœํ•˜๋˜ ์ค‘ ๋ชจํ˜ธ ๋ถ€๋ถ„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์Œ๋ฃŒ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์—์„œ ๊ธˆ์•ก ์ถ”๊ฐ€ ๋„ฃ์„ ๊ฒฝ์šฐ ์Œ๋ฃŒ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜์ง€๋งŒ ์˜ˆ์ œ ๋ช…์„ธ์—๋Š” ์—†๋‹ค. 

์ด ๊ฒฝ์šฐ ๊ฒฐํ•จ์ผ ๊ฐ€๋Šฅ์„ฑ ๋†’์œผ๋ฏ€๋กœ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋ช…์„ธ๋ฅผ ํ…Œ์ŠคํŒ…ํ•œ๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋ฉฐ, ๋ช…์„ธ๋ฅผ ํ…Œ์ŠคํŒ…ํ•จ์œผ๋กœ์จ ์‹ค์ œ ์‹œ์Šคํ…œ์ด ๊ฐœ๋ฐœ๋˜๊ธฐ ์ „์— ๊ฒฐํ•จ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

5) ๊ฐ€๋“œ(guard) ๋˜๋Š” ์กฐ๊ฑด tc ๊ตฌ์„ฑ

์ด๋ฒคํŠธ๊ฐ€ ์กฐ๊ฑด์„ ํฌํ•จํ•˜๊ณ  ํ•ด๋‹น ์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ธฐ๋Œ€๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐ˜์˜ํ•œ ๊ฒƒ์ด๋‹ค.

 

๊ฐ€๋“œ์˜ ์กฐ๊ฑด์ด ๋™๋“ฑ ๋ถ„ํ•  ์ง‘ํ•ฉ์„ ๊ฐ–๋Š” ์กฐ๊ฑด๋ฌธ์ด๋ฉด ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ๋™๋“ฑ ๋ถ„ํ•  ๊ธฐ๋ฒ•๊ณผ ๊ฒฝ๊ณ„๊ฐ’ ๋ถ„์„ ๊ธฐ๋ฒ•์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ฐ€๋“œ๊ฐ€ ๋ณต์žกํ•œ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉด ์ปจ๋””์…˜ ์ปค๋ฒ„๋ฆฌ์ง€(MC/DC : modified condition . decision coverage) ํ…Œ์ŠคํŒ…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๋ˆ„๋ฝ๋œ ์กฐ๊ฑด์„ ํ…Œ์ŠคํŒ…ํ•˜๋Š” ๊ฐ€๋“œ tc ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

6) ํ…Œ์ŠคํŠธ ํ”„๋กœ์‹œ์ € ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ๊ตฌ์„ฑ

ํ…Œ์ŠคํŠธ ํ”„๋กœ์‹œ์ €๋Š” ํ…Œ์ŠคํŠธ์˜ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์œผ๋กœ tc๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚˜์—ดํ•œ ๊ฒƒ์ด๋‹ค.

ํ…Œ์ŠคํŠธ ํ”„๋กœ์‹œ์ €๋ฅผ ๊ธฐ์ˆ ํ•œ ๋ฌธ์„œ๋ฅผ ํ…Œ์ŠคํŠธ ํ”„๋กœ์‹œ์ € ๋ช…์„ธ(ํ…Œ์ŠคํŠธ ์ ˆ์ฐจ ๋ช…์„ธ)๋ผ ํ•˜๋ฉฐ ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ, ์ˆ˜๋™ ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ ๋ผ๊ณ  ํ•œ๋‹ค.

 

์ƒํƒœ์ „์ด ํ…Œ์ŠคํŒ…์€ ์ œํ’ˆ ๊ฐœ๋ฐœ ์ „ ๋‹จ๊ณ„์—์„œ ๋ช…์„ธ๋งŒ์„ ๊ฐ€์ง€๊ณ  tc ๋„์ถœํ•œ ๊ฒƒ์ด๋‹ค.

=> ์‹ค์ œ ๊ตฌํ˜„๋œ ์‹œ์Šคํ…œ์„ ๋Œ€์ƒ์œผ๋กœ ํ…Œ์ŠคํŠธ ์‹คํ–‰ํ•˜๋ฉด์„œ tc ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ช…์„ธ๋งŒ์„ ๊ฐ€์ง€๊ณ ๋„ tc๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด์™€ ๊ฐ™์€ ํ™œ๋™ ํ†ตํ•ด ๊ฒฐํ•จ ๋ฐœ๊ฒฌ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๋ฏธ๋ฆฌ ๊ฒฐํ•จ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

4.3.1.5 ์œ ์ฆˆ์ผ€์ด์Šค ํ…Œ์ŠคํŒ…

์•กํ„ฐ(์œ ์ € ํ˜น์€ ์‹œ์Šคํ…œ)์™€ ์•กํ„ฐ ์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ‘œํ˜„ํ•˜๊ณ , ํ•ด๋‹น ์ƒํ˜ธ์ž‘์šฉ์€ ์‹œ์Šคํ…œ ์œ ์ €์—๊ฒŒ ๊ฒฐ๊ณผ๊ฐ’์„ ์ œ๊ณตํ•œ๋‹ค. 

๊ฐ๊ฐ์˜ ์œ ์ฆˆ ์ผ€์ด์Šค๋Š” ์ž„๋ฌด ์™„์ˆ˜ ํ›„ ํ›„์† ์กฐ๊ฑด(post conditions - ๊ด€์ฐฐ ๊ฐ€๋Šฅํ•œ ๊ฒฐ๊ณผ์™€ ์‹œ์Šคํ…œ์˜ ๋งˆ์ง€๋ง‰ ์ƒํƒœ)๋ฅผ ๊ฐ€์ง€๋ฉด์„œ ์ข…๋ฃŒ๋œ๋‹ค.

 

๋Œ€๊ฒŒ ์ฃผ๋ฅ˜ ์‹œ๋‚˜๋ฆฌ์˜ค ๋˜๋Š” ๊ธฐ๋ณธ ํ๋ฆ„(mainstream scenario, basic or main flows) ๊ณผ ๋Œ€์ฒด ํ๋ฆ„(alternative branches or alternative flows)์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋”ฐ. ๊ฐ๊ฐ์˜ ์œ ์ฆˆ ์ผ€์ด์Šค๋Š” ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์œ ์ฆˆ์ผ€์ด์Šค ์ƒ์„ธ(use case description)์„ ๊ฐ–๋Š”๋‹ค.

 

์œ ์ฆˆ์ผ€์ด์Šค ๊ธฐ๋ณธ ํ๋ฆ„๊ณผ ๋Œ€์ฒด ํ๋ฆ„

atm๊ธฐ์—์„œ ์œ ํšจํ•˜์ง€ ์•Š์€ ์นด๋“œ๋ฅผ ๋„ฃ์–ด ์นด๋“œ ํŒ๋…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ๋ถ€์ •ํ™•ํ•œ ์•”ํ˜ธ ์ž…๋ ฅ, ์ž”์•ก ๋ถ€์กฑ ๋“ฑ์˜ ๋Œ€์ฒดํ๋ฆ„์„ ํฌํ•จํ•œ๋‹ค.

 

๋Œ€๋ถ€๋ถ„์˜ ์œ ์ฆˆ์ผ€์ด์Šค๊ฐ€ ์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŒ… ๋ ˆ๋ฒจ์—์„œ ๋˜๋ฉด ์‹œ์Šคํ…œ ๋ ˆ๋ฒจ์˜ ์œ ์ฆˆ์ผ€์ด์Šค ํ…Œ์ŠคํŒ…์—์„œ๋Š” ํ™œ๋™ ์ „์ด ๋˜๋Š” ๊ฒฝ๋กœ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์œ ์ฆˆ์ผ€์ด์Šค ๊ฐ„์˜ ํ™œ๋™๊ณผ ์ „์ฒด ์‹œ์Šคํ…œ ์ฐจ์›์—์„œ์˜ ๊ธฐ๋Šฅ์  ๊ฒฐํ•จ์ด๋‚˜ ์„ฑ๋Šฅ์ƒ์˜ ๊ฒฐํ•จ ๋“ฑ ๋น„๊ธฐ๋Šฅ์  ๊ฒฐํ•จ์„ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ฒƒ์— ์ง‘์ค‘ํ•œ๋‹ค.

 

๊ฒฝ๋กœ ์ปค๋ฒ„๋ฆฌ์ง€

๋ชจ๋“  ๊ฒฝ๋กœ์˜ ์กฐํ•ฉ์„ ๊ณ ๋ คํ•˜์—ฌ tc ๋„์ถœํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ฒฝ๋กœ์— ์žฌ๊ท€์ ์ธ ๋ฐ˜๋ณต์ด ์žˆ๋Š” ๊ฒฝ์šฐ(loop)

๊ฒฝ๋กœ์˜ ์กฐํ•ฉ ๊ธฐํ•˜๊ธ‰์ˆ˜์  ์ฆ๊ฐ€, ๊ฒฝ๋กœ ์ปค๋ฒ„๋ฆฌ์ง€ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

=> ์ ์ ˆํ•œ ๊ธฐ์ค€์„ ๊ฐ€์ง€๊ณ  ๋ฐ˜๋ณต ํšŸ์ˆ˜ ์ค„์—ฌ ์ œํ•œ์  ๊ฒฝ๋กœ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋‹ฌ์„ฑํ•œ๋‹ค.

 

์ž…๋ ฅ๊ฐ’์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋‹ค์–‘ํ•˜๊ณ  ๋งŽ์€ ๊ฒฝ์šฐ

=> ๋™๋“ฑ ๋ถ„ํ• ๊ณผ ๊ฒฝ๊ณ„๊ฐ’ ๋ถ„์„ ๊ธฐ๋ฒ• ๋ฐ ์กฐํ•ฉ ํ…Œ์ŠคํŒ…์„ ํ™œ์šฉํ•˜์—ฌ ์ž…๋ ฅ๊ฐ’์˜ ์ˆ˜๋ฅผ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„๋กœ ์ค„์—ฌ์•ผ ํ•œ๋‹ค.

 

UML ์—์„œ ์œ ์ฆˆ์ผ€์ด์Šค ์ด๋ฒคํŠธ์˜ ํ๋ฆ„์„ ์–ด๋–ป๊ฒŒ ๊ตฌ์กฐํ™”์‹œ์ผœ ์กฐ์งํ•˜๊ณ  ์ž‘์„ฑํ•˜๋Š”์ง€ ์ œ์‹œํ•˜์ง€ ์•Š์•„ ํ…Œ์ŠคํŠธ์˜ ๊ทผ๊ฐ„์ด ๋˜๋Š” ์œ ์ฆˆ์ผ€์ด์Šค๋กœ ใ…ํ˜„๋œ ๊ฒƒ ์ž์ฒด๊ฐ€ ์ •ํ™•ํ•˜์ง€ ์•Š๊ณ  ์ผ๊ด€์„ฑ์ด ๋‚ฎ์„ ์ˆ˜ ์žˆ๋‹ค. 

 

 

4.3.2 ๊ตฌ์กฐ ๊ธฐ๋ฐ˜ ๊ธฐ๋ฒ• (Structure-based technique)

sw ๋‚˜ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ…Œ์ŠคํŒ…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ปดํฌ๋„ŒํŠธ ๋ ˆ๋ฒจ์˜ ๊ตฌ์กฐ๋Š” ๊ตฌ๋ฌธ statement, ๊ฒฐ์ • decision ๋˜๋Š” ๋ถ„๊ธฐ๋ฌธ branch ๋“ฑ ์ฝ”๋“œ ์ž์ฒด์ด๋‹ค.

 

์ฝ”๋“œ ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ๊ธฐ๋ฒ•๊ณผ ์ปค๋ฒ„๋ฆฌ์ง€์™€์˜ ๊ด€๊ณ„๋Š” ๋ช…ํ™•ํ•˜๋‹ค.