์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์๊ณ ๋ฆฌ์ฆ
- ์นด์นด์ค
- ์ด๋ถํ์
- ๋ถ์คํธ์ปจํผ๋ฐ์ค
- js
- React
- ๋ฐฑ์ค
- Redux toolkit
- ์ด๋ฏธ์ง ์์
- ์ฝ๋ ํฌ๋ฉง
- ๋ธ๋ฃจํธํฌ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ถ์คํธ์บ ํ์น๋ชจ๋ฐ์ผ
- Node.js
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ๋๋๊ทธ ์ด๋ฒคํธ
- ๊ณผ์ ํ ์คํธ
- ๋ฆฌ๋์ค ํดํท
- TypeScript
- ์ฝ๋ฉํ ์คํธ
- custom hook
- JavaScript
- ์นด์นด์ค์ฑ์ฉ
- svgํ์ผ ๋ค๋ฃจ๊ธฐ
- icecandidate
- DP
- ์ฝํ
- ๋์ ๊ณํ๋ฒ
- router v6
- Today
- Total
๐ฅ dev-ruby
[์ํํธ์จ์ด๊ณตํ] Verification & Validation ๋ณธ๋ฌธ
Verification (๊ฒ์ฆ)
์ฃผ์ด์ง ๋จ๊ณ์ ์ ํ์ด ์ด์ ๋จ๊ณ์์ ์จ ์ฌ์์ ์ถฉ์กฑํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ํ๋ก์ธ์ค
-> ์ด์ ์ ๋จ๊ณ๊ฐ ํ์ฌ์ ์ผ์นํ๋์ง ๊ฒ์ฆ
Validation (ํ์ธ)
์๊ตฌ์ฌํญ ์ค์๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ๊ฐ๋ฐ ์ข ๋ฃ ์ ์ํํธ์จ์ด๋ฅผ ํ๊ฐํ๋ ํ๋ก์ธ์ค
๋ชฉํ
- ํ์ง ์ข์ ์ํํธ์จ์ด ๊ฐ๋ฐ
- ์ํํธ์จ์ด ์ ํ์์ ์ค๋ฅ ๋ฐ ๊ฒฐํจ์ ์ฐพ๊ธฐ
์๊ตฌ์ฌํญ
- ๋ชจ๋ ์ฌํญ์ ํ์ธํด์ผ ํ๋ค.
- ๊ฒ์ฆ ๊ฒฐ๊ณผ๋ ๋ฐ์ด๋๋ฆฌ๊ฐ ์๋ ์ ์๋ค.
- ๊ฒ์ฆ์ ๊ฐ๊ด์ ์ด๊ฑฐ๋ ์ฃผ๊ด์ ์ผ ์ ์๋ค.
- ๋ด์ฌ์ ํ์ง๋ ๊ฒ์ฆํด์ผ ํ๋ค.
V & V ํ๋์ ๋ถ๋ฅ
- error : ์์ง๋์ด์ ์ค์
- Fault : ์ฌ์ฉ์์๊ฒ ์ ํํ ์๋น์ค ์ ๊ณต์ด ๋ถ๊ฐ๋ฅํ ์ํ
- Failure : ๋ฐ๊ฒฌ๋์ง ์์ ์ค๋ฅ, ์ฌ์ฉ์๊ฐ ์ค์๋ฅผ ํ๋๋ฐ ์ ์์ ์ผ๋ก ์๋
Static ํ๋ - ์์ค์ฝ๋ ์คํ X
- ์์คํ ๋์์ ๊ด์ฐฐํ์ง ์์
- ์์คํ ๊ฒฐํจ์ ์ฐพ์ง ์์
- ๊ฒฐํจ์ด ์ง์ ํ์ง๋จ
dynamic
- ์์คํ ๋์์ด ๊ด์ฐฐ๋จ
- ์คํจ์ ์กด์ฌ๋ฅผ ๊ฒฐ์
- ์คํจ์ ๋ถ์ฌ๊ฐ ์๋๋ผ ๊ฒฐํจ์ ์กด์ฌ๋ฅผ ๋ํ๋ธ๋ค.
- ์ค์ ๊ฒฐํจ์ "๋๋ฒ๊น " ํ๋์ผ๋ก ์๋ณ๋๋ค.
- ์คํจ๊ฐ ์๋ค๊ณ ํด์ ๊ฒฐํจ์ด ์๋ ๊ฒ์ ์๋๋ค. (๊ณ ์ฅ์ด ์๋๋ค๊ณ ํด์ ๊ฒฐํจ์ด ์๋ค๊ณ ๋งํ ์ X)
- ํ ์คํธ(dynamic testing)
3๊ฐ์ง ์ข ๋ฅ
- Review
- Walkthrough
- Inspection
Reviews
์ผ๋ฐ์ ์ผ๋ก ๊ฐ ๋จ๊ณ์ ์ข
๋ฃ์์ ์ ์ค์
๊ฒํ ํ์ด๋ ํจ๋์ ์ํ ์๋ฃ ๋ฐํ๋ก ๊ตฌ์ฑ
- Informal review : ๋ด๋ถ ๊ฒํ
- Formal review : ๊ณ ๊ฐ ๋๋ ์คํฐ์์ ๊ฒํ
Walkthrough : ์ฐ์ถ๋ฌผ์ ๊ฒํ ์์๊ฒ ๋ณด๋ด์ ์์ธํ๊ฒ ์ดํด๋ด
- ๋จ๊ณ๋ณ ๋๋ ๋ผ์ธ๋ณ ์ ํ ์์ธ ๊ฒ์ฌ
- 3 ๋๋ 5๋ช ์ ์ฐธ๊ฐ์์ ๋ช ์๊ฐ ํ์
- ์์ ์์ ์ด ์๋ error ๋ฐ๊ฒฌ์ ์ง์ค -> ๊ฐ๋ฐ์์ ์ค์๋ฅผ ์ฐพ๋๋ฐ ํฌ์ปค์ค
- ์์์ ์ผ๋ก ์ ํ ์๋ฎฌ๋ ์ด์ ์คํ
Inspection :
- ๋จ๊ณ๋ณ ๋๋ ๋ผ์ธ๋ณ ์ ํ ์์ธ ๊ฒ์ฌ
- ์กฐ์ง ์ธก๋ฉด์์ walkthrough๊ณผ ์ ์ฌํ๋ค.
- error ์ ๋ฌด ํ์ธ
- ์ ์๋ ค์ง error ์ ํ์ ๋ฏธ๋ฆฌ ๋ถ๋ฅ๋์ด ์๋ค.
Software testing
Dynamic verification activities (Dynamic ํ๋)
๋ชฉ์
- ์ค์ ๊ฒฐ๊ณผ์ ์์๋๋ ๋์ ๊ฐ์ ๋ถ์ผ์น ํ์ธ
- ์ ํ์ฑ, ์ ๋ขฐ์ฑ, ์ฑ๋ฅ ๋ฑ์ ๋ํ ๋์ ๋ณด์ฆ์ ์ ๊ณตํ๊ธฐ ์ํด
๊ธฐ๋ณธ ํ
์คํธ ์ง๋ฌธ
- ์ด๋ค ๊ฒฝ์ฐ ํ
์คํธ๋ฅผ ํด์ผํ๋?
- ์ด๋ค ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋?
- ์ํํธ์จ์ด์ ์ด๋ค ์ธก๋ฉด์ ํ ์คํธํด์ผ ํ๋?
- ์ถ๋ ฅ์ด ์ฌ๋ฐ๋ฅธ๊ฐ?
- ์ฌ์์ ์ถฉ์กฑํ๋๊ฐ
- ๊ณ ๊ฐ์ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ๋๊ฐ
- ์ธ์ ํ
์คํธ๋ฅผ ์ค์งํ ์ ์๋๊ฐ?
- ์ถฉ๋ถํ ์์ ๊ฒฐํจ์ ๋ฐ๊ฒฌํ๋๊ฐ?
- ์ ํ์ ๋ง์กฑ์ค๋ฝ๊ฒ ์ปค๋ฒํ๋๊ฐ?
- ์ผ๋ง๋ ์ํ๋์ง?
- ๋์ ๋ณด์ฆ์ ์ ๊ณตํ๋๊ฐ?
๋ชจ๋ ์ ๋ ฅ ์กฐ๊ฑด ํ ์คํธ
: ๊ฐ๋ฅํ ๋ชจ๋ ์
๋ ฅ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ํ
์คํธํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
ํ
์คํธ๋ฅผ ํตํด ์ค๋ฅ๊ฐ ์์์ ๋ณด์ฅํ ์ ์๋ค.
๋ฐ๊ฒฌ๋์ง ์์ ์ค๋ฅ๊ฐ ์๋ ๊ฒฝ์ฐ ํฉ๋ฆฌ์ ์ธ ์์ค์ ์ ๋ขฐ์ฑ์ ํ๋ณดํ ์ ์๋ ์์์ ํ
์คํธ ์ผ์ด์ค ์ค๊ณ
Q : ์ฌ๋ฐ๋ฅธ ์์น์ ์ ํํ๋ผ
ํ
์คํ
์ ํ๋ก๊ทธ๋จ์ ์ ํ์ฑ์ ์ฆ๋ช
ํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ณผ์ ์ด๋ค. (X)
์๋ช
ํ์ง ์์ ๋ชจ๋์ด๋ ์์คํ
์ ์์ ํ ํ
์คํธํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. (X)
ํ
์คํ
๋ ์ฐฝ์๋ ฅ๊ณผ ๋
ธ๋ ฅ์ ํ์๋ก ํ๋ค. (O)
ํ
์คํ
๋ฅผ ํตํด ์ค๋ฅ ๋ฐ์์ ๋ฐฉ์งํ ์ ์๋ค. (X) -> ๋ ๋ค๋ฅธ ์๋ฌ๋ฅผ ์ ๋ฐํ ์ ์์
ํ
์คํ
๋ ์ฌ๋ฌ ๋
๋ฆฝ์ ์ธ ํ
์คํฐ๊ฐ ์ํํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข๋ค. (O) -> ๋ด๊ฐํ ๊ฐ๋ฐ์ ๋ด๊ฐ ํ
์คํธ
ํ ์คํธ ์ ์ฐจ
- ํ ์คํธ ํ๋ก์ธ์ค ๊ณํ
- ํ ์คํธ ๋ชฉํ ๋ฐ ๋ชฉํ ์ ์: ๊ท์น ์ค์ง
- ํ ์คํธ ์ผ์ด์ค ์ค๊ณ
- ํ ์คํธ ์ค๋น
- ํ ์คํธ ์ผ์ด์ค ์คํ
- ํ ์คํธ ๊ฒฐ๊ณผ ํ๊ฐ
- ์ํํธ์จ์ด ๋ถ์
- ํ๋ก์ธ์ค ๊ฐ์
Test Cases
2๊ฐ์ง ๋ฌธ์ :
1. ํ๋ก๊ทธ๋จ์ด ํด์ผํ ๊ฒ์ ํ์ง ์๋ ๊ฒฝ์ฐ
2. ํ๋ก๊ทธ๋จ์ด ํ์ง ๋ง์์ผ ํ ๊ฒ์ ํ๋ ๊ฒฝ์ฐ
Test Case๋ validํ๊ณ ์์๋๋ ์
๋ ฅ ์กฐ๊ฑด๋ฟ๋ง ์๋๋ผ invalidํ๊ณ ์๊ธฐ์น ์์์ ๋ํด์๋ ์์ฑ๋์ด์ผ ํ๋ค.
test case๋ input + expected result
ํ
์คํธ ์ผ์ด์ค ๋ช
์ธ๋ ๋ค์์ผ๋ก ๊ตฌ์ฑ๋์ด์ผ ํ๋ค.
- ํ ์คํธ ์ผ์ด์ค ์๋ณ์
- ํ ์คํธ ํญ๋ชฉ
- ์ ๋ ฅ ์ฌ์
- ์ถ๋ ฅ ์ฌ์
- ํ๊ฒฝ์ ํ์ ๋ฐ ํน๋ณ ์ ์ฐจ ์๊ตฌ ์ฌํญ
ํ ์คํธ ์ค๋ผํด
- ํ ์คํธ ์ค๋ผํด์ ํ ์คํธ ์คํ ๋์์ ๊ฒ์ฆํ๊ธฐ ์ํ ๋ฉ์ปค๋์ฆ์ด๋ค.
Unit Testing ๊ธฐ๋ฒ
test case ์ ํ ๊ธฐ์ค
Structural
- Path selection criteria
- Data selection criteria
- Error-oriented criteria
Functional
- ํด๋ฆฌ์คํฑ ์ฌ์ฉ
Structural vs Functional
Structural (White box)
- ์ํํธ์จ์ด ๊ตฌ์กฐ/๊ตฌํ์ ๋ฐ๋ฅธ ํ ์คํธ ์ผ์ด์ค ์ ์
- ์ค์ ๊ธฐ๋ฅ์ ๊ณ ๋ คํ์ง ์๊ณ ํ๋ก๊ทธ๋จ์ด ํด์ผ ํ ์ผ์ ํ๋์ง ํ๋จํ ์ ์์
Functional (Black box)
- ๊ธฐ๋ฅ ์ฌ์์ ๋ฐ๋ฅธ ํ ์คํธ ์ผ์ด์ค ์ ์
- ์๋๋ ๊ธฐ๋ฅ์ ๊ณ ๋ คํ์ง ์๊ณ ํ๋ก๊ทธ๋จ์ด ํด์ผ ํ ์ผ์ ํ๋์ง ํ๋จํ ์ ์์.
Structural testing
: ์ํํธ์จ์ด ๊ตฌ์กฐ๋ฅผ ๋ค๋ฃจ๋ ๋ชฉ์ ์ ๋ฐ๋ผ ๊ตฌ๋๋๋ Dynamic testing
- Path selection criteria
- Data selection criteria
- Error-oriented criteria
Path Selection Criteria
- ํ ์คํธํ ๋ช ๋ น๋ฌธ ๋ฐ ๋ถ๊ธฐ ์์ ์ ํ์ ํฌ์ปค์ค
- ์ํํธ์จ์ด ํ๋ฆ ๊ตฌ์กฐ๋ฅผ ์ปค๋ฒํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ ์คํธ
- structural flow graphs์ ๊ธฐ๋ฐ
- Control Flow Coverage : Statement Coverage, Branch Coverage ๋ฑ
- Data Flow Coverage
Control Flow Coverage : Statement Coverage
: ํ๋ก๊ทธ๋จ์ ์ ์ด ๊ตฌ์กฐ๋ฅผ ์ถฉ๋ถํ ์ปค๋ฒํ๋๋ก ๊ฒฝ๋ก(paths)๋ฅผ ์ ํํจ์ผ๋ก์จ ํ
์คํธ ์ผ์ด์ค๊ฐ ๊ฐ๋ฐ๋๋ค.
ํ
์คํธ ์ผ์ด์ค ์ ํ์ ๊ฐ์ด๋ํ๋๋ฐ ์ฌ์ฉ๋จ
๋ชจ๋ ๋ฌธ์ฅ์ด ์คํ๋์ด์ผ ํจ
- ์ ํ์ฑ์ ๋ณด์ฅํ๋ค๊ณ ํด์ 100% ๋ฌธ์ฅ ๋ฒ์๋ฅผ ๋ฌ์ฑํ๋ ๊ฒ์ ์๋
- ๊ทธ๋ฌ๋ 100% ๋ฌธ์ฅ ๋ฒ์ ๋ฏธ๋ง์ ํ๋ก๊ทธ๋จ์ ํ ์คํธ๋์ง ์์ ์ฝ๋๊ฐ ์์์ ์๋ฏธํ๋ค.
Branch (Decision) Coverage
: ๊ฐ๋ฐ ์์ค์ ๊ฐ ๋ถ๊ธฐ๋ฌธ์ด ์ํ๋์๋์ง ํ์ธํ๋ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง
ํ
์คํธ ์ผ์ด์ค ์ ํ์ ๊ฐ์ด๋ํ๋๋ฐ ์ฌ์ฉ๋จ
๋ชจ๋ ๋ธ๋์น๊ฐ ์คํ๋์ด์ผ ํจ
- If-then, if-then-else statement
- True and False branches
- Case statement
- each branch and others or default
- โwhileโ, โrepeatโ and โforโ statements
- ๋ฃจํ ๋ณธ๋ฌธ์ ํ ๋ฒ ์ด์ ๋ค์ด๊ฐ๊ณ ์ข ๋ฃํด์ผํ๋ค.
Data Flow Coverage
: ํ๋ก๊ทธ๋จ ๋ณ์ ์ ์ธ๊ณผ ์ฌ์ฉ์ ์ถ์ ํ๋ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง
ํ
์คํธ ์ผ์ด์ค ์ ํ์ ๊ฐ์ด๋ํ๋๋ฐ ์ฌ์ฉ๋จ
๋ณ์ ์ ์ธ ํ ์ฌ์ฉ๋๋์ง ํ
์คํธํจ
All-Defs : ๊ฐ ์ฉ๋์ ์ ์์ ๋๋ฌํจ
All-Uses : ๋ชจ๋ ๊ฐ ์ ์์ ๋ํด ์ฌ์ฉ๋จ
All-DU-Paths : ์ ์๋ถํฐ ์ฌ์ฉ๊น์ง ๊ฒฝ๋ก
Error-Oriented Criteria
Error-Oriented Testing
: ํ๋ก๊ทธ๋๋ฐ ํ๋ก์ธ์ค์์ ์ธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ์ฌ๋ถ๋ฅผ ํ๊ฐํ๋ ๋ฐ ์ด์ ์ ๋ง์ถ ํ
์คํ
1. Condition Coverage
2. Mutation Coverage
1. Condition Coverage
: ๊ฒฐ์ ์ ๊ฐ ์กฐ๊ฑด์ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์ด๋ ํ ๋ฒ์ ์ทจํด์ผ ํ๋ค.
Condition/Decision Coverage
: ๊ฐ ์กฐ๊ฑด์ ์ฐธ ๋๋ ๊ฑฐ์ง์ ์ ์ด๋ ํ ๋ฒ ํ
์คํธ๋๋ค.
MC/DC Coverage
Modified Condition / Decision Coverage
: Condition/Decision Coverage + ๊ฐ ๊ฒฐ์ ์์ ์กฐ๊ฑด์ ๊ฒฐ๊ณผ์ ๋
๋ฆฝ์ ์ผ๋ก ์ํฅ์ ๋ฏธ์น๋ค.
2. Mutation Coverage
: ๋์ฒด ํ๋ก๊ทธ๋จ (๋์ฐ๋ณ์ด)์ ์๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ๋ฌธ์ ์ผ๋ก ์์ ํ์ฌ (์๋์ผ๋ก) ์์ฑ๋๋ค.
- Red fish = ์ค์ ํ๋ก๊ทธ๋จ faults(์ ์ ์๋ ์ธ๊ตฌ)
- Blue fish = ์๋ faults (๋์ฐ๋ณ์ด)
- ์ ์ ์ฑ : ์ก์ Blue fish ์, Red fish ์ถ์
- ์ํ ๋์ฐ๋ณ์ด
- ๋ ผ๋ฆฌ์ ์ปค๋ฅํฐ ๊ต์ฒด
- ๊ด๊ณ ์ฐ์ฐ์ ๊ต์ฒด
- ๋ฌธ์ฅ ์ญ์
- ๋จํญ ์ฐ์ฐ์ ์ฝ์
- ๋ฐฐ์ด ์ฐธ์กฐ ๊ต์ฒด
- ์ฐ์ ์ฐ์ฐ์ ๋์ฒด
Functional (Black Box) Testing
: ๊ธฐ๋ฅ์ ์๊ตฌ ์ฌํญ์ ๋ช
์ธํ๋ ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ํ
์คํธ
Exhaustive testing
: ์
๋ ฅ, ๊ธฐ๋ฅ ๋ฑ์ ๊ฐ๋ฅํ ๋ชจ๋ ์กฐํฉ์ ํ
์คํธ
Random testing
: ์์๋ก ์ ํ๋ ์
๋ ฅ ๋๋ฉ์ธ์ผ๋ก ๋ถํฐ ํ์ ์งํฉ ํ
์คํธ๋ฅผ ์ ํํ์ฌ ํ
์คํธ
Functional Testing Heuristics
: ๋ชฉํ๋ ์ง์ ๋ ๊ฐ ์ํํธ์จ์ด ๊ธฐ๋ฅ์ ํ
์คํธํ๋ ๊ฒ
Heuristics
- equivalence partitioning
- Input/output domain coverage
- boundary value coverage
- special value coverage
Equivalence Partitioning (๋์น๋ถํ )
- ๋ชจ๋ ์ธํฐํ์ด์ค ๋ฐ ๊ธฐ๋ฅ ๊ธฐ๋ฐ
- ์ ๋ ฅ๊ณผ ๊ธฐ๋ฅ ๊ฐ์ ๊ด๊ณ์์ ํ ์คํธ ๋ฐ์ดํฐ ๋์ถ
- ์ ๋ ฅ ๋๋ฉ์ธ์ด ๋๋ฑํ ์ฒ๋ฆฌ๋ฅผ ๋ฐ๋ ๋ฐ์ดํฐ์ ํ์ ์งํฉ์ผ๋ก ๋ถํ ๋๋ค.
- ์ถ๋ ฅ ๊ณต๊ฐ ๋ถํ ๋ ๊ณ ๋ ค๋ ์ ์๋ค.
Input Domain Coverage
- ๋ชจ๋ ์ธํฐํ์ด์ค์ ๊ธฐ๋ฐ
- ์ ๋ ฅ ํน์ง์ผ๋ก๋ถํฐ ํ ์คํธ ๋ฐ์ดํฐ ๊ตฌ๋
- ์ ๋ ฅ ์กฐ๊ฑด์ ๋ฒ์์ ๋ํด ๊ธฐ๋ฅ์ ํ ์คํธํ๋์ง ํ์ธํ๋ค.
Boundary Value Coverage : ๊ฒฝ๊ณ๊ฐ ๊ด์ ์์ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์
- ๋ชจ๋ ์ธํฐํ์ด์ค์ ๊ธฐ๋ฐ
- ๋ฒ์์ ๊ฒฝ๊ณ ํน์ฑ์ผ๋ก๋ถํฐ ํ
์คํธ ๋ฐ์ดํฐ ๋์ถ
- ์
๋ ฅ ์กฐ๊ฑด์ด ๊ฐ์ ๋ฒ์๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ: ์: [-1.0, +1.0]
- ๊ฒฝ๊ณ ํ ์คํธ
- ๊ฒฝ๊ณ ๋ฐ๋ก ๋ฐ๊นฅ์ชฝ์ ํ ์คํธ
- ์
๋ ฅ ์กฐ๊ฑด์ด ๊ฐ์ ์๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ: ์: 1..255
- ์ต๋๊ฐ ๋ฐ ์ต์๊ฐ ํ ์คํธ
- ์ต์๊ฐ๋ณด๋ค ์์ ๊ฐ๊ณผ ์ต๋๊ฐ์ ์ด๊ณผํ๋ ๊ฐ์ ํ ์คํธ
- ์
๋ ฅ ์กฐ๊ฑด์ด ๊ฐ์ ๋ฒ์๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ: ์: [-1.0, +1.0]
- ์์๊ฐ ์ง์ ๋ ์ธํธ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์์์ ๋ง์ง๋ง ์์์ ํฌ์ปค์ค๋ฅผ ๋ง์ถ๋ค.
Special Value Coverage : ํ ์คํธํ ๊ธฐ๋ฅ์ ๋ฐ๋ผ
- ์๊ณ ๋ฆฌ์ฆ ํน์ฑ ๋ฐ ์ ์๋ ค์ง ๋ฏผ๊ฐ ๊ฐ์์ ํ ์คํธ ๋ฐ์ดํฐ ๋์ถ
SDLC์์ ํ ์คํ
- ๊ณ ๊ฐ์ ๋์ฆ
- ์๊ตฌ์ฌํญ
- ์ค๊ณ
- ์ฝ๋
- Unit Testing
- Integration Testing
- System Testing
- Acceptance Testing
Unit Testing
์๊ตฌ์ฌํญ๊ณผ ๋น๊ตํ๋ ๋จ์ ํ
์คํธ
Integration Testing
์ปดํฌ๋ํธ ์ธํฐํ์ด์ค์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ํํธ์จ์ด ์ปดํฌ๋ํธ์ ์ฒด๊ณ์ ์ธ ๊ฒฐํฉ ๋ฐ ํ
์คํธ
System Testing
ํตํฉ ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ์์คํ
ํ
์คํธ
Acceptance Testing
์ํํธ์จ์ด ์์คํ
๋๋ ์์คํ
์ด ๊ณ ๊ฐ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋์ง ์
์ฆํ๊ธฐ ์ํ ํ
์คํธ
Regression Testing
์์ ํ ์ฌ์ํ
Unit Testing
: ๋จ์ผ ์ ๋ ๋๋ ๋ชจ๋์ ์คํํ๊ธฐ ์ํด ์ํ๋๋ ์ ๋ ํ
์คํธ
Integration Testing
- ์์คํ ์ ์์๊ฐ ๊ฒฐํฉ๋จ์ ๋ฐ๋ผ ํ ์คํธ๊ฐ ํ์ํ๋ค.
- ์ ํ
์คํธ๋(์ฌ๋ฐ๋ฅธ) ๋ชจ๋์ ํตํฉ์ผ๋ก ์ธํด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- ์ธํฐํ์ด์ค์ ์๋ชป๋ ์ฌ์ฉ
- ๊ด๋ จ ๋ชจ๋์ ๋์์ ๋ํ ์๋ชป๋ ๊ฐ์ค
- ๋ถ๋ ๋๋ผ์ด๋ฒ/์คํ ์ฌ์ฉ
- ํ
์คํธ ์ ๊ทผ ๋ฐฉ์
- Non-incremental : ๋ชจ๋ ์์๊ฐ ํ ๋ฒ์ ๊ฒฐํฉ๋์ด ํ ์คํธ๋๋ค.
- Incremental : ์์๊ฐ ์ ์ง์ ์ผ๋ก ์ถ๊ฐ๋๊ณ ํ ์คํธ๋๋ค.
Regression Testing
: ์ด์ ๋ฒ์ ์์ ์์๋ ์ด์ ๊ธฐ๋ฅ์ ์ ํจ์ฑ์ ๋ค์ ํ์ธํ๊ธฐ ์ํจ
์๋ก์ด ๋ฒ์ ๋ฐฐํฌํ ๋๋ง๋ค ํ
์คํ
ํ๋ค.
- ์์ ์ฌํญ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๊ณ ,
- ํ๋ก๊ทธ๋จ์ ์์ ๋์ง ์์ ๋ถ๋ถ์ ์์ ์ผ๋ก ์ธํด ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฐ์ง ์์์ผ ํ๋ค
Object-Oriented Software ํ ์คํ
- System testing
- ์ฌ์ฉ์ ๊ด์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ํ๊ฐ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์์ ํ ์คํธ ์ผ์ด์ค ๊ฐ๋ฐ ๋์ถ
- Unit testing
- ํด๋์ค์ ๋ฐ์ดํฐ์ ๋ฉ์๋์ ๋ํ ์ก์ธ์ค
- ํด๋์ค์ ์๋ ๋ชจ๋ ๋ฉ์๋์ ์ธํฐํ์ด์ค ๊ธฐ๋ฅ์ ๋ณด์ฅํ๋ ๊ฒ์ผ๋ก ๊ตฌ์ฑ
- ์บก์ํ๋ฅผ ์ฒ๋ฆฌํ๋ ์คํ ํ๊ฒฝ ํ์
์์ ์์คํ ์ ํ ์คํ ํ๊ธฐ
- Outline method
- ๊ด๋ จ ์ ๋ณด๋ฅผ ๊ทธ๋ฃนํํ๋ ์ ์ฉํ ํด
- Use cases method
- ์กํฐ ์๋๋ฆฌ์ค์ ์ด์
์ ์ฆ ์ผ์ด์ค์ ํ ์คํธ ์ผ์ด์ค
- ์ ์ฆ ์ผ์ด์ค
- ์๊ตฌ์ฌํญ ๋ฌธ์ํ๋ฅผ ์ํ ํจ๊ณผ์ ์ธ ๋ฉ์ปค๋์ฆ
- ์กํฐ์ ๊ด์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ์ค๋ช
- ํ ์คํธ ์ผ์ด์ค๋ก ์ฝ๊ฒ ๋ฒ์ญ
- ์ข ์ข ์ฑ๋ฅ ๋ฐ ๋ถํ ํ ์คํธ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์๋ตํฉ๋๋ค.
์ ์ฆ ์ผ์ด์ค์ 4๊ฐ ์น์
- ๋ฉ์ธํค๋ : ๊ณ ์ ํ ์์ด๋์ ๊ฐ๋จํ ์ค๋ช
- ์ฑ๊ณต๋ณด์ฆ์ : ์ฑ๊ณต์ ์ต์ข ์ํ
- ์ฃผ์ ์ฑ๊ณต ์๋๋ฆฌ์ค : ๋ชจ๋ ๋จ๊ณ๊ฐ ์ ์์ ์ผ๋ก ์๋ฃ๋๊ณ ๋ณต๊ตฌ๊ฐ ํ์ํ์ง ์์ ๊ฐ์ฅ ๊ฐ๋จํ ์๋๋ฆฌ์ค
- ํ์ฅ : ์ฃผ์ ์ฑ๊ณต ์๋๋ฆฌ์ค์ ํ ๋จ๊ณ์์ ๋ถ๊ธฐ๋๋ ๋์ฒด ๊ณผ์
Non-Functional Testing
- ์ํํธ์จ์ด ์์คํ ๋๋ ์์คํ ์ด ์๊ตฌ ์ฌํญ์ ์ง์ ๋ ๋น๊ธฐ๋ฅ์ ๊ธฐ๋ฅ์ ์ถฉ์กฑํ๋์ง ํ์ธํ๊ธฐ ์ํ ํ ์คํธ
ํ ์คํธ ๊ธฐ์
- ๋ณด์ ํ
์คํธ (Security Testing)
- ์์คํ ์ด ์น์ธ๋์ง ์์ ์ฌ๋์ ์ ๊ทผ์ ์ ์ ํ๊ฒ ํต์ ํ๊ณ ์์ต๋๊น? (๋ฐ์ดํฐ ๋ฐ ์ํํธ์จ์ด ์ก์ธ์ค)
- ์ ํ๋ ํ
์คํธ (Accuracy Testing)
- ๊ฒฐ๊ณผ๊ฐ ์ด๋ก ์ ์ ํ์ฑ์ ๊ฐ๊น์ต๋๊น?
- Performance Testing
- ์์คํ ์ด ๋ชจ๋ ์กฐ๊ฑด์์ ์๋ต ์๊ฐ, ์ฒ๋ฆฌ๋ ๋ฐ ์ ์ฅ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๊น?
- Load/Stress Testing (๊ณผ๋ถํ)
- ์์คํ ์ ์ฌ๋ฌ ๋์ ์ธํฐ๋ฝํธ์ ๊ฐ์ ๋์ ๋ถํ์ ์คํธ๋ ์ค์์ ์ ๋๋ก ์๋ํฉ๋๊น?
- Volume Testing
- ์์คํ ์ด ์ฅ๊ธฐ๊ฐ์ ๊ฑธ์ณ ์ต๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๊น?
'์ํํธ์จ์ด๊ณตํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ํํธ์จ์ด๊ณตํ] ํ์๊ด๋ฆฌ (0) | 2021.12.12 |
---|---|
[์ํํธ์จ์ด๊ณตํ] Design-Pattern (0) | 2021.12.12 |
[์ํํธ์จ์ด๊ณตํ] ๊ฐ์ฒด์งํฅ์ค๊ณ (0) | 2021.12.12 |
[์ํํธ์จ์ด๊ณตํ] ๋ชจ๋ํ(Modularity) (0) | 2021.12.11 |