특집

[2012 기획/SW품질] MS∙NHN “우린 이렇게 품질관리 한다”

심재석 기자
[기획/SW 품질이 국가 경쟁력이다] ③ SW 품질 관리 성공사례

최근 스마트 혁명과 함께 소프트웨어의 중요성이 부각되고 있다. 정부와 기업 모두 앞으로의 IT 경쟁력은 SW의 역량에 달려있다는 점에 동의하고 있다. 이 때문에 소프트웨어 인력을 확보하고, SW 업체의 경쟁력을 높이기 위한 다양한 노력이 진행되고 있다.

하지만 국내 SW 기술자들의 역량이 부족한 것은 아니다. 한국 개발자들과 함께 일을 해 본 외국 업체들은 대부분 ‘원더풀(Wonderful)’을 연발한다. 해외에 진출한 국내 개발자들은 여러 가지 능력에서 높은 점수를 받고 있다.

우리에게 부족한 것은 SW 능력이 아니라 SW 품질이다. 새롭고 훌륭한 기능의 SW를 개발하는 것은 뒤지지 않음에도 품질이 상대적으로 부족하기 때문에 해외 시장에서 고전하고 있다. 이는 SW 품질에 대한 인식이 낮고, 이에 대한 프로세스가 마련돼 있지 않기 때문이다.

이에 마이크로소프트와 NHN의 사례를 통해 SW 품질보증(QA) 활동의 중요성 및 효과를 살펴본다.

◆마이크로소프트, 개발자와 테스터가 1대 1 = 마이크로소프트는 SW 개발자와 테스터의 비율이 대략 1대 1이인 것으로 유명하다. 신제품 개발이나 업그레이드 못지 않게 SW 테스팅에 사내 자원을 투자한다는 것이다.

실제로 MS는 윈도7을 개발할 때 750만개 이상의 테스트 케이스를 만들었으며, 12만5000 개의 랩 테스트 장비가 있는 것으로 알려져 있다. 이를 통해 연간 1500만개의 결함을 발견할 수 있었다.

MS 테스팅 조직은 프로젝트팀 별로 테스트 디렉터 밑에 2~3명의 테스트 매니저가 있으며, 매니저마다 4~16명의 테스트 담당자를 두고 있다. 테스터들은 전산, 전자공학, 수학, 기타 공학, 기타 자연과학 계열 졸업자가 대부분이다.

테스팅 리더십은 ▲테스트 리더십 팀 ▲엔지니어링 엑설런트 ▲테스트 아키텍트 그룹으로 구성돼 있다. 테스트 리더십팀은 모든 제품라인의 디렉터들이며, 비전을 주도한다. 엔지니어링 엑설런트는 선임 테스터 리더이며 내부 교육 및 컨설팅을 담당한다. 테스트 아키텍트 그룹은 최고 기술 기여자로, 기술적 리뷰 및 핵심 주도권을 진두지휘한다.

개발팀과 테스팅팀은 한 프로젝트에서 동등한 파트너이면서 독립적으로 존재한다.

MS의 특징은 전 세계에 테스터들이 포진하고 있다는 점이다. 미국에서 낮에 개발된 기능은 정반대의 시차를 가진 나라의 테스터들이 개발자들이 자고 있는 동안 테스트해 그 결과를 개발자에게 보낸다.

◆NHN, 독자적 품질 프로세스를 구현 = NHN이 연간 개발하는 코드라인은 약 4200만 라인이다. 이는 A4용지로 80~90km에 달할 정도의 방대한 분량이다. 개발 분량이 많기 때문에 버그(오류)도 많이 나온다. 버그는 약 500라인당 하나씩 나오는데, 연간으로 계산하면 약 8만개의 버그가 NHN의 소스코드에서 나옵니다.

NHN은 이런 문제를 해결하기 위해 QP(quality practice), 단계적 빌드, 반점개(반복∙점진개발) 등의 SW 품질 프로세스를 마련했다. QP는 낮은 코드 완성도를 초기부터 높이기 위한 활동이며, 단계적 빌드는 느린 통합, 느린 피드백 문제에 대한 대책이다. 반점개는 잦은 요구사항 변경, 환경변화, 느린 피드백, 프로젝트 가시성 저하 문제를 해결하기 위한 방안이다.

이 같은 활동을 통해 NHN은 소스코드 가독성이 향상됐고, 코드리뷰시 코드개선에 대한 의견 공유가 가능해졌다. 일부 개발자들의 잘못된 코딩습관을 고쳤고, 레거시 코드 수정시, 리그레션 테스트로 장애를 예방했다. 버그를 사전에 예방했고, 테스트 코드작성이 용이해졌다.

코드커버리지의 경우 2009년 초반만해도 25%에 불과했던 것이 현재는 52%이며, 코드 콘벤션은 20%에서 75%로 증가했다. 장애건수도 2009년 초반에 비해 4분의 1로 줄었고, 장애시간 역시 2000시간에서 200시간 이하로 대폭 줄었다.

김정민 NHN 포털개발센터장은 ▲전사차원의 후원 ▲조직장의 리더십 ▲공감대형성(Consensus) ▲커뮤니케이션(Flat communication) 채널운영 ▲전담지원조직(Coach) 운영 ▲동기부여 ▲작은 성공의 공유 및 포상을 통해변화확산/전파 ▲자발적으로 조직 내변화 주도하고 전파할 수 있는 ‘겨자씨’ 양성 등을 통해 성공적으로 QA 프로세스가 자리잡았다고 설명했다.

<심재석 기자>sjs@ddaily.co.kr
심재석 기자
webmaster@ddaily.co.kr
기자의 전체기사 보기 기자의 전체기사 보기
디지털데일리가 직접 편집한 뉴스 채널