728x90
λ°˜μ‘ν˜•

1.3. ν…ŒμŠ€νŒ…μ˜ 일반적인 원리

  • 원리 1. ν…ŒμŠ€νŒ…μ€ 결함이 μ‘΄μž¬ν•¨μ„ λ°νžˆλŠ” 것 (Testing shows presence of defects)
    • 잠재적으둜 μ‘΄μž¬ν•˜λŠ” 결함 μ€„μž„
    • But, 결함이 μ—†λ‹€κ³  증λͺ…ν•  μˆ˜λŠ” μ—†μŒ
  • 원리 2. μ™„λ²½ν•œ ν…ŒμŠ€νŒ… (Exhaustive testing)은 λΆˆκ°€λŠ₯ (Exhaustive testing is impossible)
    • ν•œ ν”„λ‘œκ·Έλž¨ 내에 λ‚΄λΆ€ 쑰건이 많음
    • μž…λ ₯이 κ°€μ§ˆ 수 μžˆλŠ” λͺ¨λ“  κ°’μ˜ 쑰합이 무수히 많음
    • 이벀트 λ°œμƒμ‹œ λ°œμƒ μˆœμ„œμ— λŒ€ν•œ 쑰합도 무수히 많음
    • λ¦¬μŠ€ν¬μ— 따라 ν…ŒμŠ€νŠΈ 강도 λ†’κ²Œ μˆ˜ν–‰ -> μ‹€μ œ 완벽은 λΆˆκ°€
  • 원리 3. 개발 μ΄ˆκΈ°μ— ν…ŒμŠ€νŒ… μ‹œμž‘ (Early testing)
    • 개발의 μ‹œμž‘κ³Ό λ™μ‹œμ— ν…ŒμŠ€νŠΈλ₯Ό κ³„νšν•˜κ³  μ „λž΅μ μœΌλ‘œ μ ‘κ·Ό
    • μš”κ΅¬μ‚¬ν•­ λΆ„μ„μ„œμ™€ μ„€κ³„μ„œ λ“±μ˜ 개발 μ‚°μΆœλ¬Ό 뢄석 ν›„ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ λ„μΆœ
    • λ‹€ λ§Œλ“€κ³  ν…ŒμŠ€νŠΈ κ²°κ³Όκ°€ 엉망이 λ‚˜μ˜€λ©΄ μœ μ§€λ³΄μˆ˜ λΉ„μš©μ΄ μž₯λ‚œ μ•„λ‹ˆκ² μ₯~
  • 원리 4. 결함 집쀑 (Defect clustering)
    • λŒ€λ‹€μˆ˜μ˜ 결함듀은 μ†Œμˆ˜μ˜ νŠΉμ • λͺ¨λ“ˆμ— μ§‘μ€‘λ˜μ–΄ λ°œμƒν•˜λŠ” κ²½ν–₯을 λ³΄μž„
    • κ²°ν•¨μ˜ 집쀑은 μš΄μ˜μƒμ˜ μž₯μ• λ₯Ό 초래
      • λ³΅μž‘ν•œ ꡬ쑰의 λͺ¨λ“ˆ
      • λ‹€λ₯Έ λͺ¨λ“ˆκ³Ό λ‹€λŸ‰μ˜ μƒν˜Έμž‘μš©μ„ ν•˜λŠ” λͺ¨λ“ˆ (자꾸 ν˜ΈμΆœν•˜λ‹€ 보면 결함 λ‚˜μ˜€κΈ° 쉬움)
      • 개발 λ‚œμ΄λ„κ°€ λ†’κ±°λ‚˜ μ΅œμ‹  κΈ°μˆ μ„ μ‚¬μš©ν•œ λͺ¨λ“ˆ
      • 크기가 큰 λͺ¨λ“ˆ
      • κ²½ν—˜μ΄ λ―Έν‘ν•œ νŒ€μ—μ„œ κ°œλ°œν•œ λͺ¨λ“ˆ
      • μƒˆλ‘­κ²Œ κ°œλ°œν•œ λͺ¨λ“ˆ
  • 원리 5. μ‚΄μΆ©μ œ νŒ¨λŸ¬λ…μŠ€ (Pesticide paradox)
    • λ™μΌν•œ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ‘œ λ™μΌν•œ ν…ŒμŠ€νŠΈλ₯Ό λ°˜λ³΅ν•˜λ©΄ κ²°ν•¨μœΌλ‘œ μ°ΎκΈ° μ–΄λ €μ›Œμ§
    • 더 λ§Žμ€ 결함을 μ°ΎκΈ° μœ„ν•΄μ„œλŠ” ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μ •κΈ°μ μœΌλ‘œ λ¦¬λ·°ν•˜κ³  κ°œμ„ 
  • 원리 6. ν…ŒμŠ€νŒ…μ€ μ •ν™©(Context)에 의쑴적 (Testing is context dependent)
    • ν…ŒμŠ€νŒ…μ€ μ •ν™©(context)κ³Ό 도메인에 따라 λ‹€λ₯΄κ²Œ 진행
    • λͺ¨λ“  ν…ŒμŠ€νŠΈμ— μ μš©λ˜μ–΄μ•Ό ν•˜λŠ” 것
      • ν…ŒμŠ€νŠΈ ν”„λ‘œμ νŠΈ 기획
      • ν‘œμ€€μ μΈ κΈ°λ²•μ μš©
      • 독립적인 ν…ŒμŠ€νŠΈ ν™˜κ²½
      • 효율적/효과적 ν…ŒμŠ€νŠΈ νŒ€ 쑰직
      • 정식 λ¦¬ν¬νŒ… λ“±
  • 원리 7. 였λ₯˜-λΆ€μž¬μ˜ κΆ€λ³€ (Absence-of-errors fallacy)
    • 개발된 μ†Œν”„νŠΈμ›¨μ–΄κ°€ μ‚¬μš©μž μš”κ΅¬μˆ˜μ€€μ„ λ§Œμ‘±ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ 버그λ₯Ό μˆ˜μ •ν•˜λŠ” 것은 μ˜λ―Έκ°€ μ—†μŒ
