๐งช 17ํ์ฐจ: SWE.4 – ๋จ์ ์ํ์ ๊ฐ๋ฐ์์ ์์ฌ์ ๋๋ค!
“์ฝ๋์ผ, ๋ ์ ๋๋ก ์ผํ๋ ๊ฑฐ ๋ง๋?”
๐ค ๋จ์ ์ํ(Unit Test)์ ์ฐ๋ฆฌ๊ฐ ์ฝ๋์๊ฒ ์ง์ค์ ๋ฌป๋ ์๊ฐ์ ๋๋ค!
๐ฏ SWE.4๋?
SWE.4๋ ์ํํธ์จ์ด ๋จ์ ์ํ(Unit Verification) ํ๋ก์ธ์ค๋ฅผ ์๋ฏธํฉ๋๋ค.
์ฝ๊ฒ ๋งํด, “์ฐ๋ฆฌ๊ฐ ์ง ์ฝ๋ ๋จ์(ํจ์๋ ๋ชจ๋)๊ฐ ์ ๋๋ก ๋์ํ๋์ง ๊ฒ์ฆํ๋ ๊ฒ”์ด์ฃ !
๐ง ์ ์ค์ํ ๊น์?
- “์ด๊ฑฐ ๋น๋๋๋๊น ๋๋ ๊ฑฐ ์๋?” → โ ํฐ ์ฐฉ๊ฐ!
- “์๋ฎฌ๋ ์ดํฐ์์ ์ ๋ผ์!” → ๐ ์ค์ฐจ์์ ํฐ์ง๋ฉด ์ด์ฉ๋ ค๊ณ ์!
๋จ์ ์ํ์…
- ๐ฃ ์ ์ฌ์ ๋ฒ๊ทธ๋ฅผ ์ด๊ธฐ์ ์ ๊ฑฐ
- ๐ก ๊ธฐ๋ฅ๋ณ ์ฑ ์ ๋ถ๋ฆฌ๊ฐ ์ ๋์๋์ง ํ์ธ
- ๐ ์ ์ ๋ถ์ + MISRA-C ๊ฒ์ฌ๋ก ์ ๋ขฐ๋ UP!
โ๏ธ SWE.4์์ ํด์ผ ํ ํต์ฌ ํ๋๋ค
โ 1. ๋จ์ ์ํ ๊ณํ ์๋ฆฝ
- ์ํ ๋์ ์ ์ (ํจ์/ํด๋์ค/๋ชจ๋)
- ์ํ ์ ๋ต ์๋ฆฝ (Black-box, White-box)
โ 2. ์ํ ์ผ์ด์ค ์ค๊ณ
- ์ ์/์ด์ ์ ๋ ฅ ๋ชจ๋ ๊ณ ๋ ค
- ๊ฒฝ๊ณ ์กฐ๊ฑด, ์๋ฌ ์ฒ๋ฆฌ๋ ๋์น์ง ์๊ธฐ!
โ 3. ์ํ ์ํ & ๊ฒฐ๊ณผ ๊ธฐ๋ก
- ์ํ ๋๊ตฌ๋ฅผ ์ด์ฉํด ์๋ ์ํ (ex. Google Test, Tessy, VectorCAST)
- ์ํ ๊ฒฐ๊ณผ๋ ๋ฆฌํฌํธ๋ก ๋ณด๊ด ๐
๐ ์ ์ ๋ถ์ vs. ๋์ ์ํ?
๊ตฌ๋ถ | ์ค๋ช | ์์ |
---|---|---|
์ ์ ๋ถ์ | ์คํ ์์ด ์ฝ๋ ๊ฒํ | MISRA-C ๊ท์น ์๋ฐ ๊ฒ์ฌ, ์ฝ๋ ๋ณต์ก๋ ๋ถ์ |
๋์ ์ํ | ์ค์ ์คํ์ ํตํ ์ํ | ์ ๋ ฅ → ํจ์ ์คํ → ์ถ๋ ฅ ํ์ธ |
๐ฏ ์ ์ ๋ถ์์ SWE.4์์ ์์ฃผ ์ค์ํ ์ ์ ์กฐ๊ฑด์ ๋๋ค!
๐ฆ ์ ์ ๋ถ์๋ ์ํ์ด๋ค!
์๋์ฐจ ์ํํธ์จ์ด๋ ๋๋ถ๋ถ MISRA-C ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐ๋์ฃ .
SWE.4์์๋ ๋ค์์ด ํ์์
๋๋ค:
- ๐ MISRA-C ๋ฃฐ ์ฒดํฌ (e.g. "goto ์ฐ์ง ๋ง!", "์ ์ญ ๋ณ์ ๋จ์ฉ ๊ธ์ง")
- ๐งน ์ฝ๋ ๋ณต์ก๋ ์ธก์ (Cyclomatic Complexity < 10 ์ ์ง ๊ถ์ฅ)
- ๐จ Code Smell ์ ๊ฑฐ (Dead Code, Unreachable Code ๋ฑ)
"์ฝ๋ฉ์ ์์ ์ด๊ณ , ์ ์ ๋ถ์์ ๋ฏธ์ ์ ์๋์ด๋ค."
๐งฑ SWE.4์ ํ์ค์ ์ธ ์ด๋ ค์?
- ๋จ์ ์ํ ์ฝ๋ ์์ฑ์ด ๊ท์ฐฎ๊ณ ์ค๋ ๊ฑธ๋ฆผ
- Legacy ์ฝ๋์๋ ํ ์คํธ ํฌ์ธํธ ์์ฒด๊ฐ ์์
- ์ํ ๊ฒฐ๊ณผ๋ฅผ ํ์์ ์ผ๋ก๋ง ๋ณด๊ณ ํจ (← ์์ฃผ ์ํ!)
๐งฏ ๊ทธ๋์ ์ด๋ป๊ฒ ๋์ํ ๊น?
๋ฆฌ์์ค ๋ถ์กฑํ ํ์ฌ๋ผ๋ฉด?
- ์ต์ํ ์ค์ ๋ชจ๋๋ถํฐ ์ํ (์ฐ์ ์์ ๊ธฐ๋ฐ ์ ๋ต)
- ์ ์ ๋ถ์ ์๋ํ ํด ๋์ (e.g. Polyspace, QAC, PC-lint)
- ์ํ ์ฝ๋ ์์ฑ์ ๋ฆฌ๋ทฐ ๋์ ํฌํจ! (์ฝ๋ ํ์ง์ด ์๋ช )
๐ฌ ํ์ ์์ ์์ฃผ ํ๋ ์ง๋ฌธ๋ค
โ “์ํ ์ฝ๋๋ ๋ฆฌ๋ทฐํด์ผ ํ๋์?”
โ๏ธ ๋ค, ์ํ ์ฝ๋๋ ๊ฒฐ๊ตญ ์ ํ์ ์ผ๋ถ์ ๋๋ค.
โ “์ ์ ๋ถ์์ด ๋ถํฉ๊ฒฉ์ด๋ฉด ๊ธฐ๋ฅ์ ์ ๋ผ๋ NG์ธ๊ฐ์?”
โ๏ธ ๋ค, ๊ธฐ๋ฅ์ด ์ ๋์ด๋ ์ฝ๋ ๊ท์น ์๋ฐ์ด๋ฉด ๋ถํฉ๊ฒฉ ์ฒ๋ฆฌ๋ ์ ์์ด์.
โ “TDD(ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ)๋ ๋๋ฌด ์ด์์ ์ธ ๊ฑฐ ์๋๊ฐ์?”
โ๏ธ ์ด์์ ์ด์ง๋ง, ํต์ฌ ๋ชจ๋์๋ ์ ๊ทน ์ ์ฉํ ์๋ก ์ ์ง๋ณด์ ํจ์จ์ด ์ฌ๋ผ๊ฐ๋๋ค!
๐งช SWE.4 ์์ฝ ์ ๋ฆฌ!
ํญ๋ชฉ | ๋ด์ฉ |
---|---|
๋ฌด์์? | ํจ์, ๋ชจ๋ ๋จ์๋ก ์ํ |
์ด๋ป๊ฒ? | ์ํ ๊ณํ → ์ํ ์ผ์ด์ค ์ค๊ณ → ์ํ ์ํ |
๋๊ตฌ๋? | Tessy, VectorCAST, Google Test ๋ฑ |
ํต์ฌ์? | ์ ์ ๋ถ์ + MISRA-C ๊ฒ์ฌ + ๋จ์ ์ํ ์ฝ๋ ์์ฑ |
๐ฎ ๋ค์ ํ์ฐจ ์๊ณ : 18ํ์ฐจ – SWE.5, ์ํํธ์จ์ด ํตํฉ ์ํ
์ด์ ๋จ์ ์ํ์ ๋๋๋ค๋ฉด?
๋ชจ๋๋ค์ด ์ ์ด์ธ๋ฆฌ๋์ง, ํตํฉ ์ํ์ผ๋ก ํ์ธํด์ผ๊ฒ ์ฃ !
“ํผ์ ์ํ๋ ๋ชจ๋๋, ๋ชจ์ด๋ฉด ์ธ์ด๋ค?!”
๋ค์ ํธ์์๋ SWE.5 – ์ํํธ์จ์ด ํตํฉ ์ํ์ ๋์ด๋์ ์ฆ๊ฑฐ์ด(?) ํ์ค์ ํจ๊ป ํ์ด๋ด ๋๋ค!