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, while ๋ฑ์ ๋ฐ๋ณต๋ฌธ
โ
Control Flow Graph ์ ์ด ํ๋ฆ ๊ทธ๋ํ
- CFG: ์ ์ด ํ๋ฆ ๊ทธ๋ํ
- ํ๋ก๊ทธ๋จ์ ์ ์ด ํ๋ฆ์ ๊ทธ๋ํ๋ก ํํ
Three Premitives
1. Decision(branch) : ์ ์ด ํ๋ฆ์ด ๋ถ๊ธฐ๋๋ ์ง์ (if, case)
2. Junction(join) : ์ ์ด ํ๋ฆ์ด ํฉ์ณ์ง๋ ์ง์ (end if, end loop)
3. Process Block : ํ๋ฆ์ด ์ฐ์์ ์ธ ์ํ, ํ๋์ ์
๊ตฌ(Entry)์ ํ๋์ ์ถ๊ตฌ(Exit)๋ฅผ ๊ฐ์ง.
์ ์ด ํ๋ฆ ๊ทธ๋ํ์ ์์
Path ๊ฒฝ๋ก
- Entry, Decision, Junction์์ ์์ํ์ฌ, ๋ค๋ฅธ Decision, Junction, Exit์์ ๋๋๋ ์ํ(statement)์ ์์
- Link(edge)๋ ๊ฐ์ฅ ์์ ๊ตฌ๋ถ์ผ๋ก ๋ Node ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ํ๋ก์ธ์ค์ด๋ค.
- Complete Path(Entry/Exit path)๋ ์ด๋ค ์ฒ๋ฆฌ ์์์ ์์์ ์์ ์์ํ๊ณ , ๋์ผํ ์ฒ๋ฆฌ ์์์ ์ข
๋ฃ์ ์์ ๋๋๋ path์ด๋ค. โ์์ ํ ๊ฒฝ๋ก๋ฅผ ๋งํจ.
Complete Path ์์ ํ ๊ฒฝ๋ก
Complete Path๊ฐ ํ
์คํธ์ ์ ์ฉํ๋ค.
- ์์์ statement์์ ์์ํ๋ ๊ฒ์ ์ด๋ ต๋ค.
- ์์์ statement์์ ์ค์งํ๋ ๊ฒ์ ์ด๋ ต๋ค.
- ์ผ๋ฐ์ ์ผ๋ก input/output์ ๋ฐ๋ผ ์ฒ๋ฆฌ ์์๋ฅผ ์๊ฐํ๋ค.
Testing Criteria ํ ์คํ ๊ธฐ์ค
1. Path Testing (Pinf)
- ๊ฐ๋ฅํ ๋ชจ๋ path์ ๋ํด test๋ฅผ ์ํํ๋ค.
- ๋ชจ๋ ๊ฐ๋ฅํ Entry/Exit์ ์ ํ๋๋ค.
- Loop๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ๋ฌดํ ์์ path๊ฐ ์กด์ฌํ ์ ์๋ค.
2. Statement Testing (P1)
- ๋ชจ๋ Statement์ ๋ํด ์ต์ 1ํ์ test๋ฅผ ์ํํ๋ค.
3. Branch Testing (P2)
- ๋ชจ๋ ๋ถ๊ธฐ๋ฌธ์ ๋ํด ์ต์ 1ํ์ test๋ฅผ ์ํ
โํ
์คํ
๊ฐ๋
P1 < P2 < ..... < Pinf
- ํ
์คํธ์ ๋ฐ๋ผ ๊ฐ๋๋ฅผ ๋์ฌ๊ฐ๋ test๋ฅผ ์ํ
์์ ์ฝ๋
์ ๋๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ ์ฝ๋
Int ABS(int x)
{
if(x < 0)
x = -x;
return 0 ;
}
1. Flow Graph
2. Statement Testing
- node๋ฅผ ํ ๋ฒ์ฉ๋ง ์ง๋๋ฉด ๋๋ค.
- acde ๊ฒฝ๋ก ํ๋๋ง ์ง๋๋ฉด 100% ๋ง์กฑํ๋ค.
3. Branch Testing
- ๋ถ๊ธฐ๊ฐ ๋๋ T, F๋ฅผ ๊ผญ ํ ๋ฒ์ฉ ์ง๋์ผ ํ๋ค.
- acde, ade ๋ ๊ฐ์ ๊ฒฝ๋ก๋ฅผ ์ง๋๋ฉด 100% ๋ง์กฑํ๋ค.
ํจ๊ป ๊ณต๋ถ ํด๋ณผ ๋งํ ํ ์คํ ์ด๋ก
White Box Testing ๋ฐ์ดํฐ ํ๋ฆ ํ ์คํ
Data Flow Testing (๋ฐ์ดํฐ ํ๋ฆ ํ ์คํ ) ์ ์ - Data๊ฐ ์ ์๋๊ณ ์ฌ์ฉ๋ ์์น์ ๋ฐ๋ผ์ Path๋ฅผ ์ ํํ๋ ๊ธฐ๋ฒ ํน์ง - Data Flow Test๋ Data์ ์ํด์ ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ ํ์ ํ๊ธฐ ์ํด Control Flow Graph๋ฅผ ์ฌ์ฉํ
dev-yujin.tistory.com
'SQA > Theory' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
White Box Testing ์ํ ๋ณต์ก๋ (0) | 2023.04.11 |
---|---|
White Box Testing ํํฅ์ ํ ์คํธ์ ์ํฅ์ ํ ์คํธ (0) | 2023.04.08 |
White Box Testing ๋ฐ์ดํฐ ํ๋ฆ ํ ์คํ (0) | 2023.04.05 |
White Box Testing ํ์ดํธ ๋ฐ์ค์ ๋ธ๋ ๋ฐ์ค (0) | 2023.04.03 |
White Box Testing ์ ์์ ํ์์ฑ (0) | 2023.04.01 |