πŸŽ«μ†Œν”„νŠΈμ›¨μ–΄ 곡학 part21. Object-Oriented Analysis and Design

vincaΒ·2023λ…„ 1μ›” 2일
0

πŸ”„ Software engineering

λͺ©λ‘ 보기
15/17

ν…ŒμŠ€νŠΈμ˜ λͺ©μ 

  • 전톡적인 ν…ŒμŠ€νŠΈμ˜ λͺ©μ μ€ μ—λŸ¬λ₯Ό μ°Ύκ³ (Error detection) 제거(removal)ν•˜λŠ” 것이닀.

V Model

  • Test Plan을 μ§œμ„œ ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•˜λŠ” 것.

Q. μ μ ˆν•œ ν…ŒμŠ€νŠΈκ°€ μ§„ν–‰λ˜μ§€ μ•ŠμœΌλ©΄ μ–΄λ–»κ²Œ 될까?

  • κ³Όλ„ν•œ μ½”λ“œμˆ˜μ •μœΌλ‘œ μ‹€νŒ¨ν•  κ°€λŠ₯성이 컀진닀. 즉, μ μ ˆν•œ ν…ŒμŠ€νŠΈ ν”Œλžœμ€ κ°œλ°œμ„ κ°μ†Œμ‹œν‚¨λ‹€.

V&V: Validation and Verfication

White and Black Box Testing (μž…μ‚¬ μ‹œν—˜ 좜제)

- White Box Testing : ν”„λ‘œκ·Έλž¨μ˜ λ‚΄λΆ€λ₯Ό μ•„λŠ” κ°œλ°œμžκ°€ Test ν•˜λŠ” 것.

- Black Box Testing : ν”„λ‘œκ·Έλž¨μ˜ λ‚΄λΆ€λ₯Ό λͺ¨λ₯΄λŠ” 일반 μ‚¬μš©μžκ°€ Test ν•˜λŠ” 것.

λ‚΄λΆ€λ₯Ό λͺ¨λ₯΄λŠ” μ‚¬μš©μžμ—κ²Œ μ ν•©ν•œ ν…ŒμŠ€νŠΈλŠ” ACCEPTANCE TESTING 이닀.

ν…ŒμŠ€νŠΈ 주도 개발

  • 코딩보닀 λ¨Όμ € ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€.
  • λͺ¨λ“  μ½”λ“œμ— λŒ€ν•œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€.

β˜…ν…ŒμŠ€νŠΈ 주도 개발의 λ°©λ²•β˜…

  1. ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„±
  2. 이λ₯Ό 톡과 κ°€λŠ₯ν•œ μ½”λ“œ μž‘μ„±
  3. λ‹€μ‹œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό κ°œμ„ 
  4. 이λ₯Ό 톡과 κ°€λŠ₯ν•œ μ½”λ“œ μž‘μ„±
  5. ν’ˆμ§ˆμ΄ λ§Œμ‘±ν•  λ•ŒκΉŒμ§€ 반볡

    미리 양을 μ •ν•˜λŠ” 것이 μ•„λ‹ˆλΌ ν•„μš”ν•œ 만큼만 μž‘μ„±ν•˜μž.

ν…ŒμŠ€νŠΈ 주도 개발의 μž₯점

  1. 변경에 λŒ€ν•œ μžμ‹ κ°
  2. λ‚΄κ°€ 이 ν…ŒμŠ€νŠΈλ₯Ό 톡과할 수 μžˆμ„κΉŒμ— λŒ€ν•œ λ„μ „μ˜μ‹ κ°•ν™”
  3. μž…μ¦λ˜κ³  반볡적인 μžλ™ν™”λœ 검증
    λ‹¨μœ„ ν…ŒμŠ€νŠΈ ν”„λ ˆμž„ μ›Œν¬λ₯Ό μ‚¬μš©ν•œλ‹€. (Junit λ“±..)

