--- id: P-REINFORCE-AUTO-WIKI-DEV-008 category: Unified confidence_score: 0.95 tags: [development, testing-strategy, testability, tdd, automated-testing, quality-assurance, p-reinforce] last_reinforced: 2026-05-01 --- # [[Testing Strategy|Testing Strategy]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > "μ½”λ“œμ˜ μ˜λ„λ₯Ό λͺ…μ„Έν™”(Documentation)ν•˜κ³ , 변경에 λŒ€ν•œ 즉각적인 νšŒκ·€(Regression) 방지망을 κ΅¬μΆ•ν•˜μ—¬ 지속적인 배포와 λ¦¬νŒ©ν† λ§μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” ν’ˆμ§ˆμ˜ μ΄ˆμ„." ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) ν…ŒμŠ€νŠΈ μ „λž΅μ€ λ‹¨μˆœν•œ 버그 탐지λ₯Ό λ„˜μ–΄ μ„€κ³„μ˜ 무결성과 개발 속도λ₯Ό 보μž₯ν•˜λŠ” 핡심 ν™œλ™μž…λ‹ˆλ‹€. 1. **ν…ŒμŠ€νŠΈ κ°€λŠ₯μ„± (Testability)**: * **섀계적 μ ‘κ·Ό**: μ½”λ“œκ°€ μ‰½κ²Œ ν…ŒμŠ€νŠΈλ  수 μžˆλ„λ‘ μ˜μ‘΄μ„±μ„ μ£Όμž…(DI)λ°›κ³ , μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 μ™ΈλΆ€ λͺ¨λ“ˆμ„ 격리(Mocking)ν•©λ‹ˆλ‹€. 정적 λ©”μ„œλ“œλ‚˜ μ‹±κΈ€ν†€μ˜ λ‚¨μš©μ€ ν…ŒμŠ€νŠΈ κ°€λŠ₯성을 μ €ν•΄ν•©λ‹ˆλ‹€. * **결정둠적 ν…ŒμŠ€νŠΈ**: ν…ŒμŠ€νŠΈλŠ” ν™˜κ²½μ΄λ‚˜ μ‹€ν–‰ μˆœμ„œμ— 영ν–₯을 λ°›μ§€ μ•Šκ³  항상 λ™μΌν•œ κ²°κ³Όλ₯Ό λ‚΄μ•Ό ν•©λ‹ˆλ‹€. 2. **Test-Driven Development (TDD**: * μ‹€νŒ¨ν•˜λŠ” ν…ŒμŠ€νŠΈλ₯Ό λ¨Όμ € μž‘μ„±(Red) -> κΈ°λŠ₯을 κ΅¬ν˜„(Green) -> μ½”λ“œλ₯Ό κ°œμ„ (Refactor)ν•˜λŠ” 사이클을 톡해 ν…ŒμŠ€νŠΈκ°€ μ½”λ“œμ˜ 섀계λ₯Ό μ£Όλ„ν•˜κ²Œ λ§Œλ“­λ‹ˆλ‹€. 3. **리뷰 λ‹¨κ³„μ—μ„œμ˜ ν…ŒμŠ€νŠΈ**: * **ν…ŒμŠ€νŠΈ μ½”λ“œ μš°μ„  리뷰**: ν…ŒμŠ€νŠΈλ₯Ό λ¨Όμ € 읽으면 ν•΄λ‹Ή κΈ°λŠ₯의 μœ μ¦ˆμΌ€μ΄μŠ€μ™€ μ˜λ„λ₯Ό 더 λͺ…ν™•νžˆ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. * **병합 차단 원칙**: μƒˆλ‘œμš΄ κΈ°λŠ₯μ΄λ‚˜ 버그 μˆ˜μ •μ€ λ°˜λ“œμ‹œ κ΄€λ ¨ ν…ŒμŠ€νŠΈλ₯Ό 포함해야 ν•˜λ©°, ν…ŒμŠ€νŠΈ λΆ€μž¬λŠ” λ¨Έμ§€λ₯Ό μ°¨λ‹¨ν•˜λŠ” μ€‘λŒ€ν•œ μ‚¬μœ μž…λ‹ˆλ‹€. 4. **μ—£μ§€ μΌ€μ΄μŠ€ 및 μ‹€νŒ¨ 경둜**: * 정상 λ™μž‘λΏλ§Œ μ•„λ‹ˆλΌ Null μž…λ ₯, 빈 λ°°μ—΄, μœ νš¨ν•˜μ§€ μ•Šμ€ 데이터 νƒ€μž… λ“± λ‹€μ–‘ν•œ μ‹€νŒ¨ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό ν¬κ΄„μ μœΌλ‘œ κ²€μ¦ν•©λ‹ˆλ‹€. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **μ»€λ²„λ¦¬μ§€μ˜ 함정**: 100% ν…ŒμŠ€νŠΈ μ»€λ²„λ¦¬μ§€λΌλŠ” μˆ˜μΉ˜μ— λ§€λͺ°λ˜λ©΄ 의미 μ—†λŠ” ν…ŒμŠ€νŠΈ μž‘μ„±μ— μ‹œκ°„μ„ λ‚­λΉ„ν•˜κ²Œ λ©λ‹ˆλ‹€. μˆ˜μΉ˜λ³΄λ‹€ 'μ€‘μš”ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 μΆ©λΆ„νžˆ 보호되고 μžˆλŠ”κ°€'λΌλŠ” 질적 μ§€ν‘œκ°€ μš°μ„ λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. - **μœ μ§€λ³΄μˆ˜ λΉ„μš©**: ν…ŒμŠ€νŠΈ μ½”λ“œ μ—­μ‹œ 관리 λŒ€μƒμΈ λΆ€μ±„μž…λ‹ˆλ‹€. κ³Όλ„ν•˜κ²Œ λ³΅μž‘ν•œ ν…ŒμŠ€νŠΈ λ‘œμ§μ΄λ‚˜ λΆˆν•„μš”ν•œ κ΅¬ν˜„ μ„ΈλΆ€ 사항에 κ²°ν•©λœ ν…ŒμŠ€νŠΈλŠ” λ¦¬νŒ©ν† λ§μ„ λ°©ν•΄ν•  수 μžˆμœΌλ―€λ‘œ, ν…ŒμŠ€νŠΈ 자체의 ν’ˆμ§ˆκ³Ό λ‹¨μˆœμ„±λ„ μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€. ## πŸ”— 지식 μ—°κ²° (Graph) - [[Automated Quality & Review|Automated Quality & Review]]: ν…ŒμŠ€νŠΈκ°€ μžλ™μœΌλ‘œ μ‹€ν–‰λ˜λŠ” ν™˜κ²½. - [[Dependency Injection (DI)|Dependency Injection (DI]]: ν…ŒμŠ€νŠΈ κ°€λŠ₯성을 λ†’μ΄λŠ” 핡심 기술. - [[CI-CD Pipeline|CI-CD Pipeline]]: ν…ŒμŠ€νŠΈ 결과에 따라 병합 μ—¬λΆ€λ₯Ό κ²°μ •ν•˜λŠ” μ‹œμŠ€ν…œ. - [[Refactoring|Refactoring]]: ν…ŒμŠ€νŠΈλΌλŠ” μ•ˆμ „λ§μ΄ μžˆμ„ λ•Œ λΉ„λ‘œμ†Œ κ°€λŠ₯ν•΄μ§€λŠ” ν™œλ™. - Mocking and Test Doubles: μ™ΈλΆ€ μ˜μ‘΄μ„± 격리 기법. ---