Unit test

V λͺ¨λΈ

  • ν”„λ‘œμ„ΈμŠ€ 싀행이 Vλͺ¨μ–‘μœΌλ‘œ 순차적으둜 λ°œμƒν•˜λŠ” λͺ¨λΈμ΄λ‹€. 확인 및 검증 λͺ¨λΈμ΄λΌκ³ λ„ ν•œλ‹€.

  • ν”νžˆ λ§ν•˜λŠ” 폭포수 λͺ¨λΈμ˜ ν™•μž₯ν˜•μ΄λ‹€. 폭포수이되 각 개발 λ‹¨κ²Œμ— ν…ŒμŠ€νŠΈ λ‹¨κ³„μ˜ 연결을 기반으둜 ν•œλ‹€.

  • 개발 주기의 λͺ¨λ“  단일 단계에 λŒ€ν•΄μ„œ μ§μ ‘μ μœΌλ‘œ κ΄€λ ¨λœ ν…ŒμŠ€νŠΈ 단계가 μžˆλ‹€λŠ” μ˜λ―Έμ΄λ‹€.

  • Vλͺ¨λΈμ€ 각 단계에 λŒ€ν•œ ν…ŒμŠ€νŠΈλ₯Ό λ‚˜λˆ„κ³ , μ²˜μŒλΆ€ν„° μ–΄λ–»κ²Œ ν…ŒμŠ€νŠΈν•  지에 λŒ€ν•΄ κ²°μ •ν•˜λ €κ³  λ…Έλ ₯ν•œλ‹€.

    1. μš”κ΅¬μ‚¬ν•­ 뢄석 -> μ‚¬μš©μž 쀑심 => μΈμˆ˜ν…ŒμŠ€νŠΈ

    2. μ‹œμŠ€ν…œ 섀계 -> μ‹œμŠ€ν…œ 사양 κ²°μ • => μ‹œμŠ€ν…œ ν…ŒμŠ€νŠΈ

    3. μ•„ν‚€ν…μ²˜ 섀계 -> κ³ μˆ˜μ€€ 섀계 => 톡합 ν…ŒμŠ€νŠΈ

    4. λͺ¨λ“ˆ 섀계 -> μ €μˆ˜μ€€ 섀계 => λ‹¨μœ„ ν…ŒμŠ€νŠΈ

  • V λͺ¨λΈμ—μ„œλŠ” 개발 λ‹¨κ³„μ˜ ν…ŒμŠ€νŠΈκ°€ λ³‘λ ¬λ‘œ κ³„νšλœλ‹€. 그리고 μ½”λ”© λ‹¨κ³„μ—μ„œ 양면이 κ²°ν•©λœλ‹€.

  • μž₯점

    • ν”„λ‘œμ„ΈμŠ€ 방식이 맀우 κ°„λ‹¨ν•˜κΈ° λ•Œλ¬Έμ— 적용과 이해가 쉽닀.

    • λ‹¨μˆœμ„±μœΌλ‘œ 인해 관리가 더 쉽닀.

    • μ†Œκ·œλͺ¨ ν”„λ‘œμ νŠΈμ— μ ν•©ν•˜λ‹€.

  • 단점

    • 단계λ₯Ό λ˜λŒμ•„κ°€κΈ°κ°€ μ–΄λ ΅κΈ° λ•Œλ¬Έμ— 기획이 λ³€κ²½λ˜λ©΄ μ•ˆλœλ‹€. λΉ„μš©μ΄ 크닀.

    • 높은 μœ„ν—˜κ³Ό λΆˆν™•μ‹€μ„±μ΄ μžˆλ‹€.

    • μž₯κΈ° ν”„λ‘œμ νŠΈμ—λŠ” μ ν•©ν•˜μ§€ μ•Šλ‹€.

Test Matrix

  • μ†Œν”„νŠΈμ›¨μ–΄ ν…ŒμŠ€νŠΈ μ „λž΅ 쀑 ν•˜λ‚˜μ΄λ‹€. 마치 ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•œ ν…œν”Œλ¦Ώκ³Ό κ°™λ‹€. 평면도 같은 λŠλ‚Œ?

  • ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μ •μ˜ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλŠ” ν™˜κ²½μ„ κ³ λ €ν•˜μ—¬ μˆ˜ν–‰ν•˜λŠ” 방법이닀.