Mocha Javascript Framework

  • JSμ—μ„œ κ°€μž₯ 많이 μ‚¬μš©ν•˜λŠ” ν…ŒμŠ€νŠΈ ν”„λ ˆμž„μ›Œν¬
  • λ°±μ—”λ“œ κ°œλ°œμžλ“€μ΄ APIλ₯Ό μž‘μ„±ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
  • test suite (μ—¬λŸ¬κ°€μ§€ κ΄€λ ¨ ν…ŒμŠ€νŠΈ μ‹œλ‚˜λ¦¬μ˜€λ“€μ„ λ¬Άμ–΄ 놓은 것)

TDD : Test Driven Development (ν…ŒμŠ€νŠΈ 주도 개발)

  • 주둜 ν’ˆμ§ˆ ν–₯상을 λͺ©μ μœΌλ‘œ μˆ˜ν–‰
  • μ‹€μ œ 무엇을 ν…ŒμŠ€νŠΈν•΄μ•Ό ν•˜λŠ”κ°€μ— λŒ€ν•œ κ³ λ―Ό ν•„μš”
  • μ΄λŸ¬ν•œ 고민에 λ§Žμ€ μ‹œκ°„κ³Ό λΉ„μš©μ΄ μ†Œλͺ¨λ¨

λ”°. 라. μ„œ ↓

BDD : Behavior Driven Development (ν–‰μœ„ 주도 개발)

  • TDDμ—μ„œ ν•œλ°œ 더 λ‚˜μ•„κ°€ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ 자체λ₯Ό μš”κ΅¬μ‚¬ν•­μ΄ λ˜λ„λ‘ ν•œλ‹€.
  • 섀계 λ‹¨κ³„μ—μ„œ λˆ„λ½λœ 뢀뢄을 μ•Œ 수 μžˆλ‹€.
  • 즉, BDDλŠ” 잘 μž‘μ„±λœ TDD라고 ν•  수 μžˆλ‹€.

Refactoring

  • 각 λ‹¨κ³„λ§ˆλ‹€ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜λ©°, μž‘μ€ κ°œμ„ μ„ μ μš©ν•˜μ—¬ κΈ°μ‘΄ μ½”λ“œμ˜ 외뢀적 ν–‰μœ„λŠ” λ³€κ²½ν•˜μ§€ μ•Šκ³  λ‚΄λΆ€λ₯Ό μž¬κ΅¬μ„±ν•˜κ±°λ‚˜ μž¬μž‘μ„±ν•˜λŠ” 체계적인 기법이닀.
  • 잘 λ¦¬νŒ©ν† λ§ 된 μ½”λ“œλŠ” μ§§κ³ , 응집도가 λ†’μœΌλ©° λͺ…ν™•ν•˜κ²Œ 보인닀.
  • μ½”λ“œ λƒ„μƒˆ λ˜λŠ” μ½”λ“œ μ•…μ·¨κ°€ λ°œμƒν•  λ•Œ μˆ˜ν–‰ν•œλ‹€.
  • νŠΉμ • μ½”λ“œκ°€ κΈΈμ–΄μ Έ 이해가 μ•ˆ κ°€λŠ” 경우, λ‚΄μš©μ΄ λ³΅μž‘ν•œ κ²½μš°λ“±. μ •ν™•ν•œ λͺ©ν‘œκ°€ μžˆμ–΄μ•Όν•œλ‹€.

Q. λ¦¬νŒ©ν† λ§μ΄ κ°€λŠ₯ν•˜λ €λ©΄ 사전에 무엇을 ν•΄μ•Όν•˜λŠ”κ°€?
β†’ TDD, BDD

주석

  • μ• μ΄ˆμ— 주석이 없어도 이해λ₯Ό ν•  수 μžˆλ„λ‘ μž‘μ„±ν•œλ‹€.
profile
뢉은 λ°° μ˜€μƒ‰ 딱닀ꡬ리 개발자 πŸ¦ƒCloud & DevOps

0개의 λŒ“κΈ€