Skip to content

Latest commit

Β 

History

History
80 lines (53 loc) Β· 3.06 KB

File metadata and controls

80 lines (53 loc) Β· 3.06 KB

TDD

Reference : Clean Code By. Robert C. Martin

TDD : Test Driven Development

Table of Contents

About TDD

TDDλž€ Test Codeλ₯Ό λ¨Όμ € μž‘μ„±ν•˜κ³  κ·Έ 이후에 ν•΄λ‹Ή ν…ŒμŠ€νŠΈλ₯Ό λ§Œμ‘±μ‹œν‚€λŠ” μ‹€μ œ μ½”λ“œλ₯Ό μž‘μ„±ν•΄λ‚˜κ°€λŠ” 개발 방법쀑 ν•˜λ‚˜λ‹€.

F.I.R.S.T

κΉ¨λ—ν•œ μ½”λ“œλŠ” ν…ŒμŠ€νŠΈ μ½”λ“œ μ‘°μ°¨ 깨끗해야 ν•œλ‹€.
이λ₯Ό λ‹¬μ„±ν•˜κΈ° μœ„ν•΄ F.I.R.S.T 룰이 μ μš©λœλ‹€.

Fast

μ†λ„λŠ” λΉ λ₯΄κ²Œ
ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” ν•œλ²ˆ μž‘μ„±ν•œ ν›„ ν•œλ²ˆ λŒλ €λ΄„μœΌλ‘œμ¨ λλ‚˜μ§€ μ•ŠλŠ”λ‹€.
μœ μ§€λ³΄μˆ˜λ₯Ό ν•˜λ©° μ½”λ“œλ₯Ό κ°œμ„ ν•΄ λ‚˜κ°ˆλ•Œ μ§€μ†μ μœΌλ‘œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό λŒλ €λ΄μ•Ό ν•œλ‹€.

λΉ λ₯΄κ²Œ λŒμ•„κ°ˆ 수 μžˆλŠ” ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ§œμ•Ό ν•œλ‹€.

Independent

독립성을 μ§€λ‹Œ
μ—¬λŸ¬κ°œμ˜ ν…ŒμŠ€νŠΈκ°€ μ„œλ‘œ μ˜μ‘΄μ„±μ„ μ§€λ‹ˆλ©΄ μ•ˆλœλ‹€.
ν•œ ν…ŒμŠ€νŠΈλŠ” ν•œ κ°œλ…λ§Œ λ‹΄λ‹Ήν•˜μ—¬ ν…ŒμŠ€νŠΈ ν•˜λ„λ‘ μ½”λ“œλ₯Ό μ§œμ•Ό ν•œλ‹€. ν…ŒμŠ€νŠΈ μ½”λ“œκ°€ 독립적이지 λͺ»ν•˜κ³  μ„œλ‘œ μ˜μ‘΄μ„±μ„ μ§€λ‹Œλ‹€λ©΄ νŠΉμ • λΆ€λΆ„μ—μ„œ ν…ŒμŠ€νŠΈκ°€ μ‹€νŒ¨ν–ˆμ„ μ‹œ 결함을 μ°Ύμ•„λ‚΄κΈ°κ°€ μ–΄λ €μ›Œμ§„λ‹€.

독립성을 μ§€λ‹Œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ§œμ•Ό ν•œλ‹€.

Repeatable

반볡 κ°€λŠ₯ν•œ
ν™˜κ²½μ— 영ν–₯ λ°›μ§€ μ•ŠλŠ” ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.
ν…ŒμŠ€ν„°κ°€(ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό λŒλ €λ³΄λŠ”) 인터넷이 μ—°κ²°κ°€λŠ₯ν•œ 상황에 있던 μ•„λ‹ˆλ˜, QA ν™˜κ²½μ΄λ˜ μ‹€μ œ ν™˜κ²½μ΄λ˜ 간에 ν…ŒμŠ€νŠΈ κ°€λŠ₯ν•˜λ„λ‘ λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.

ν™˜κ²½μ— ꡬ애받지 μ•Šκ³  반볡 κ°€λŠ₯ν•œ μ½”λ“œλ₯Ό μ§œμ•Ό ν•œλ‹€.

Self-validating

자체 검증 κ°€λŠ₯ν•œ
ν…ŒμŠ€νŠΈμ˜ 결과값은 성곡(Pass) ν˜Ήμ€ μ‹€νŒ¨(Fail) 두 κ°€μ§€ μƒν™©λ§Œ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€.
Pass/Fail μ΄λΌλŠ” boolean κ²°κ³Ό 값을 λ¦¬ν„΄ν•˜λ„λ‘ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•œλ‹€. ν•œλˆˆμ— μ‹€νŒ¨μΈμ§€ 성곡인지 μ•Œ 수 μžˆλ„λ‘ ν•΄μ•Όν•˜λ©° 톡과 μ—¬λΆ€λ₯Ό κ°€λ €λ‚΄κΈ° μœ„ν•΄ 둜그 νŒŒμΌμ„ 읽게 ν•΄μ„œλŠ” μ•ˆ λœλ‹€.

ν…ŒμŠ€νŠΈ μ½”λ“œμ˜ 결과값은 성곡 μ•„λ‹ˆλ©΄ μ‹€νŒ¨κ°€ λ˜λ„λ‘ μ§œμ•Ό ν•œλ‹€.

Timely

μ μ‹œμ—
TDD μ—μ„œμ˜ ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” μ‹€μ œ μ½”λ“œλ₯Ό κ΅¬ν˜„ν•˜κΈ° 전에 λ¨Όμ € 짜게 λœλ‹€.
μ‹€μ œ μ½”λ“œ κ΅¬ν˜„λœ 후에 ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό 짜게 될 μ‹œ 어렀움을 λŠλΌλŠ” κ²½μš°κ°€ λ§Žλ‹€. λ¨Όμ € ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³  이λ₯Ό λ§Œμ‘±μ‹œν‚€λŠ” μ‹€μ œ μ½”λ“œλ₯Ό κ΅¬ν˜„ν•΄ λ‚˜κ°„λ‹€.

ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” μ μ‹œμ— μ§œμ•Ό ν•œλ‹€.

↑ return to TOC

Red Green Refactor

RGR

Red, Green, Refactor μ΄λΌλŠ” μ„Έ 단계 μ‹Έμ΄ν΄λ‘œ TDDκ°€ μ§„ν–‰λœλ‹€.

Red

Green

Refactor

↑ return to TOC