내적 ν’ˆμ§ˆ(ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„±λ“±)을 높이면 쒋은 이유

  • μš°λ¦¬κ°€ 일반적으둜 λ§ν•˜λŠ” ν’ˆμ§ˆμ€ 외적 ν’ˆμ§ˆμ΄λ‹€. ν•˜μ§€λ§Œ λˆˆμ— 보이지 μ•ŠλŠ” 내적 ν’ˆμ§ˆμ€ λ‹Ήμž₯에 큰 μ„±κ³Όλ₯Ό 내지 μ•ŠκΈ° λ•Œλ¬Έμ— 놓칠 λ•Œκ°€ λ§Žλ‹€.

  • 내적 ν’ˆμ§ˆμ΄ μš°μˆ˜ν•˜λ©΄ 외적 ν’ˆμ§ˆμ„ λŒμ–΄μ˜¬λ¦¬κ±°λ‚˜ λŒ€μ‘ν•˜κΈ° 쒋아진닀.

  • μœ μ§€λ³΄μˆ˜μ„±μ΄ μ˜¬λΌκ°€ 문제 상황에 λŒ€μ‘ν•˜κΈ° 쉽고 생산성을 높일 수 있고 μ†Œν”„νŠΈμ›¨μ–΄ 변경에 μš©μ΄ν•œ 상황을 μ œκ³΅ν•œλ‹€.

JUnit

  • JUnit은 μžλ™ν™” ν…ŒμŠ€νŠΈλ₯Ό μ§€μ›ν•˜λŠ” 도ꡬ이며 ν”„λ ˆμž„μ›Œν¬μ΄λ‹€.

  • λ‹¨μœ„ ν…ŒμŠ€νŠΈλΏ μ•„λ‹ˆλΌ ν†΅ν•˜λ°” ν…ŒμŠ€νŠΈ 뿐 μ•„λ‹ˆλΌ E2E ν…ŒμŠ€νŠΈ μž‘μ„±ν•˜λŠ”λ°λ„ μ‚¬μš©ν•œλ‹€. ㅏ

λ‹¨μœ„ ν…ŒμŠ€νŠΈ

  • μ˜μ–΄λ‘œ Unit Test라고 ν•œλ‹€.

  • κ°œλ°œμžκ°€ μž‘μ„±ν•œ μ½”λ“œμ˜ κ°€μž₯ μž‘μ€ λΆ€λΆ„ 즉 μœ λ‹›(Unit)이 μ˜λ„ν•œ λŒ€λ‘œ λ™μž‘ν•˜λŠ” 지에 λŒ€ν•΄ κ²€μ¦ν•˜λŠ” 것이닀.

  • μœ λ‹› ν…ŒμŠ€νŠΈλ₯Ό 기반으둜 κ²€μ¦λœ λΆ€ν’ˆμž„μ„ 보μž₯ν•  수 μžˆμœΌλ―€λ‘œ λΆ€ν’ˆμ„(μœ λ‹›Unit) μ‘°λ¦½ν•΄κ°€λ©΄μ„œ 신뒰성을 더할 수 있게 λœλ‹€.

  • ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λŠ” 보톡 μ˜ˆμƒλ˜λŠ” μž…λ ₯κ³Ό 좜λ ₯을 μ •μ˜ν•˜κ³ , ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜μ—¬ μ˜ˆμƒν™˜ 결과와 μ‹€μ œ κ²°κ³Όκ°€ μΌμΉ˜ν•˜λŠ” 지 λΉ„κ΅ν•˜λŠ” λ°©μ‹μœΌλ‘œ μ§„ν–‰ν•œλ‹€.

  • ν…ŒμŠ€νŠΈλŠ” 1차적으둜 버그λ₯Ό λ°œκ²¬ν•˜λŠ” μš©λ„λ„ μžˆμ§€λ§Œ μ½”λ“œμ— λŒ€ν•œ λͺ…세와 μ„€λͺ…μœΌλ‘œ μ‚¬μš©λ  μˆ˜λ„ μžˆλ‹€.

E2E ν…ŒμŠ€νŠΈ

  • End-to-End ν…ŒμŠ€νŠΈμ΄λ‹€. μ§μ—­ν•˜λ©΄ λμ—μ„œ λκΉŒμ§€ ν…ŒμŠ€νŠΈλ₯Ό λ§ν•œλ‹€.

  • μ†Œν”„νŠΈμ›¨μ–΄μ˜ 전체 μ‹œμŠ€ν…œμ˜ λ™μž‘μ„ κ²€μ¦ν•˜κΈ° μœ„ν•œ μ’…ν•© ν…ŒμŠ€νŠΈμ΄λ‹€.

Last updated