BDD & TDD - ChoDragon9/posts GitHub Wiki

TDD

  • ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„±
  • ν…ŒμŠ€νŠΈ μ‹€ν–‰
  • 개발 μ½”λ“œ μž‘μ„±
  • ν…ŒμŠ€νŠΈ μ‹€ν–‰ 및 반볡
  • ν…ŒμŠ€νŠΈ ν†΅κ³Όμ‹œ λ¦¬νŽ™ν† λ§

μ΄λŸ¬ν•œ μž‘μ—…λ“€μ„ λ°˜λ³΅ν•΄ 본질적으둜 ν•„μš”ν•œ μ½”λ“œλ§Œ μž‘μ„±ν•˜κ³  μ½”λ“œμ˜ 신뒰성을 λ†’μ΄λŠ” 데 포컀슀된 개발 방법둠

BDD

TDD의 단점은 μ½”λ“œ κ΄€μ μœΌλ‘œ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜μ—¬ μ½”λ“œ μˆ˜μ • μ‹œ λΆˆν•„μš”ν•œ ν…ŒμŠ€νŠΈ μ½”λ“œ μˆ˜μ •μ‚¬ν•­μ΄ λ°œμƒν•œλ‹€.

μ΄λŸ¬ν•œ 상황을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ BDD λ°©λ°₯둠이 λ‚˜μ™”λŠ” 데 μ‚¬μš©μž μ‹œλ‚˜λ¦¬μ˜€ κ΄€μ μœΌλ‘œ suiteλ₯Ό μž‘μ„±ν•œλ‹€.

μ‚¬μš©μž κ΄€μ μ—μ„œ κΈ°λŠ₯ λ‹¨μœ„λ‘œ μž‘μ„±ν•˜λ©° 개발 μ½”λ“œ λ³€κ²½μ‹œ ν…ŒμŠ€νŠΈ μ½”λ“œκ°€ λ³€κ²½λ˜μ§€ μ•Šλ„λ‘ 행동 λ‹¨μœ„λ‘œ μž‘μ„±ν•œλ‹€.

기본적으둜 ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„± μˆœμ„œλŠ” μ•„λž˜μ™€ 같이 ν•œλ‹€.

  • Feature
    • ν…ŒμŠ€νŠΈμ— λŒ€μƒμ˜ κΈ°λŠ₯/μ±…μž„μ„ λͺ…μ‹œν•œλ‹€.
    • μ‚¬μš©μž μŠ€ν† λ¦¬λ₯Ό μž‘μ„±ν•œλ‹€.
  • Scenario
    • ν…ŒμŠ€νŠΈ λͺ©μ μ— λŒ€ν•œ 상황을 μ„€λͺ…ν•œλ‹€.
    • 유즈 μΌ€μ΄μŠ€λ₯Ό μž‘μ„±ν•œλ‹€.
  • Given : μ‹œλ‚˜λ¦¬μ˜€ 진행에 ν•„μš”ν•œ 값을 μ„€μ •ν•œλ‹€.
  • When : μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μ§„ν–‰ν•˜λŠ”λ° ν•„μš”ν•œ 쑰건을 λͺ…μ‹œν•œλ‹€.
  • Then : μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μ™„λ£Œν–ˆμ„ λ•Œ 보μž₯ν•΄μ•Ό ν•˜λŠ” κ²°κ³Όλ₯Ό λͺ…μ‹œν•œλ‹€.