๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SQA/Theory

(6)
White Box Testing ์ˆœํ™˜ ๋ณต์žก๋„ Cyclomatic Complexity (์ˆœํ™˜ ๋ณต์žก๋„) ๋ณต์žก๋„(Complexity) - ์‹œ์Šคํ…œ์ด ๊ฒ€์ฆํ•˜๊ธฐ ์–ด๋ ค์šด ๋””์ž์ธ์ด๋‚˜ ๊ตฌํ˜„์„ ๊ฐ€์ง„ ์ •๋„ ์ˆœํ™˜ ๋ณต์žก๋„(Cycolmatic Complexity), v(G) - ํ”„๋กœ๊ทธ๋žจ์˜ ๋ณต์žก๋„๋ฅผ ์ •๋Ÿ‰์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ• - ํ”„๋กœ๊ทธ๋žจ์˜ ๋…๋ฆฝ์ ์ธ ๊ฒฝ๋กœ์˜ ์ˆ˜ - ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ํ•œ ๋ฒˆ์”ฉ์€ ์‹คํ–‰๋˜์—ˆ์Œ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ํšŸ์ˆ˜์˜ ์ƒํ•œ์œผ๋กœ ์‚ฌ์šฉ ๊ณ„์‚ฐ๋ฒ• ์•Œ์•„๋ณด๊ธฐ ์ˆœํ™˜ ๋ณต์žก๋„ ๊ณต์‹ v(G) = E - N + 2 v(G) = P + 1 - E : edge์˜ ๊ฐœ์ˆ˜ - N : node์˜ ๊ฐœ์ˆ˜ - P : ๋ถ„๊ธฐ(predicate) ๋˜๋Š” node์˜ ๊ฐœ์ˆ˜ ์ˆœํ™˜ ๋ณต์žก๋„ - ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ - N = 6, E = 7, P = 2 ใ„ด node, edge๋ฅผ ์‚ฌ์šฉํ•œ ๊ณ„์‚ฐ โ˜ž v(G) = E - N + 2 = ..
White Box Testing ํ•˜ํ–ฅ์‹ ํ…Œ์ŠคํŠธ์™€ ์ƒํ–ฅ์‹ ํ…Œ์ŠคํŠธ ํŠน์ • ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ์ƒํ™ฉ์—์„œ ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋”๋ฏธ ์ปดํฌ๋„ŒํŠธ(Dummy Component)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ํ•˜ํ–ฅ์‹ ํ…Œ์ŠคํŠธ Top-Down - ์ƒ์œ„ ๋ชจ๋“ˆ๋กœ๋ถ€ํ„ฐ ํ•˜์œ„ ๋ชจ๋“ˆ์„ ํ–ฅํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ - ์‹œ์Šคํ…œ์— ๊ตฌํ˜„๋œ ๋ชจ๋“  ๋ชจ๋“ˆ์„ ๋“ค์—ฌ๋‹ค๋ณผ ์ˆ˜ ์žˆ๋‹ค. - ์Šคํ…์„ ์ด์šฉํ•˜์—ฌ ์ƒ์œ„ ๋ชจ๋“ˆ์„ ํ…Œ์ŠคํŒ… ํ•œ๋‹ค. - ์Šคํ…(stub) : ๊ฐ€์งœ ํ•˜์œ„ ๋ชจ๋“ˆ ์ƒํ–ฅ์‹ ํ…Œ์ŠคํŠธ Down-Top - ํ•˜์œ„ ๋ชจ๋“ˆ๋กœ ๋ถ€ํ„ฐ ์ƒ์œ„ ๋ชจ๋“ˆ์„ ํ–ฅํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ - ๊ฐœ๋ฐœ ์ค‘์ธ ๋ชจ๋“ˆ(์‹œ์Šคํ…œ) ์ค‘, ๋ถˆํ™•์‹คํ•œ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค. - ๋ถˆํ™•์‹คํ•œ ์š”์†Œ : ์‹ค์ œ๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์šด ์š”์†Œ - ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•˜์œ„ ๋ชจ๋“ˆ์„ ํ†ตํ•ฉํ•˜์—ฌ ํ…Œ์ŠคํŒ… ํ•œ๋‹ค. - ๋“œ๋ผ์ด๋ฒ„(drive..
Whith Box Testing ์ œ์–ด ํ๋ฆ„ ํ…Œ์ŠคํŒ… Control Flow Testing ์ œ์–ด ํ๋ฆ„ ํ…Œ์ŠคํŒ… ์ด๋ž€? - ํ”„๋กœ๊ทธ๋žจ์˜ ์ œ์–ด ํ๋ฆ„์„ ์ด์šฉํ•˜๋Š” ๋ชจ๋ธ - ๊ตฌ์กฐ์  ํ…Œ์ŠคํŒ… ๊ธฐ๋ฒ•์— ์†ํ•œ๋‹ค. - ํ”„๋กœ๊ทธ๋žจ ๋‚ด์˜ ๋ชจ๋“  path๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์„ ํƒํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค. ์ „์ œ์กฐ๊ฑด 1. ์„ค๊ณ„ ๋ช…์„ธ์„œ๊ฐ€ ์ •ํ™•ํ•ด์•ผ ํ•œ๋‹ค. 2. Data๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ •์˜/์ ‘๊ทผ๋˜์–ด์•ผ ํ•œ๋‹ค. 3. Control Flow์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  ๋ฒ„๊ทธ๊ฐ€ ์—†์–ด์•ผ ํ•œ๋‹ค. Control Structure ์ œ์–ด ๊ตฌ์กฐ - Control Flow Test๋Š” "Control Structure"๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ๋„์ถœ - Sequence : a → b → c๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ - Branching(Selection) : a์—์„œ b๋กœ ๊ฐˆ์ง€ c๋กœ ๊ฐˆ์ง€ ๊ณ ๋ฅด๋Š” ์กฐ๊ฑด๋ฌธ - Iteration : for, whi..
White Box Testing ๋ฐ์ดํ„ฐ ํ๋ฆ„ ํ…Œ์ŠคํŒ… Data Flow Testing (๋ฐ์ดํ„ฐ ํ๋ฆ„ ํ…Œ์ŠคํŒ…) ์ •์˜ - Data๊ฐ€ ์ •์˜๋˜๊ณ  ์‚ฌ์šฉ๋œ ์œ„์น˜์— ๋”ฐ๋ผ์„œ Path๋ฅผ ์„ ํƒํ•˜๋Š” ๊ธฐ๋ฒ• ํŠน์ง• - Data Flow Test๋Š” Data์— ์˜ํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด Control Flow Graph๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. - Path Teating, Branch Teating, Statement Testing ๊ณผ์˜ ๊ฐญ ์ฐจ์ด๋ฅผ ๋ฉ”์šฐ๋Š” Path ์„ ํƒ ๊ธฐ๋ฒ•์ด๋‹ค. read(x,y): z = x + 2; if (x < y ) w = x + 1; else y = y + 1; print (x,y,w,z) - ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ๋•Œ, y์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. (x, z๋„ ๊ฐ€๋Šฅํ•˜๋‹ค) Data Flow Test์€ Data์˜ "Define"๊ณผ "Use"๋ฅผ ์ค‘์‹ฌ..