728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

1.2 ν…ŒμŠ€νŒ…μ΄λž€ 무엇인가?

  • ν…ŒμŠ€νŒ…
    • μ‘μš© ν”„λ‘œκ·Έλž¨ λ˜λŠ” μ‹œμŠ€ν…œμ˜ λ™μž‘κ³Ό μ„±λŠ₯, μ•ˆμ •μ„±μ΄ μ‚¬μš©μžκ°€ μš”κ΅¬ν•˜λŠ” μˆ˜μ€€μ„ λ§Œμ‘±ν•˜λŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ 결함을 λ°œκ²¬ν•˜λŠ” λ©”μ»€λ‹ˆμ¦˜
      • 정상 λ™μž‘ μ—¬λΆ€ 확인
      • μ‚¬μš©μžμ˜ κΈ°λŒ€ μˆ˜μ€€κ³Ό μš”κ΅¬μ‚¬ν•­μ— 맞게 κ΅¬ν˜„λ˜κ³  λ™μž‘ν•˜λŠ”μ§€ 확인
      • 개발 ν”„λ‘œμ νŠΈμ˜ 리슀크 정보λ₯Ό μ •λŸ‰μ  수치둜 μ˜μ‚¬κ²°μ •κΆŒμžμ—κ²Œ 전달
    • 초기 개발 μ‚°μΆœλ¬Ό -> 리뷰
    • ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μž‘μ„± κ³Όμ •(결함 예방 ν™œλ™)
    • λ‹€μ–‘ν•œ ν…ŒμŠ€νŒ… ν™œλ™

 

  • ν…ŒμŠ€νŒ…μ˜ 일반적인 λͺ©μ 
    • λ‚¨μ•„μžˆλŠ” 결함 발견
    • λͺ…μ„Έ μΆ©μ‘± 확인
    • μ‚¬μš©μž 및 λΉ„μ¦ˆλ‹ˆμŠ€μ˜ μš”κ΅¬ μΆ©μ‘±
    • 결함 예방
    • ν’ˆμ§ˆ μˆ˜μ€€μ— λŒ€ν•œ μžμ‹ κ° νšλ“κ³Ό 정보 제곡
    • λΉ„μ¦ˆλ‹ˆμŠ€ 리슀크λ₯Ό κ°μ†Œμ‹œν‚€λŠ” 정보에 κ·Όκ°„ν•œ μ‘°μ–Έ 제곡
    • 개발 ν”„λ‘œμ„ΈμŠ€ 점검, 이슈 제기
    • 논리적 μ„€κ³„μ˜ κ΅¬ν˜„ 검증
    • μ‹œμŠ€ν…œκ³Ό μ†Œν”„νŠΈμ›¨μ–΄κ°€ 적절히 λ™μž‘ν•¨μ„ 확인

 

  • 관점에 λ”°λ₯Έ ν…ŒμŠ€νŒ…μ˜ λͺ©μ 
    • 개발 κ³Όμ • - 결함을 μ°Ύκ³  μˆ˜μ •ν•˜κΈ° μœ„ν•΄ κ°€λŠ₯ν•œ λ§Žμ€ μž₯μ•  상황 μž¬μ—°
    • 인수 ν…ŒμŠ€νŒ… - μ˜ˆμƒλŒ€λ‘œ μ‹œμŠ€ν…œμ΄ λ™μž‘ν•˜λŠ”μ§€ 확인, μš”κ΅¬μ‚¬ν•­ 확인
    • μ†Œν”„νŠΈμ›¨μ–΄ ν’ˆμ§ˆ - μΆœμ‹œν•˜λŠ” κ²ƒμ˜ 리슀크λ₯Ό κ΄€λ ¨μžμ—κ²Œ 전달
    • μœ μ§€λ³΄μˆ˜ ν…ŒμŠ€νŒ… - 변경에 λŒ€ν•΄ μƒˆλ‘œμš΄ κ²°ν•¨μ˜ μœ μž…μ„ 확인(반볡 ν…ŒμŠ€νŠΈ)
    • 운영 ν…ŒμŠ€νŒ… - μ‹ λ’°μ„± λ˜λŠ” κ°€μš©μ„± 같은 μ‹œμŠ€ν…œ νŠΉμ„±μ„ 평가
    • ν…ŒμŠ€νŒ…μ€ λ¬Έμ„œμ˜ 리뷰와 ν•¨κ»˜ 정적 뢄석에 μ˜ν•œ ν…ŒμŠ€νŠΈ 포함

 

λ‚˜μ€‘μ—~~

 

728x90
λ°˜μ‘ν˜•

+ Recent posts