2009-08-14 2 views
2

TDD가 테스트가 아니기 때문에 테스트 주도 개발이이 기술에 대한 불행한 이름이라는 것을 계속 듣고 있습니다. 이는 디자인에 관한 것입니다.TDD의 더 나은 이름을 생각해 낼 수 있습니까?

필자는 개인적으로 필자는 필자가 항상 사양에 대해 프로그래밍하는 방법으로 생각했기 때문에 이름에 문제가 없었습니다. 클래스 명, 메소드 이름, 주석 또는 속성에서 'test'라는 단어가 스펙을 만난 것을 확인하는 코드에 문제가 없었습니다. 테스트 프레임 워크가 나를 위해 힘든 일을하도록하기 위해 따라 왔던 대회입니다.

나는 내 접근법을 가장 독단적으로 다루지는 않지만, 먼저 내 테스트를 작성하려고 노력하지만, 종종 나는 테스트에서 랩핑하려고하는 몇 가지 추가 코드를 작성하도록 영감을 받는다. 필자는 TDD가 API 디자인의 관점에서 볼 때 매번 그렇게하지 못하는 경향이 있다는 것을 알기 쉽습니다. (필자는 테스트를 시작할 때 필연적으로 테스트되지 않은 코드를 리팩터링해야합니다.)하지만 요점은 ' 완료 될 때 모든 관심사를 테스트 하니스로 끝내면 모든 테스트를 미리 작성하지 않아도됩니다.

그래서 질문으로 돌아갑니다. TDD의 더 나은 이름은 무엇입니까? '시험'이라는 단어와 관련이없는 이름이 달라질 수 있습니까?

+0

을 묻는 해킹하지

  • "개발에 의해 구동 테스트 "? 그게 질문입니까? 아니면 모든 테스트를 먼저 쓰지 않는다고 불평하고 있습니까? 아니면 모든 코드를 작성하기 전에 모든 테스트를 작성하지 않아도되는지 묻고 있습니까? 나는 그 질문을 따를 수 없다. –

  • 답변

    8

    테스트 구동 방식 개발은 테스트 방법이 아니며, 개발 방법 (설계, 코딩 및 테스트 포함)입니다. 그렇지 않으면 개발 주도 테스트라고합니다.

    "테스트 중심 개발"이라는 구절은 개발 단계이며 "테스트 중심"은 부사입니다. 당신은 그 기간 동안 당신에게 슬픔을주는 사람에게 그것을 설명해야합니다.

    의도를 정확하게 반영하기 때문에 이름에 전혀 문제가 없습니다. 개발을 시작하기 전에 모든 테스트를 마칠 필요는 없지만 최소한 테스트를 지정해야합니다.

    +0

    전적으로 동의합니다.특히 누군가에게서 슬픔을 느끼고있는 것은 아니며, 많은 사람들이 무릎 덩어리 반응에 조금 싫증이났다. – RKitson

    +0

    문법 참조 용 +1 - 우수! – BryanH

    3

    나는 무엇을 Behavior-Driven Development (다른 것들 중에서도)을 달성하려고 시도했다고 생각합니다.

    나는 명확한 이름에 대해 신경을 쓰지 않았으며, 해석은 모두 열려 있습니다. 내 (주관적) 의견으로

    1

    , 나는 이유는 일부 사람들 때문에 개발자의 특정 유형에 개념을 설명 나쁜 경험을했다 테스트 주도 개발의 단어 '테스트'에 대한 캠페인을 시작 있다고 생각합니다.

    '테스트'라는 단어를 듣 자마자 듣기를 멈추는 개발자들이 자신의 직업이 아니라고 생각합니다. 그렇다면 왜 관심을 가져야할까요? 그러한 태도는 사람들에게 TDD의 실행을 채택해야하는 경우 분명히 해로운 것입니다. 그 문제에 대한 한 가지 해결책은 TDD의 이름을 'Test'라는 단어가 포함되지 않은 이름으로 바꾸는 것이고, 나머지는 나를 TDD라고 부릅니다.

    나는 다음과 같은 용어가 제안 적어도 본 적이 :

    • 테스트 주도 개발 (원래 용어)
    • 테스트 주도 설계
    • 예 중심 (그것은 디자인에 대한 자세한 때문에) 디자인은 코드가 작동하는 방식의 예제로 볼 수 있으므로
    • 디자인 별 (EDD의 또 다른 문구)
    • 동작 기반 디자인 (선언 된 의도가 다르고, 하지만 지금까지 대부분의 시도는 TDD와 매우 흡사 해 보였습니다. 좀 더 자세한 정보를 추가하면됩니다.)

    '디자인'은 나에게 매우 중요하지만 여전히 테스트가 가치 있다고 생각합니다. 물론 QA 테스트는 아니지만 TDD의 부산물 인 테스트 전체가 여전히 리팩토링 할 수있는 안전망을 제공합니다. 사실, Refactoring에는 단위 테스트에 대한 전체 섹션이 있습니다. Fowler는 회귀 테스트 스위트 없이는 리팩토링을 시도하는 것이 매우 위험하다고 판단했기 때문입니다.

    TDD에서 테스트가 중요하지 않다는 것을 정말로 믿는 사람이라면 누구나 입가에 돈을 넣어야하며 delete the unit tests when their code is done입니다.

    나를 위해, TDD가 의미가 있습니다. 그렇습니다. 개발 및 디자인에있어 맨 먼저 중요합니다. 그러나 테스트는 중요한 아티팩트이기도합니다.

    +1

    최근 안티 테스터와의 토론이 있었지만, 그의 주장은 너무 오래 걸린다는 것이 었습니다. 내가 코드의 작동 방식을 확인하는 방법을 묻자 그는 디버거를 열고 단계별로 설명했다. 짜릿했다. – RKitson

    +0

    그는 그, 예, 그것은 정말로 훌륭합니다 :) –

    0

    생각해 보니 "코드 별 예제"은 우리가하는 일에 가장 적합한 이름입니다. Dan North가 그렇게 부른 것 같습니다. Code By Example은 BDD의 일부입니다 (따라서 BDD는 TDD보다 크고 더 구체적입니다).

    "컨텍스트 사양"의 개념은 Scott Bellware와 같은 사람들이 상당히 유사하게 승격했습니다.

    "test"라는 단어를 사용하면이 기술을 새로운 개발자에게 전달하는 것이 어렵다는 것에 동의합니다.

    1

    나는 Test Driven Development가 훌륭하다고 생각합니다. 그것이 바로 그 것이다. 예, 디자인에 영향을줍니다. 예, 품질이 향상됩니다. 예, 전반적인 유지 보수성과 리팩터링 능력을 향상시킵니다. 네, 빠릅니다. 기타

    BDD는 다른 구체적인 사례로 생각합니다. 그러나 JUnit과 같은 도구보다 TDD의 원래 의도와 더 일치 할 수 있습니다.

    이점보다 프로세스에 대해 더 많은 것을 말하기 때문에 나쁜 이름입니까? 아마도.

    다른 아이디어 :

    • 책임 develoment
    • 테스트 첫번째 개발
    • 전체적인 develompent 우리가 그것을 호출하지 않는 이유는