Your SlideShare is downloading. ×
E1_Deview nhn애자일개발 tdd_질문답
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

E1_Deview nhn애자일개발 tdd_질문답

2,673
views

Published on


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,673
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
78
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. “NHN&TDD”
    NHN 생산성혁신랩
    정상혁 과장, 차민창 과장
  • 2. 얘기꺼리
    NHN 개발자 정말 TDD하고 있나요?
    NHN에서 TDD하면 팀장이 좋아하나요?
    NHN에서는 이런 코드도 테스트하나요?
    NHN에서테스트 커버리지 측정 후 어떤 일이 일어났나요?
    골라보세요!
  • 3. NHN 개발자 정말 TDD하고 있나요?
  • 4. 현황
    TDD를 잘 활용하는 개발자가 많은 것은 아님
    코드 작성 후 테스트 코드를 작성하는 개발자도 많음
    전반적으로 TDD에 대한 개발자들의 인식은 긍정적이고 매우 적극적임
  • 5. 활동
    TDD를 포함한 품질 개선 활동을 장려하고 확산하는 지원 조직 ‘생산성혁신랩’ 신설
    교육(Live Coding), 기술지원(짝 프로그래밍), 프로젝트 파견(테스트 인프라 구축) 등을 통해 현장지원 수행
  • 6. 결과
    TDD에 대한 다양한 지원으로 현업에서도 TDD를 수행하는 개발자가 점점 증가하는 추세
    새롭게 TDD를 수행하는 개발자는 해당 조직 내에서 Seed 역할
    최근 TDD를 넘어 ATDD도 확산
  • 7. NHN에서 TDD하면 팀장이 좋아하나요?
  • 8. 현황
    전사적 품질 활동(Quality Practice, 줄여서 QP) 도입 전/후가 다름
    도입 전, 팀장의 성향에 따라 TDD활동에 대한 시각이 엇갈림
    도입 후, 인식의 변화로 긍정적인 시각의 팀장 증가
  • 9. 활동
    2009년 전사적 품질활동 본격적으로 도입
    여러 품질활동 중 ‘테스트 자동화’ 를 특별히 강조
    품질활동을 통해 산출 된 수치 및 정성적 평가가 성과로 연결
  • 10. 결과
    TDD 결과로 서비스의 품질과 팀의 성과에 긍정적인 작용을 함
    팀장이 인정하지 않더라도 개발자가 TDD를 해야 한다고 주장할 수 있는 강력한 근거가 생김
  • 11. NHN에서는 이런 코드도 테스트하나요?
  • 12. 현황
    NHN내의 개발자 사이에서 테스트 작성범위에 대한 논쟁이 있음
    테스트 커버리지 100% 달성해야 하는가?
    Mock 어디까지 사용해야 하는가?
    Action(혹은 Controller) 테스트 해야 하는가?
  • 13. 현황(Cont`) - 예시
    public void joinToCafebook(Cafebook book,
    Article relatedArticle, CafeUsercurrentUser) {
    cafeBookDAO.insert(book);
    articleDAO.insert(relatedArticle);
    cafeUserDAO.insert(currentUser);
    }
    이런 코드도 Mock을 이용해서 단위 테스트 해야 하나?
    * 위 예는 실제 서비스 코드와 유사한 가상코드입니다.
  • 14. 활동
    각 서비스 별 코드리뷰 혹은 단체 토론 교육을 통해 실제 서비스 상황 중심으로 테스트에 관한 심층적 논의
    논의를 하다 보면 아래 단어가 자주 등장
    ROI
    유지보수성
    통합테스트,Acceptance Test
    상태검증, 행위검증, Mock
  • 15. 결과
    아직 전사적으로 뚜렷한 합의점은 찾지 못한 상태
    ‘서비스의 품질을 향상시킨다’라는 관점을 견지하며 지속적으로 고민하고 있는 상황
  • 16. NHN에서테스트 커버리지 측정 후 어떤 일이 일어났나요?
  • 17. 현황
    품질활동을 시작하며 각 서비스 별 테스트 커버리지 수치를 측정
    해당 수치는 서비스 품질의 대표성을 갖기 때문에 해당 수치를 보며 품질향상에 대한 의욕이 고취되는 개발자도 있음
    반면 서비스의 품질을 높이려는 본래 의도와는 달리 테스트 커버리지 수치만 올리려는 개발자도 있음
  • 18. 활동
    단순 수치의 달성이 아닌 품질향상이라는 본질적 의미를 반복적으로 강조
    정기적으로 서비스 별 품질활동 상황을 확인
    생산성혁신랩의지원 활동으로 현장에서는 서비스 품질 향상에 더욱 집중할 수 있게 함
    예)품질활동 제도 정비, 도구 지원및 개선 등
  • 19. 결과
    더 좋은 테스트 혹은 효과적인 테스트에 대한 개발자의 관심이 커짐
    품질향상에 집중함으로 인해 높은 커버리지를 달성한 서비스는 자긍심을 가짐
  • 20. 결과(Cont`)
    반복되는 강조에도 여전히 본질인 품질에 집중하는 개발자와 그렇지 않은 개발자로 나뉨
    높은 테스트 커버리지 수치가 품질을 보장하지 않음
    수치는 품질의 부산물

×