ݺߣ

ݺߣShare a Scribd company logo
TDD, 뭐시 중헌디
이승운
TDD
• Test Driven Development
• Clean code that works
• Test - Code - Refactoring
Pros Cons
• Pros
• 재설계 시간 감소
• 수정 시 기존 기능 동작여부 확인가능 -> 디버깅 시간 감소
• 소스 품질
• 테스트 코드 자체가 문서로서의 의미를 지님
• Cons
• 진입장벽 및 습관형성이 쉽지않음
• 개발시간 증가
• 15~35% 개발시간 증가, 결함율 40~90%감소
• http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf
Process
• Red - Green - Refactor
• 페어프로그래밍을 할 때 좋음 - Ping-pong
중한 것
• 문제를 작게 나누는 시각
• 개발 시 부담을 줄이기
• 새로운 문제, 큰 문제는 상단에 배치하고, 그 로직
으로 작은 문제들을 해결할 수 있도록 생각하기
Example
• Prime Factor ( https://github.com/mazicky/tdd-prime-
factor/tree/retry)
• 2 => 2
• 3 => 3
• 4 => 2, 2
• 6 => 2, 3
• 8 => 2,2,2
• 9 => 3,3
• …
Write a Test
• BDD Style : Behavior Driven Development
• describe : Test Suite
• it : Unit Test
Code
export default function findPrime(value) {
return [2]
}
Test
Code
Write a Test
Code
Refactor
TDD, 뭐시 중헌디
Refactor - 규칙찾기
Refactor
끝으로
• TDD Practice : http://www.cyber-dojo.org
• Concurrency/ GUI 는 힘들다.
• React: https://github.com/airbnb/enzyme
• 개발실력향상에 도움

More Related Content

TDD, 뭐시 중헌디

  • 2. TDD • Test Driven Development • Clean code that works • Test - Code - Refactoring
  • 3. Pros Cons • Pros • 재설계 시간 감소 • 수정 시 기존 기능 동작여부 확인가능 -> 디버깅 시간 감소 • 소스 품질 • 테스트 코드 자체가 문서로서의 의미를 지님 • Cons • 진입장벽 및 습관형성이 쉽지않음 • 개발시간 증가 • 15~35% 개발시간 증가, 결함율 40~90%감소 • http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf
  • 4. Process • Red - Green - Refactor • 페어프로그래밍을 할 때 좋음 - Ping-pong
  • 5. 중한 것 • 문제를 작게 나누는 시각 • 개발 시 부담을 줄이기 • 새로운 문제, 큰 문제는 상단에 배치하고, 그 로직 으로 작은 문제들을 해결할 수 있도록 생각하기
  • 6. Example • Prime Factor ( https://github.com/mazicky/tdd-prime- factor/tree/retry) • 2 => 2 • 3 => 3 • 4 => 2, 2 • 6 => 2, 3 • 8 => 2,2,2 • 9 => 3,3 • …
  • 7. Write a Test • BDD Style : Behavior Driven Development • describe : Test Suite • it : Unit Test
  • 8. Code export default function findPrime(value) { return [2] }
  • 10. Code
  • 12. Code
  • 17. 끝으로 • TDD Practice : http://www.cyber-dojo.org • Concurrency/ GUI 는 힘들다. • React: https://github.com/airbnb/enzyme • 개발실력향상에 도움