π Application Testing
Test Level
ν
μ€νΈ λ 벨μ΄λ μννΈμ¨μ΄μ κ°λ° λ¨κ³μ λ°λΌ λ¨μ ν
μ€νΈ, ν΅ν© ν
μ€νΈ, μμ€ν
ν
μ€νΈ, μΈμ ν
μ€νΈλ‘ λΆλ₯λ κ²μ΄λ€.
- μ ν리μΌμ΄μ
ν
μ€νΈμ μννΈμ¨μ΄ κ°λ° λ¨κ³λ₯Ό μ°κ²°νμ¬ ννν κ²μ V-λͺ¨λΈμ΄λΌκ³ ν¨

Unit Test(λ¨μ ν
μ€νΈ)
λ¨μ ν
μ€νΈλ μ½λ© μ§ν μννΈμ¨μ΄ μ€κ³μ μ΅μ λ¨μμΈ λͺ¨λμ΄λ μ»΄ν¬λνΈμ μ΄μ μ λ§μΆ° ν
μ€νΈ νλ κ²μ΄λ€.
- μΈν°νμ΄μ€, μΈλΆμ I/O, μλ£ κ΅¬μ‘°, λ
립μ κΈ°μ΄ κ²½λ‘, μ€λ₯ μ²λ¦¬ κ²½λ‘, κ²½κ³ μ‘°κ±΄ λ±μ κ²μ¬
- κ°λ³ λͺ¨λμ μννλ κ²μΌλ‘ λͺ¨λμ΄ μ ννκ² κ΅¬νλμλμ§, μμ ν κΈ°λ₯μ΄ μ λλ‘ μνλλμ§λ₯Ό μ κ²νλ κ²μ΄ μ£Όλͺ©μ μΈ ν
μ€νΈ
- μ¬μ©μμ μꡬ μ¬νμ κΈ°λ°μΌλ‘ ν κΈ°λ₯μ ν
μ€νΈλ₯΄ μ΅μ°μ μΌλ‘ μν
- ꡬ쑰 κΈ°λ° ν
μ€νΈμ λͺ
μΈ κΈ°λ° ν
μ€νΈλ‘ λλμ§λ§ μ£Όλ‘ κ΅¬μ‘° κΈ°λ° ν
μ€νΈλ₯Ό μν
Integration Test(ν΅ν© ν
μ€νΈ)
ν΅ν© ν
μ€νΈλ λ¨μ ν
μ€νΈκ° μλ£λ λͺ¨λλ€μ κ²°ν©νμ¬ νλμ μμ€ν
μΌλ‘ μμ±μν€λ κ³Όμ μμμ ν
μ€νΈλ₯Ό μλ―Ένλ€.
- λͺ¨λ κ° λλ ν΅ν©λ μ»΄ν¬λνΈ κ°μ μνΈ μμ© μ€λ₯(μΈν°νμ΄μ€κ° μ μμ μΌλ‘ μ€νλλμ§)λ₯Ό κ²μ¬
- λΉμ μ§μ ν΅ν© λ°©μ / μ μ§μ ν΅ν© λ°©μ
νν₯μ ν΅ν© ν
μ€νΈ(Top Down Integration Test)
νλ‘κ·Έλ¨μ μμ λͺ¨λμμ νμ λͺ¨λ λ°©ν₯μΌλ‘ ν΅ν©νλ©΄μ ν
μ€νΈνλ κΈ°λ²μ΄λ€.
- κΉμ΄ μ°μ λ°©μ / λλΉ μ°μ λ°©μ
- Stub(μ€ν
) : μ μ΄ λͺ¨λμ΄ νΈμΆνλ ν λͺ¨λμ κΈ°λ₯μ λ¨μν μννλ λꡬλ‘, μΌμμ μΌλ‘ νμν 쑰건λ§μ κ°μ§κ³ μμλ‘ μ 곡λλ μνμ© λͺ¨λ
μν₯μ ν΅ν© ν
μ€νΈ(Bottom Up Integration Test)
νλ‘κ·Έλ¨μ νμ λͺ¨λμμ μμ λͺ¨λ λ°©ν₯μΌλ‘ ν΅ν©νλ©΄μ ν
μ€νΈνλ κΈ°λ²μ΄λ€.
- μ μ°¨ :
1οΈβ£ νμ λͺ¨λλ€μ ν΄λ¬μ€ν°(Cluster)λ‘ κ²°ν©
2οΈβ£ μμ λͺ¨λμμ λ°μ΄ν°μ μ
βμΆλ ₯μ νμΈνκΈ° μν΄ λλ―Έ λͺ¨λμΈ λλΌμ΄λ²(Driver)λ₯Ό μμ±
3οΈβ£ ν΅ν©λ ν΄λ¬μ€ν° λ¨μλ‘ ν
μ€νΈ
4οΈβ£ ν
μ€νΈκ° μλ£λλ©΄ ν΄λ¬μ€ν°λ νλ‘κ·Έλ¨ κ΅¬μ‘°μ μμλ‘ μ΄λνμ¬ κ²°ν©νκ³ λλΌμ΄λ²λ μ€μ λͺ¨λλ‘ λ체λ¨
- Test Driver(ν
μ€νΈ νΈλΌμ΄λ²) : ν
μ€νΈ λμμ νμ λͺ¨λμ νΈμΆνκ³ , νλΌλ―Έν°λ₯Ό μ λ¬νκ³ , λͺ¨λ ν
μ€νΈ μννμ κ²°κ³Όλ₯Ό λμΆνλ λꡬ
System Test(μμ€ν
ν
μ€νΈ)
μμ€ν
ν
μ€νΈλ κ°λ°λ μννΈμ¨μ΄κ° ν΄λΉ μ»΄ν¨ν° μμ€ν
μμ μλ²½νκ² μνλλκ°λ₯Ό μ κ²νλ ν
μ€νΈμ΄λ€.
- κΈ°λ₯μ μꡬμ¬νκ³Ό λΉκΈ°λ₯μ μꡬμ¬νμ ꡬλΆνμ¬ κ°κ°μ λ§μ‘±νλμ§ ν
μ€νΈ
Acceptance Test(μΈμ ν
μ€νΈ)
μΈμ ν
μ€νΈλ κ°λ°ν μννΈμ¨μ΄κ° μ¬μ©μμ μꡬμ¬νμ μΆ©μ‘±νλμ§μ μ€μ μ λκ³ ν
μ€νΈνλ κ²μ΄λ€.
- κ°λ°ν μννΈμ¨μ΄λ₯Ό μ¬μ©μκ° μ§μ ν
μ€νΈ
- μν ν
μ€νΈ : κ°λ°μμ μ₯μμμ μ¬μ©μκ° κ°λ°μ μμμ ννλ ν
μ€νΈ κΈ°λ²μΌλ‘, ν
μ€νΈλ ν΅μ λ νκ²½μμ νν΄μ§λ©°, μ€λ₯μ μ¬μ©μμ λ¬Έμ μ μ μ¬μ©μμ κ°λ°μκ° ν¨κ» νμΈνλ©΄μ κΈ°λ‘
- λ² ν ν
μ€νΈ : μ μ λ μ΅μ’
μ¬μ©μκ° μ¬λ‘ λͺ
μ μ¬μ©μ μμμ ννλ ν
μ€νΈ κΈ°λ²μΌλ‘, μ€μ μ
무λ₯Ό κ°μ§κ³ μ¬μ©μκ° μ§μ ν
μ€νΈν¨
Test Oracle
ν
μ€νΈ μ€λΌν΄μ ν
μ€νΈ κ²°κ³Όκ° μ¬λ°λ₯Έμ§ νλ¨νκΈ° μν΄ μ¬μ μ μ μλ μ°Έκ°μ λμ
νμ¬ λΉκ΅νλ κΈ°λ² λ° νλμ λ§νλ€.
- κ²°κ³Όλ₯Ό νλ¨νκΈ° μν΄ ν
μ€νΈ μΌμ΄μ€μ λν μμ κ²°κ³Όλ₯Ό κ³μ°νκ±°λ νμΈ
- νΉμ§ : μ νλ κ²μ¦, μνμ κΈ°λ², μλν κΈ°λ₯
Types of Test Oracle
- True(μ°Έ) Oracle : λͺ¨λ ν
μ€νΈ μΌμ΄μ€μ μ
λ ₯ κ°μ λν΄ κΈ°λνλ κ²°κ³Όλ₯Ό μ 곡νλ μ€λΌν΄λ‘, λ°μλ λͺ¨λ μ€λ₯λ₯Ό κ²μΆν μ μμ
- Sampling(μνλ§) Oracle : νΉμ ν λͺλͺ ν
μ€νΈ μΌμ΄μ€μ μ
λ ₯ κ°λ€μ λν΄μλ§ κΈ°λνλ κ²°κ³Όλ₯Ό μ 곡νλ μ€λΌν΄λ‘ μ μ ν
μ€νΈκ° λΆκ°λ₯ν κ²½μ° μ¬μ©ν¨
- Heuristic(μΆμ ) Oracle : νΉμ ν
μ€νΈ μΌμ΄μ€μ μ
λ ₯ κ°μ λν΄ κΈ°λνλ κ²°κ³Όλ₯Ό μ 곡νκ³ , λλ¨Έμ§ μ
λ ₯ κ°λ€μ λν΄μλ μΆμ μΌλ‘ μ²λ¦¬νλ μ€λΌν΄
- Consistent(μΌκ΄μ± κ²μ¬) Oracle : μ ν리μΌμ΄μ
μ λ³κ²½μ΄ μμ λ, ν
μ€νΈ μΌμ΄μ€μ μν μ κ³Ό νμ κ²°κ³Ό κ°μ΄ λμΌνμ§ νμΈνλ μ€λΌν΄
- Static Analysis Tools(μ μ λΆμ λꡬ) :
- νλ‘κ·Έλ¨μ μ€ννμ§ μκ³ λΆμνλ λꡬ
- μμ€ μ½λμ λν μ½λ© νμ€, μ½λ© μ€νμΌ, μ½λ 볡μ‘λ λ° λ¨μ κ²°ν¨μ λ°κ²¬νκΈ° μν΄ μ¬μ©
- Test Execution Tools(ν
μ€νΈ μ€ν λꡬ) :
- μ€ν¬λ¦½νΈ μΈμ΄λ₯Ό μ¬μ©νμ¬ ν
μ€νΈλ₯Ό μ€ννλ λꡬ
- ν
μ€νΈ λ°μ΄ν°μ ν
μ€νΈ μν λ°©λ² λ±μ΄ ν¬ν¨λ μ€ν¬λ¦½νΈλ₯Ό μμ±ν μ€ν
- Performance Test Tools(μ±λ₯ ν
μ€νΈ λꡬ) :
- μ ν리μΌμ΄μ
μ μ²λ¦¬λ, μλ΅ μκ°, κ²½κ³Ό μκ°, μμ μ¬μ©λ₯ μ λν΄ κ°μμ μ¬μ©μλ₯Ό μμ±νκ³ ν
μ€νΈλ₯Ό μνν¨μΌλ‘μ¨ μ±λ₯μ λͺ©ν λ¬μ± μ¬λΆλ₯Ό νμΈνλ λꡬ
- Test Control Tools(ν
μ€νΈ ν΅μ λꡬ) :
- ν
μ€νΈ κ³ν λ° κ΄λ¦¬, ν
μ€νΈ μν, κ²°ν¨ κ΄λ¦¬ λ±μ μννλ λꡬ
- Test Harness Tools(ν
μ€νΈ νλ€μ€ λꡬ) :
- ν
μ€νΈκ° μ€νλ νκ²½μ μλ¬Όλ μ΄μ
νμ¬ μ»΄ν¬λνΈ λ° λͺ¨λμ΄ μ μμ μΌλ‘ ν
μ€νΈλλλ‘ νλ λꡬ
- Test Harness(ν
μ€νΈ νλ€μ€) : μ ν리μΌμ΄μ
μ μ»΄ν¬λνΈ λ° λͺ¨λμ ν
μ€νΈνλ νκ²½μ μΌλΆλΆμΌλ‘, ν
μ€νΈλ₯Ό μ§μνκΈ° μν΄ μμ±λ μ½λμ λ°μ΄ν°λ₯Ό μλ―Έ
Components of Test Harness
- Test Driver(ν
μ€νΈ νΈλΌμ΄λ²) : ν
μ€νΈ λμμ νμ λͺ¨λμ νΈμΆνκ³ , νλΌλ―Έν°λ₯Ό μ λ¬νκ³ , λͺ¨λ ν
μ€νΈ μννμ κ²°κ³Όλ₯Ό λμΆνλ λꡬ
- Test Stub(ν
μ€νΈ μ€ν
) : μ μ΄ λͺ¨λμ΄ νΈμΆνλ ν λͺ¨λμ κΈ°λ₯μ λ¨μν μννλ λꡬλ‘, μΌμμ μΌλ‘ νμν 쑰건λ§μ κ°μ§κ³ μλ ν
μ€νΈμ© λͺ¨λ
- Test Suites(ν
μ€νΈ μνΈ) : ν
μ€νΈ λμ μ»΄ν¬λνΈλ λͺ¨λ, μμ€ν
μ μ¬μ©λλ μΌμ΄μ€μ μ§ν©
- Test Case(ν
μ€νΈ μΌμ΄μ€) : μ¬μ©μμ μꡬμ¬νμ μ ννκ² μ€μνλμ§ νμΈνκΈ° μν μ
λ ₯ κ°, μ€ν 쑰건, κΈ°λ κ²°κ³Ό λ±μΌλ‘ λ§λ€μ΄μ§ ν
μ€νΈ νλͺ©μ λͺ
μΈμ
- Test Script(ν
μ€νΈ μ€νΈλ¦½νΈ) : μλνλ ν
μ€νΈ μ€ν μ μ°¨μ λν λͺ
μΈμ
- Mock Object(λͺ© μ€λΈμ νΈ) : μ¬μ μ μ¬μ©μμ νμλ₯Ό 쑰건λΆλ‘ μ
λ ₯ν΄ λλ©΄, κ·Έ μν©μ λ§λ μμ λ νμλ₯Ό μννλ κ°μ²΄
μ°Έκ³ ,
κΈΈλ²μμ€λ. γμ 보μ²λ¦¬κΈ°μ¬ μ€κΈ° λ¨κΈ°μμ±γ. κΈΈλ². 2023.