๐Ÿงชํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ์˜ˆ์ธก๊ธฐ

ํ˜„์žฌ์™€ ๋ชฉํ‘œ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ’ˆ์งˆ ๊ฐœ์„ ์— ๋”ฐ๋ฅธ ๋ฒ„๊ทธ ๊ฐ์†Œ ๊ธฐ๋Œ€์น˜๋ฅผ ์‚ฐ์ถœํ•˜์„ธ์š”.

์˜ˆ์ƒ ๋ฒ„๊ทธ ๊ฐ์†Œ์œจ

0%
๋‹จ๊ณ„์˜ˆ์ƒ ํ’ˆ์งˆ ์ƒํƒœ
0 ~ 40%๐Ÿšฉ ์œ„ํ—˜ (๋ฒ„๊ทธ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ๋†’์Œ)
40 ~ 70%๐ŸŸก ๋ณดํ†ต (์ฃผ์š” ๋กœ์ง ๊ฒ€์ฆ ์ค‘)
70 ~ 90%โœ… ์šฐ์ˆ˜ (์•ˆ์ •์ ์ธ ์šด์˜ ๊ฐ€๋Šฅ)
90 ~ 100%๐Ÿ† ์ตœ์ƒ (์—„๊ฒฉํ•œ ํ’ˆ์งˆ ๊ด€๋ฆฌ)

ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๊ฐ€ ๋†’์„์ˆ˜๋ก ๋ฐฐํฌ๊ฐ€ ๋‘๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์œ ๋‹› ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€(Unit Test Coverage)๋Š” ํ”„๋กœ์ ํŠธ์˜ ์•ˆ์ •์„ฑ์„ ๊ฐ€๋Š ํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ๊ด€์ ์ธ ์ฒ™๋„ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ, ๊ธฐ์กด ๋กœ์ง์ด ๋ง๊ฐ€์ง€์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•ด์ฃผ๋Š” '์•ˆ์ „ ๊ทธ๋ฌผ' ์—ญํ• ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ๊ฐœ๋ฐœ ํŒ€์ด "๋ฐ”์˜๋‹ค"๋Š” ์ด์œ ๋กœ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ์„ ๋ฏธ๋ฃจ๊ณค ํ•˜์ง€๋งŒ, ์ด๋Š” ๊ฒฐ๊ตญ ์šด์˜ ํ™˜๊ฒฝ์—์„œ์˜ ์น˜๋ช…์ ์ธ ์žฅ์• ์™€ ๊ทธ๋กœ ์ธํ•œ ์•ผ๊ทผ์ด๋ผ๋Š” ๋” ํฐ ๋น„์šฉ์œผ๋กœ ๋Œ์•„์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ณธ ์˜ˆ์ธก๊ธฐ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์˜ ํ†ต๊ณ„์  ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๊ฐ€ ๋‚ฎ์€ ๊ตฌ๊ฐ„(0~40%)์—์„œ๋Š” ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์กฐ๊ธˆ๋งŒ ๋†’์—ฌ๋„ ๋ฒ„๊ทธ ๋ฐœ๊ฒฌ ํ™•๋ฅ ์ด ๋น„์•ฝ์ ์œผ๋กœ ์ƒ์Šนํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, ์ด๋ฏธ 80% ์ด์ƒ์˜ ๋†’์€ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ํ™•๋ณดํ•œ ์ƒํƒœ์—์„œ๋Š” ๋‚˜๋จธ์ง€ 1%๋ฅผ ์ฑ„์šฐ๊ธฐ ์œ„ํ•œ ๊ณต์ˆ˜๊ฐ€ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚˜๋ฉฐ, ๋ฒ„๊ทธ ๊ฐ์†Œ ํšจ์œจ์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค. ์ด๋ฅผ '์ˆ˜ํ™• ์ฒด๊ฐ์˜ ๋ฒ•์น™'์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ฌด์กฐ๊ฑด 100%๋ฅผ ๋ชฉํ‘œ๋กœ ํ•˜๊ธฐ๋ณด๋‹ค๋Š”, ์šฐ๋ฆฌ ์„œ๋น„์Šค์˜ ์„ฑ๊ฒฉ์— ๋งž๋Š” '๊ณจ๋“  ์กด(Golden Zone)'์„ ์ฐพ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ 90% ์ด์ƒ, ๋‹จ์ˆœ UI ์—ฐ๋™ ๋ถ€๋ถ„์€ 50% ์ •๋„๋กœ ์ฐจ๋“ฑ์„ ๋‘์–ด ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ์šฐ๋ฆฌ ํŒ€์˜ ํ’ˆ์งˆ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ๋ฌด๋ฆฌํ•œ ๋ชฉํ‘œ๊ฐ€ ์•„๋‹Œ '์ง€์† ๊ฐ€๋Šฅํ•œ ํ…Œ์ŠคํŠธ ๋ฌธํ™”'๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๊ทผ๊ฑฐ ์ž๋ฃŒ๋กœ ํ™œ์šฉํ•ด ๋ณด์„ธ์š”.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ (FAQ)

Q: ์ปค๋ฒ„๋ฆฌ์ง€๋งŒ ๋†’์œผ๋ฉด ์ข‹์€ ์ฝ”๋“œ์ธ๊ฐ€์š”?

A: ์•„๋‹™๋‹ˆ๋‹ค. '์˜๋ฏธ ์—†๋Š” ๋‹จ์–ธ(Assertion)'์œผ๋กœ ์ฑ„์›Œ์ง„ ํ…Œ์ŠคํŠธ๋Š” ์ปค๋ฒ„๋ฆฌ์ง€ ์ˆซ์ž๋งŒ ๋†’์ผ ๋ฟ ์‹ค์ œ ๋ฒ„๊ทธ๋ฅผ ์žก์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ์˜ ์งˆ์ด ๋ณ‘ํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Q: ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๋„์ž… ๋น„์šฉ์ด ๊ฑฑ์ •๋ฉ๋‹ˆ๋‹ค.

A: ์ดˆ๊ธฐ ๊ตฌ์ถ• ๋น„์šฉ์€ ๋ฐœ์ƒํ•˜์ง€๋งŒ, ์ˆ˜๋™ ํ…Œ์ŠคํŠธ์— ๋“œ๋Š” ์ธ๊ฑด๋น„์™€ ์žฅ์•  ๋Œ€์‘ ๋น„์šฉ์„ ๊ณ ๋ คํ•˜๋ฉด ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ๋ฐ˜๋“œ์‹œ ์ด๋“์ด ๋ฉ๋‹ˆ๋‹ค.

Q: TDD(ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ)๋ฅผ ๊ผญ ํ•ด์•ผ ํ•˜๋‚˜์š”?

A: TDD๋Š” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋†’์€ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์œ ์ง€ํ•˜๊ฒŒ ํ•ด์ฃผ์ง€๋งŒ, ํŒ€์˜ ์ˆ™๋ จ๋„์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์‚ฌํ›„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.