정리필요1
TDD 자료수집
ShineWithMe
2008. 9. 5. 11:45
http://wikidocs.net/mybook/read/page?pageid=3019 책 요약
http://xper.org/LineReaderTdd/ LineReader TDD 동영상
http://www.xper.org/wiki/xp/TestDrivenDevelopment?action=show&redirect=TDD
http://www.agiledata.org/essays/tdd.html#Summary
셋째날
테스트 주도 개발(TDD)
- "살리고" 철학(살리고 철학은 TDD의 철학적 근간으로, 작동하는 소프트웨어에서 작동하는 소프트웨어로 상태전이하는 것이 가장 효율적이라는 철학입니다)
- 살리고 철학 실습
- 테스팅의 필요성
- Computer Aided Testing
- 자동화된 단위 테스팅
- 자동화된 단위 테스팅 실습
- TDD 기초
- TDD 기초 실습
- TDD 응용 (Mocking & Legacy code)
- TDD 응용 실습
- TDD anti-patterns
Exploratory Testing(탐험적 테스팅)
- Exploratory Testing 실습(코드 레벨)
http://xper.org/LineReaderTdd/ LineReader TDD 동영상
http://www.xper.org/wiki/xp/TestDrivenDevelopment?action=show&redirect=TDD
http://www.agiledata.org/essays/tdd.html#Summary
셋째날
테스트 주도 개발(TDD)
- "살리고" 철학(살리고 철학은 TDD의 철학적 근간으로, 작동하는 소프트웨어에서 작동하는 소프트웨어로 상태전이하는 것이 가장 효율적이라는 철학입니다)
- 살리고 철학 실습
- 테스팅의 필요성
- Computer Aided Testing
- 자동화된 단위 테스팅
- 자동화된 단위 테스팅 실습
- TDD 기초
- TDD 기초 실습
- TDD 응용 (Mocking & Legacy code)
- TDD 응용 실습
- TDD anti-patterns
Exploratory Testing(탐험적 테스팅)
- Exploratory Testing 실습(코드 레벨)
[질문] Agile의 TDD |
글쓴이 : 최피디 날짜 : 08-08-16 13:49 조회 : 444 |
본인은 온라인게임 서버를 개발하는 과정에서 unit test를 활용하여 테스팅의 효용성을 체험적으로 알게 된 후 Testing 분야에 관심을 갖고 공부를 시작하고 있는 초심자입니다. 최근에 Ron Patton의 Software Testing 2nd ed을 읽으면서, 제가 해왔던 테스트 방식 TDD(Test Driven Development)에 대한 우려가 느껴져서 제가 느낀 점이 과연 그러한지 검증해보고 싶어 문의드리오니 부디 너그럽게 초보자를 지도해주시기 부탁드립니다. 저는 TDD를 책을 통해서 배우게 되었습니다. 켄트 백의 테스트 주도 개발이 그 책인데요. 이 책을 보신 분들은 잘 아시겠지만, 이 책은 소프트웨어을 만들어가는데 지극히 경험적인 접근을 하고 있습니다. 다시말하자면, 설계나 계획에 의한 테스트케이스 도출이 아니라, 현재 상황의 가장 중요한 개발 이슈들이 무엇인가를 목록으로 만들어서 하나씩 삭제시켜가는 방식이었습니다. 테스팅에 대해서 너무 설계과정 없이 무작정, 감으로만 테스트케이스를 만들어 가게 되는데요. 이렇게 유닛테스트 케이스를 만들어가는 것에 문제점은 없는지, 전통적인 테스팅 그룹에서는 TDD에 대해서 어떤 식으로 평가하는 지 궁금합니다. 감사드립니다. |
|
|
|
|
|
|
|
http://terra.springnote.com/pages/1581586 http://jangxyz.springnote.com/pages/1416448?print=1 http://me2day.net/tag/tdd http://cespc1.kumoh.ac.kr/~juyoon/lecture/java/note08/Java08_XP.pdf Test-Driven Development eXtreme Programming 테스트 주도 개발 What is TDD? 목표 소프트웨어에 대한 테스트 프로그램을 먼저 (또 는 동시에) 개발 반복적 과정 (iterative process) Why TDD? 빠르게 오류 없는 소프트웨어 개발 • 개발된부분에대한짧은테스트로빠른피드백가능 Why not TDD? GUI, Relational DB 복잡한 I/O 로 인해 분리된 단위 테스트가 어려운 경우 eXtreme Programming 개발 과정 다음 과정을 반복한다. Add a test • 개발의시작은테스트를만드는것부터 ! • 요구사항에대한명확한이해가필요 Use Case, Scenario Run all tests and see the new one fail • 새로운테스트는새로운코드를요구한다 ! sanity check Write some code • 테스트를만족하는코드작성 • 테스트에없는새로운기능을추가하면안된다 ! Run the automated tests and see them succeed • 새로운코드가테스트를통과하는지체크 Refactor code • 중복또는비효율적인부분을제거하고테스트통과 eXtreme Programming 테스트 프로그램 작성 Black-box test 개방된 인터페이스만 사용하여 기능 테스트 내부 변수를 바꾸거나 private 변수를 테스트하지 않 는다. Software modularity 유지 별도의 프로젝트(또는 모듈)로 작성 최종 코드에 가해질 수 있는 부수 효과 제거 테스트 종류 Unit test Integration test Acceptance test eXtreme Programming 테스트 프로그램 작성 권장 사항 test로 시작하는 메소드 사용 테스트 코드 내용 • 테스트에필요한모든조건과상황을준비설정 • 테스트대상메소드호출 • 테스트대상메소드가원하는대로동작함을검증 • 실행이끝나고다른코드에영향이없게정리작업 http://en.wikipedia.org/wiki/Test-driven_development 역자나 저자나 조금 거만한 거 아냐? 라는 것이었다. 그래서 책을 읽고 싶지는 않았으나, 돈도 아깝고 이왕 시작했으니 봐야했다. 하지만, 내 그런 기분도 잠시였다. Kent Beck이라는 저자는 글을 읽는 내내 웃을 수 있게 해주었다. 모든 작업을 간단 간단히 쪼개서 하는 것은 이미 많은 개발자들이 해왔던 바일 것이다. 조금 개발하고 디버그 하고, 조금 개발하고 디버그 하고.. 머리 속에 알게 모르게 초록 막대, 빨강 막대를 생각하고 있었을 것이다. 다만, 그것을 드러내서 많은 사람이 인식하게 했다는 점이 이 TDD의가 아닐까?라는 생각을 해본다. 그리고 여기서 말하는 사고의 크기들이 너무 큼직 큼직했다는 점이 현재까지의 문제점이었다. 이전부터 TDD의 이점에 대한 많은 이야기를 들어왔으나 내 스스로의 기술이 미비한지라 기술을 익히느라 미쳐 책을 읽지 못했으나 시간이 나서 잠깐, 아니 어쩌면 길게 읽어보았다. JUnit을 처음으로 써봤을 때 매우 편리하다고 생각했었는데 이 책을 읽음으로써 그 전부터 암묵적으로 행하고 있던, 테스트-빨강-초록의 그 단계들을 명시적으로 드러내서 하게 되는 계기가 되었다. 물론 저자처럼 눈에 불을 켜고 심각할 정도로 테스트를 먼저 할 것은 아닐거라는 것을 스스로 잘 알고 있긴 하지만, 상당히 즐거운 논조와 즐거운 프로그래밍을 하는 저자의 모습처럼, 나도 저자처럼 즐겁게 생활하는 모습을 떠올리며 이것저것 많은 생각을 하게 되었다. 아키텍쳐(static)를 만드는 다양한 프레임워크들과 Growing이라는 개념을 적용한 TDD(dynamic)의 개념들에 대해 생각해 보다 보니, 이 책의 가치가 더욱 높아진다. 게다가 프로그램을 키워가는 식으로 애정을 가지고 보는 것은 이 얼마나 좋은 것인가? 오랜만에 보석같은 책을 읽게 되어서 기분이 좋았다. 그리고, 역자분께서는 꼼꼼하게 뒤에 혹여나 이해를 못할까봐 부록으로 직접 잘 안되는 부분에 대한 이야기까지 적어 두셨다. 매우 감사할 노릇이다. 처음부분에서 좀 겁을 먹었지만, 어쨌든 우리와 우리의 프로그램을 발전시키는 건 그러한 [[[ 두 려 움 ]]]이 아닐런지.. [장점] 1. TDD가 무엇인지 직접 보여준다. 2. 스트레스에서 벗어날 수 있는 방법을 보여준다. 3. 웃기다. [단점] 1. 도입부가 거창하고 거만해서 겁먹게 한다. 2. 중복되는 내용이 있다. 3. 저자가 생각하는 낙관적인 개념에서 설명하는 경우가 있다. |