π Application Testing
Application Testing
Application Testing(μ ν리μΌμ΄μ
ν
μ€νΈ)λ μ ν리μΌμ΄μ
μ μ μ¬λμ΄ μλ κ²°ν¨μ μ°Ύμλ΄λ μΌλ ¨μ νμ λλ μ μ°¨μ΄λ€.
- κ°λ°λ μννΈμ¨μ΄κ° κ³ κ°μ μꡬμ¬νμ λ§μ‘±μν€λμ§ Validatrion(νμΈ)νκ³ μννΈμ¨μ΄κ° κΈ°λ₯μ μ νν μννλμ§ Verification(κ²μ¦)νλ€.
Basic principles of Application Testing
- Pareto Principle(νλ ν λ²μΉ) : μ ν리μΌμ΄μ
μ 20%μ ν΄λΉνλ μ½λμμ μ 체 κ²°ν¨μ 80%κ° λ°κ²¬λλ€λ λ²μΉ
- Pesticide Paradox(μ΄μΆ©μ ν¨λ¬λ
μ€) : λμΌν ν
μ€νΈ μΌμ΄μ€λ‘ λμΌν ν
μ€νΈλ₯Ό λ°λ³΅νλ©΄ λ μ΄μ κ²°ν¨μ΄ λ°κ²¬λμ§ μλ νμ
- Absence of Errors Fallacy(μ€λ₯-λΆμ¬μ κΆ€λ³) : μννΈμ¨μ΄μ κ²°ν¨μ λͺ¨λ μ κ±°ν΄λ μ¬μ©μμ μꡬμ¬νμ λ§μ‘±μν€μ§ λͺ»νλ©΄ ν΄λΉ μννΈμ¨μ΄λ νμ§ μ΄ λλ€κ³ λ§ν μ μλ κ²
νλ‘κ·Έλ¨ μ€ν μ¬λΆμ λ°λ₯Έ ν
μ€νΈ
Static Testing(μ μ ν
μ€νΈ)
νλ‘κ·Έλ¨μ μ€ννμ§ μκ³ λͺ
μΈμλ μμ€ μ½λλ₯Ό λμμΌλ‘ λΆμνλ ν
μ€νΈμ΄λ€.
- μμ€ μ½λμ λν μ½λ© νμ€, μ½λ© μ€νμΌ, μ½λ 볡μ‘λ, λ¨μ κ²°ν¨ λ±μ λ°κ²¬νκΈ° μν΄ μ¬μ©
- μ’
λ₯ :
- λλ£ κ²ν (Peer Review) : 2~3λͺ
μ΄ μ§ννλ 리뷰μ ννλ‘ μꡬμ¬ν λͺ
μΈμ μμ±μκ° μꡬμ¬ν λͺ
μΈμλ₯Ό μ€λͺ
νκ³ , μ΄ν΄κ΄κ³μλ€μ΄ μ€λͺ
μ λ€μΌλ©΄μ κ²°ν¨μ λ°κ²¬νλ ννλ‘ μ§ννλ κ²ν κΈ°λ²
- μν¬μ€λ£¨(Walk Throughts) : κ²ν μλ£λ₯Ό νμ μ μ λ°°ν¬ν΄μ μ¬μ κ²ν ν ν 짧μ μκ° λμ νμλ₯Ό μ§ννλ ννλ‘ κ°μ₯ λΉνμμ μΈ κ²ν κΈ°λ²
κ΄λ¦¬μ μ§μ±
μ λ΄λΉνλ μ¬λμ λ©€λ²λ‘ μ°Έμ¬ λͺ»ν¨
- μΈμ€νμ
(Inspection) : μννΈμ¨μ΄ μ μμ μΈμ λ€λ₯Έ μ λ¬Έκ° λλ νμ΄ κ²μ¬νμ¬ λ¬Έμ λ₯Ό μλ³νκ³ λ¬Έμ μ λν μ¬λ°λ₯Έ ν΄κ²°μ μ°Ύμλ΄λ νμμ μΈ κ²ν κΈ°λ²
κ°λ° μ΄κΈ°μ κ²μ¬ν΄μΌλ§ κ°λ° μ΄κΈ° μμ
λ¬Όμμ λ¬Έμ λ₯Ό λ°κ²¬ν μ μμ
- μ½λ κ²μ¬...
Dynamic Testing(λμ ν
μ€νΈ)
νλ‘κ·Έλ¨μ μ€ννμ¬ μ€λ₯λ₯Ό μ°Ύλ ν
μ€νΈμ΄λ€.
- μννΈμ¨μ΄ κ°λ°μ λͺ¨λ λ¨κ³μμ ν
μ€νΈλ₯Ό μν
- μ’
λ₯ : λΈλλ°μ€ ν
μ€νΈ, νμ΄νΈλ°μ€ ν
μ€νΈ
Testing with Purpose
- Recovery(ν볡) Test
- Security(μμ ) Test
- Stress(κ°λ) Test : μμ€ν
μ κ³Όλν μ 보λμ΄λ λΉλ λ±μ λΆκ³Όνμ¬ κ³ΌλΆνμμλ μννΈμ¨μ΄κ° μ μμ μΌλ‘ μ€νλλμ§λ₯Ό νμΈνλ ν
μ€νΈ
- Performance(μ±λ₯) Test
- Structure(ꡬ쑰) Test
- Regression(νκ·) Test : ν΅ν© ν
μ€νΈλ‘ μΈν΄ λ³κ²½λ λͺ¨μ¨μ΄λ μ»΄ν¬λνΈμ μλ‘μ΄ μ€λ₯κ° μλμ§ νμΈνλ ν
μ€νΈ
- μ΄λ―Έ ν
μ€νΈλ νλ‘κ·Έλ¨μ ν
μ€ν
μ λ°λ³΅νλ κ²
- νκ· ν
μ€νΈλ μμ ν λͺ¨λμ΄λ μ»΄ν¬λνΈκ° λ€λ₯Έ λΆλΆμ μν₯μ λ―ΈμΉλμ§, μ€λ₯κ° μκΈ°μ§ μμλμ§ ν
μ€νΈνμ¬ μλ‘μ΄ μ€λ₯κ° λ°μνμ§ μμμ 보μ¦νκΈ° μν΄ λ°λ³΅ ν
μ€νΈλ₯Ό ν¨
- Parallel(λ³ν) Test
WhiteBox Test
νμ΄νΈλ°μ€ ν
μ€νΈ(WhiteBox Test)λ λͺ¨λμ μμ μ½λ(source code)λ₯Ό μ€νμν¨ μνμμ μμ μ½λμ λ
Όλ¦¬μ μΈ λͺ¨λ κ²½λ‘λ₯Ό ν
μ€νΈνμ¬ ν
μ€νΈ μΌμ΄μ€λ₯Ό μ€κ³νλ λ°©λ²μ΄λ€.
- Module μμ μλμ μ§μ κ΄μ°°ν μ μμ
- μμ μ½λμ λͺ¨λ λ¬Έμ₯μ ν λ² μ΄μ μ€νν¨μΌλ‘μ¨ μν λ¨
Types of WhiteBox Tests
- Base Path Testing(κΈ°μ΄ κ²½λ‘ κ²μ¬) :
ν
μ€νΈ μΌμ΄μ€ μ€κ³μκ° μ μ°¨μ μ€κ³μ λ
Όλ¦¬μ 볡μ‘μ±μ μΈ‘μ ν μ μκ² ν΄μ£Όλ ν
μ€νΈ κΈ°λ²
- Condition Testing(μ μ΄ κ΅¬μ‘° κ²μ¬) :
- 쑰건 κ²μ¬ : νλ‘κ·Έλ¨ λͺ¨λ λ΄μ μλ λ
Όλ¦¬μ 쑰건μ ν
μ€νΈνλ ν
μ€νΈ μΌμ΄μ€ μ€κ³ κΈ°λ²
- Loop Testing(루ν κ²μ¬) : νλ‘κ·Έλ¨μ λ°λ³΅ ꡬ쑰μ μ΄μ μ λ§μΆ° μ€μνλ ν
μ€νΈ μΌμ΄μ€ μ€κ³ κΈ°λ²
- Data Flow Testing(λ°μ΄ν° νλ¦ κ²μ¬) : νλ‘κ·Έλ¨μμ λ³μμ μ μμ λ³μ μ¬μ©μ μμΉμ μ΄μ μ λ§μΆ° μ€μνλ ν
μ€νΈ μΌμ΄μ€ μ€κ³ κΈ°λ²
WhiteBox Tests Coverage
- Statement Coverage(λ¬Έμ₯ κ²μ¦ κΈ°μ€) :
μμ€ μ½λμ λͺ¨λ κ΅¬λ¬Έμ΄ ν λ² μ΄μ μνλλλ‘ ν
μ€νΈ μΌμ΄μ€λ₯Ό μ€κ³
- Branch Coverage(λΆκΈ° κ²μ¦ κΈ°μ€) :
μμ€ μ½λμ λͺ¨λ 쑰건문μ λν΄ μ‘°κ±΄μμ κ²°κ³Όκ° TrueμΈ κ²½μ°μ FalseμΈ κ²½μ°κ° ν λ² μ΄μ μν λλλ‘ ν
μ€νΈ μΌμ΄μ€λ₯Ό μ€κ³
Decision Coverage(κ²°μ κ²μ¦ κΈ°μ€)μ΄λΌκ³ λ ν¨
- Condition Coverage(쑰건 κ²μ¦ κΈ°μ€) :
μμ€ μ½λμ 쑰건문μ ν¬ν¨λ κ°λ³ 쑰건μμ κ²°κ³Όκ° TrueμΈ κ²½μ°μ FalseμΈ κ²½μ°κ° ν λ² μ΄μ μν λλλ‘ ν
μ€νΈ μΌμ΄μ€λ₯Ό μ€κ³
- Branch/Codition Coverage(λΆκΈ°/쑰건 κΈ°μ€) :
λΆκΈ° κ²μ¦ κΈ°μ€κ³Ό 쑰건 κ²μ¦ κΈ°μ€μ λͺ¨λ λ§μ‘±νλ μ€κ³λ‘, μ‘°κ±΄λ¬Έμ΄ TrueμΈ κ²½μ°μ FalseμΈ κ²½μ°μ λ°λΌ 쑰건 κ²μ¦ κΈ°μ€μ μ
λ ₯ λ°μ΄ν°λ₯Ό ꡬ문νλ ν
μ€νΈ μΌμ΄μ€λ₯Ό μ€κ³
BlackBox Test
λΈλλ°μ€ ν
μ€νΈ(BlackBox Test)λ μννΈμ¨μ΄κ° μνν νΉμ κΈ°λ₯μ μκΈ° μν΄μ κ° κΈ°λ₯μ΄ μμ ν μλλλ κ²μ μ
μ¦νλ ν
μ€νΈλ‘ κΈ°λ₯ ν
μ€λΌκ³ νλ€.
- μ¬μ©μμ μꡬμ¬ν λͺ
μΈλ₯Ό 보면μ ν
μ€νΈ
- μ£Όλ‘ κ΅¬νλ κΈ°λ₯μ ν
μ€νΈ
- μννΈμ¨μ΄ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μ€μ
Types of BlackBox Tests
- Equivalence Partitioning Testing(λμΉ λΆν κ²μ¬) :
- μ
λ ₯ μ‘°κ±΄μ΄ μ ν¨ν κ²½μ°μ κ·Έλ μ§ μμ κ²½μ°μ μ
λ ₯ μλ£ κ°μλ₯Ό κ· λ±νκ² μ νλ κ²μ¬ κΈ°λ²
- μμ€ν
μ΄λ μμ€ν
ꡬμ±μμ λλ μννΈμ¨μ΄ νλ‘κ·Έλ¨μ μ
λ ₯κ°κ³Ό μΆλ ₯κ°μ΄ νΉμ κ·Έλ£ΉμΌλ‘ λΆλ₯λλ©°, λΆλ₯λ κ·Έλ£Ήλ΄μ κ°λ€μ΄ μμ€ν
μ μν΄ λμΌνκ² μ·¨κΈλλ€λ νΉμ±μ μ΄μ©νμ¬ μννλ κΈ°λ²
- μ μ¬ν μ
λ ₯κ°λ€μ΄ μμ€ν
μ κ±°μΉλ©΄μ μ μ¬ν λ΅λ³μ΄ λμ¨λ€λ κ²μ κ°μ νμ¬ ν
μ€νΈ
- Boundary Value Analysis(κ²½κ³κ° λΆμ) :
- μ
λ ₯ 쑰건μ μ€κ°κ°λ³΄λ€ κ²½κ³κ°μμ μ€λ₯κ° λ°μλ νλ₯ μ΄ λλ€λ μ μ μ΄μ©νμ¬ μ
λ ₯ 쑰건μ κ²½κ³κ°μ ν
μ€νΈ μΌμ΄μ€λ‘ μ μ νμ¬ κ²μ¬νλ κΈ°λ²
- Cause-Effect Graphing Testing(μμΈ-ν¨κ³Ό κ·Έλν κ²μ¬) :
κ·Έλνλ₯Ό νμ©νμ¬ μ
λ ₯ λ°μ΄ν° κ°μ κ΄κ³μ μΆλ ₯μ μν₯μ λ―ΈμΉλ μν©μ 체κ³μ μΌλ‘ λΆμν λ€μ ν¨μ©μ±μ΄ λμ ν
μ€νΈ μΌμ΄μ€λ₯Ό μ μ νμ¬ κ²μ¬νλ κΈ°λ²
- Error Guessing(μ€λ₯ μμΈ‘ κ²μ¬) :
κ³Όκ±°μ κ²½νμ΄λ νμΈμμ κ°κ°μΌλ‘ ν
μ€νΈνλ κΈ°λ²
- Comparison Testing(λΉκ΅ κ²μ¬) :
μ¬λ¬ λ²μ μ νλ‘κ·Έλ¨μ λμΌν ν
μ€νΈ μλ£λ₯Ό μ 곡νμ¬ λμΌν κ²°κ³Όκ° μΆλ ₯λλμ§ ν
μ€νΈ νλ κΈ°λ²
μ°Έκ³ ,
κΈΈλ²μμ€λ. γμ 보μ²λ¦¬κΈ°μ¬ μ€κΈ° λ¨κΈ°μμ±γ. κΈΈλ². 2023.