소프트웨어 테스트의 중요성에 대한 각성

소프트웨어 개발의 핵심 자원은 바로 사람입니다. 어떤 자격을 갖춘 사람들이, 어떤 식으로 적절하게 배치되는가에 따라서 프로젝트의 성패가 좌우됩니다.
 
그러나 국내의 소프트웨어 프로젝트들을 보면, 시작부터 실패의 운명을 재촉하는 경우가 많습니다. 그 이유는 비전문가에 의해 일정, 예산 등에 대한 부적절한 결정이 이루어지고, 또한 부적절한 인력이 배정되어 비합리적인 방식으로 프로젝트가 진행되는 경우가 빈번하기 때문입니다.
 
프로젝트 팀에는 프로젝트 매니저, 아키텍트, 개발자, 테스트 매니저 등 여러 핵심 역할들이 필요합니다. 그런데 그 중에서도 현실에서 가장 간과되는 역할을 꼽는다면 그것은 바로 아키텍트와 테스트 매니저일 것입니다. 아키텍트는 소프트웨어의 (전체 구조를 결정하는) 아키텍처 디자인을 담당하는데 아키텍트에 대해서는 다른 포스트를 통해 살펴보기로 하고, 이번 포스트에서는 테스트 분야를 위주로 언급해보죠.
 
소프트웨어 품질을 담당하는 테스트 매니저(또는 테스트 리드)는 테스터와 함께, 소프트웨어 개발의 라이프사이클 동안 테스트를 계획, 실행하면서 디버깅에 기여합니다. 소프트웨어 라이프사이클과 테스트들은 다음과 같습니다.
일반적으로 소프트웨어 라이프사이클은 요구사항, 분석, 디자인, 구현의 순으로 진행되며(필요한 경우 iteration됨), 테스트는 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트의 순으로 진행됩니다.
   
 
- 단위 테스트: 작은 소프트웨어 단위(컴포넌트 또는 모듈)을 테스트하는 것이며, 일반적으로 개발자 자신에 의해 행해집니다. 하지만 현실에서는 시간 부족을 이유로 이 단계가 흔히 생략되는 경우가 많은데, 버그 없는 소프트웨어를 위해 이 단계는 아주 중요한 부분이므로 생략되면 곤란합니다.
- 통합 테스트: 통합된 컴포넌트 또는 모듈 사이의 인터페이스 및 상호작용을 테스트하는 것입니다.
- 시스템 테스트: 통합된 시스템이 기능 수행을 정상적으로 하는 지를 테스트하는 것입니다.
- 인수 테스트: 일반적으로 엔드유저, 고객, 클라이언트 등에 의해 행해지며, 만들어진 제품을 수용할 것인지 말 지를 결정하는 테스트입니다.
 
   
각각의 테스트 단계에는 적합한 방법론, 기법, 도구들이 있으며 목표 제품에 적합한 수준으로 계획되고 수행되고 조정되어야 합니다.
 
소프트웨어의 품질은 곧 테스트에 의해 결정됩니다. 하지만 국내 업계를 보면, 많은 경영진들이 품질을 강조하면서도 정작 테스트 전문인력과 환경에 대한 투자는 상당히 빈약함을 알 수 있습니다. 실제로 소프트웨어 제품을 판매하여 수십억 원의 매출을 올리면서도 전문적인 테스트 매니저 한 사람 없이 주먹구구로 테스트를 하고 있는 업체도 있습니다. 또한 핵심 소프트웨어를 개발한다고 하면서 개발자 100명당 테스트 관련 인력이 5명조차 안 되는 대기업도 있습니다.
 
이런 모든 것들은 소프트웨어 품질에 대한 무지 또는 낙관에서 비롯된 것입니다. 인간의 멘탈 작업에 의해 만들어지는 소프트웨어의 본질적 특성상, 잠재된 버그가 많을 수 밖에 없습니다. 그리고 그것을 효과적으로 제거하기 위해서 테스트 프로세스가 반드시 필요하며, 실제 그것은 코딩 이상의 리소스가 필요한 업무입니다. 하지만 업계를 보면, 테스트의 중요성을 제대로 이해하고 실천하는 경영자가 거의 없음을 알 수 있습니다. 대오각성이 필요한 부분이라고 할 수 있습니다. 
   
  참고: 소프트웨어로 인한 업무 중단 사례들 (소프트웨어 테스팅 부족이 주요 원인)

[매일경제] 재정 17조원 엉터리 계산 주범은?  
[연합뉴스] 인터넷서점 예스24 사이트 잇따른 장애
[연합뉴스] 교통카드.전용차로.BMS.홍보 `총체적 부실'
[디지털타임스] 행자부 전산망도 `다운`
[연합뉴스] 전산사고로 체면구긴 '토종은행'
[노컷뉴스] 기업은행 전산장애 인한 전국 지점 업무마비
 
   
이러한 국내 현실에서, 이번에 아시아 최대 규모로 전세계 각국의 소프트웨어 테스트 전문가들이 참석하는 ‘ASTA 국제 소프트웨어 테스팅 컨퍼런스’가 10월 8일에 개최된다고 합니다.
 
[신청 페이지] 2007 ASTA 국제 소프트웨어 테스팅 컨퍼런스

이번 행사는, 지난 7월에 P캠프를 함께 한 적이 있는 STEN에서 추진하는 것입니다. 신청 날짜가 얼마 남지 않았습니다. 테스트 업무 종사자들이 많이 참석했으면 좋겠고, 또한 회사 차원에서 관련 업무에 종사하는 직원들이 참여할 수 있도록 지원을 아끼지 않았으면 좋겠습니다. 테스트 관련 전문가가 많이 부족한 업계 현실에서, 전문가의 강의를 듣고 함께 교류할 수 있는 기회는 흔치 않으니까요. 회사의 허락을 받기 어려운 경우 이 글을 그룹웨어 게시판에 띄워서 공감대를 형성해 보아도 좋지 않을까요? ^^
 
마지막으로, 소프트웨어 테스트에 대한 서적도 하나 추천해 봅니다. 나온 지 몇 년 되었습니다만, 테스터뿐만 아니라 개발자, 프로젝트 매니저들도 한번쯤 봐두어야 하는 책입니다.
 
[서적] 소프트웨어 테스팅 법칙 293가지 

소프트웨어 테스트는 개발의 중요한 요소이며, 우리는 그것을 충분한 리소스와 시간과 애정을 갖고서 행해야 합니다. 현실적인 여건상 그렇게 할 수 없다고요? 그런 핑계와 변명들이 한국 소프트웨어 산업을 현재의 위치에 이르게 했습니다. 이제는 변해야 할 때가 되지 않았나요?
 
지금은 한국 소프트웨어산업에 변화 이상의 파괴적인 변혁이 필요한 시점입니다.
스마트플레이스의 글을 편리하게 구독하세요. 한RSS 추가 구글추가
크리에이티브 커먼즈 라이센스
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

트랙백 (6) | 덧글 (22)
트랙백 주소: http://www.smartplace.kr/trackback_post_225.aspx
스마트플레이스의 트랙백은 스팸방지를 위해 관리자 승인 후 등록됩니다.
Alones world 2007-09-12 09:34:10
[테스트 이야기-#1] 누가 테스트 해야 하는가?
아래 위키에서 최신 내용을 볼 수 있습니다. : in my wiki: 누가 테스트 해야 하는가? initial version: 2007.08.12 목차 1 들어가기 전에 2 누가 테스트 해야 하는가? 2.1 단위 시험은 개발자가 2.2 통합 시험은 개발팀내 Integrator가 (특정 경우 개발자 자신이) 2.3 시스템 시험은 제 3의 조직이 [edit] ...
http://minsublog.kr 2007-09-12 11:17:11
한국과 일본의 소프트웨어 개발과정의 가장 큰 차이점은? 첫번째, 테스트!
일본은 우리보다 산업화에서 100년은 먼저 시작했고 전산시스템이 본격도입된 것은 미국과 비슷하게 (우리가 80년대 들어와서야 국내 산업화가 시작했다 볼수 있다.) 우리보단 거의 20년이나 먼저 앞서 60년대에 시작했다. 이런것을 보면 당연히 우리보다 거의 한세대 가까이 많은 시행착오를 겪고 변화를 거쳤으니 선진국인건 확실하다고 볼수 있겠다. 그리고 단순 수...
행복찾기 - 소통공간 2007-09-15 01:55:00
소프트웨어 테스트는 제품검수 가 아닙니다.
소프트웨어 테스팅의 중요성에 대한 각성 이란 글에 잘 나와 있듯이 지금이라도 테스트의 중요성을 깨닫고 시행을해야 한다고 생각합니다. 아주 작은 수의 기업이지만, 이미 몇몇 기업에서는 "소프트웨어 테스트"를 도입하고 있습니다. 위의 글의 나와있는 예들 중 하나는 제가 몸담았던 회사에서 했던 프로젝트입니다. 그 기업에는 제도적으로 '테스트' 과정을 도입하였고 ...
정의의소의 블로그 2007-09-15 02:02:59
프로젝트를 성공시키는 지름길「테스트 용이성」
zdnet에 공감이 많이 가는 글이 올라와 소개합니다.웹젠의 QA 팀장이신 신재문님께서 작성하신 글입니다.자세한 내용은 아래 글을 펼치시거나 위 링크를 따라가시면 됩니다.Testability는 개발자와 테스터 입장이 많이 다릅니다.개발자분들께서 한 번 읽어 보시고 어떻게 생각하시는지 트랙백이나 답글 남겨 주시면 고맙겠습니다. ^^;제가 앞선 글에서도 말씀드...
SW 테스팅이 뜬다
SW 테스팅이 뜬다 프로젝트의 완성도를 높이기 위한 수단으로 소프트웨어(SW) 테스팅 분야에 대한 관심이 집중되고 있다. 6일 관련업계에 따르면 대법원 정보화 프로젝트에 전체 예산의 절반이 테스팅 비용으로 책정되는가 하면 대학에 SW 테스팅 관련 학과가 잇따라 개설되는 등 테스팅의 중요성이 부각
Binple.net 2009-10-19 14:29:56
소프트웨어 오류 사례
디즈니의 라이온 킹(1994-1995) 1994년 가을 라이온 킹 애니메이션 스토리 북을 출시하였다. 소수의 시스템에서는 동작했지만, 일반 대중들이 가지고 있는 대다수의 평범한 시스템에서는 동작하지 않는 문제점 발생하였다. 인텔 펜티엄 부동 소수점 나눗셈 버그(1994) 인텔의 소프트웨어 테스트 엔지니어들은 칩을 출시하기 전에 발견하였으나 인텔 측에선...

낚시광준초리 2007-09-12 08:09:09     답글 삭제
공감합니다. 회사내에서 테스트의 중요성을 역설 하면 경영진이나 임원들은 동감을 합니다. 그럼 테스터에 대하여 어떻게 프로세스 정하자 그러면 현실상 힘들지 않느냐는 답만 합니다. 참 웃긴 현상들이죠..
바비 2007-09-12 15:03:49     삭제
그것이 바로 말과 행동이 따로 노는 대표적인 증상이 아닐까 합니다. 하지만 행동으로 반영되지 않는다면, 실제로는 그렇게 믿지 않는 것이죠.

webtk 2007-09-12 10:15:42     답글 삭제
소프트웨어로 업무가 중단된 것은 아니지만, 국가적인 망신을 시킨 사례가 얼마전에도 있었지요. 재경부가 통합수지를 발표하면서 15조가량 오류가 났었는데, 그원인도 소프트웨어라고 하네요. http://news.mk.co.kr/newsRead.php?year=2007&no=486127
바비 2007-09-12 15:06:36     삭제
아주 좋은 사례 감사합니다. 내용에 업데이트해 놓겠습니다.

기사 내용 중, 이것은 모두 "프로그래머가 프로그램을 잘못 짠 결과"라는 멘트가 인상적이군요. 프로그램은 잘못 짤 수 있습니다. 테스팅을 통해 그것을 잡아내는 것이 중요하죠.

한국정부의 품질관리 수준을 보여주는 대표적인 사례가 될 거 같습니다.

왕구라 2007-09-12 11:02:40     답글 삭제
옳으신 말씀이십니다. 하지만 대부분의 기업들에서 이를 실행에 옮기기란 대단히 어려운 일인 것 같습니다. 안타까운 현실이지요.. 하지만 차츰 변해가지 않을까라는 기대는 항상 버리지 않고 있습니다. 좋은 글 좋은 정보 잘 읽고 갑니다.
바비 2007-09-12 15:02:52     삭제
대단히 어려운 것이 사실입니다만, 어쩔 수 없는 상황이 되면 할 수 밖에 없을 것입니다. 그런 고생을 하기 전에 좀 더 나은 프로세스가 도입되었으면 좋겠군요. ^^

dobiho 2007-09-12 13:54:09     답글 삭제
소프트웨어의 품질에 얼마나 오류가 없고 빨리 도냐, 확장성은 얼마냐 등으로 등 이외에 얼마나 유용하고 편리한 소트웨어인가도 들어가면 좋겠네요.
바비 2007-09-12 15:01:31     삭제
실제로 품질이라는 광범위한 개념에는 말씀하신 내용이 포함됩니다. 다만 현실에서는, 기능 구현도 제대로 못 챙기는 경우가 많아서 그런 것들이 간과되고 있는 형편이지요.

그러나 근래에 국내에서도 다양한 시도들이 시도되고 있는 추세여서 조금은 다행입니다.

lesmin 2007-09-12 14:19:29     답글 삭제
대기업 휴대폰 단말 제조사와 같은 경우, 출시전 까다로운 절차를 거쳐가면서 소프트웨어 테스트를 진행합니다. 물론, 휴대폰은 출시 후 버그 수정이 쉽지 않다는 특성 때문이기도 하겠습니다만. 이러한 테스트 절차를 단기간 내에 완료하기 위해서는 엄청난 숫자의 인력투입이 필요하기 때문에 현실적으로 대기업이 아닌 이상 도입하기 힘들다는 것이 문제겠지요.
바비 2007-09-12 15:27:58     삭제
하지만 말씀하신 대기업들의 경우 질적인 품질 관리(개발 초기 단계부터 테스트 매니저가 참여하여 협업)보다는, 코딩 완료 후 사후적인 테스트를 위해 양적으로 대량의 테스터를 투입하는 경우가 많더군요.

결과적으로 테스트도 깔끔하게 수행되지 않으면서 인력 낭비, 비용 낭비가 심한 부분이 있다고 생각합니다.
coderiff 2007-09-13 12:43:06     삭제
저도 바비님 말씀이 맞다고 생각합니다. 사실 대기업이 하는게 코드에 대해서 모르는 테스터들이 테스트하는 것이라서 한계가 있을 수 밖에 업다고 생각합니다. 여러가지 테스트 중에 최종 단계에 가까운 테스트만 이루어 지니까요. 저도 개발자로서 현업에서 발생하는 문제를 해결하기위해서 많이 고민했는데 결론을 내린 것은 소프트웨어 테스트는 꼭 필요한 것 같습니다. 특히 개발자부터 단위 테스트등의 테스트가 꼭 필요한 것 같은데... 그런 것에 대해 인식하는 사람들이 별로 없고 심지어 단위테스트같이 개발자가 직접해야할 테스트에 대해서도 모르고 무조건 테스트는 전문 테스트들이 해야한다는 편견을 가진 개발자도 있더군요. 저도 많이 고민하는 바지만 환경이 안갖춰진 곳에서 뭔가 해내기가 상당히 어렵더군요.

webtk 2007-09-12 22:05:19     답글 삭제
근래 국내에서 일어난 소프트웨어 실패 사례를 더 조사해 보면서 꽤나 놀랐습니다. 이 분야의 분위기나 문화를 몰랐던 것도 아닌데, 정말로 심각한 사고들이 빈번하게 일어나더군요. 특히 증권사나 은행 같이 전산이 주요 인프라인 곳에서 실패가 반복되는 것을 보면서 그 분야 사람들이 전산에 대한 "혐오"가 생기진 않을까 염려가 들 정도였습니다. 국내에서 "소프트웨어 실패"로 인한 피해가 어느 정도인지 집계는 되고 있을까요? 또 이러한 것이 그저 개발측만의 노력으로 개선될 수 있을까요? 고객측도 가격이나 수주 업체의 규모만을 따질 것이 아니라 품질에 대해 같이 고민하고, 적극적으로 테스트에 협력해야 하지 않을까 생각이 듭니다. 참고: 근래 발생한 소프트웨어 실패 사례(8/13~9/13),http://webtk.blogspot.com/2007/09/blog-post_12.html
바비 2007-10-01 13:31:17     삭제
대형 프로젝트일수록 실패 사례가 더 많습니다. 그것은 통계로도 확인된 바죠.

강평희 2007-09-13 08:42:40     답글 삭제
매우공감합니다 현재 저희 회사에서 자체 모듈과 컴포넌트를 프레임웍에 올리는 작업을 하고 있는데 각각 개인들의 작품인지라 아무리 잘 구성한 f/w라 할지라도 인간적인 버그가 존재하고 그것이 시스템에 커다란 pm에 악영향을 주더군요 인간적인 버그는 반 시스템적인 사고로 지금 당장의 편리성에 만족하여 미래에 다가올 시스템적 퍼포먼스 악 영향을 무시한는 경향인거죠 현재 저희들은 그것을 별도로 예견하여 하나씩 잡아가고 있지만 100%라는 말은 어렵겠지요 하지만 매우 중요한 작업이며 필수 사항인것은 분명합니다.
바비 2007-10-01 13:33:44     삭제
사람이 하는 일이므로, 그것이 중요한 만큼 제대로 검증하는 것이 필수적이라고 생각합니다. 세심하게 관리하는 과정이 중요하고, 결국 결과로서 보상받을 수 있다고 생각합니다.

배고픈 바보 2007-09-13 11:41:49     답글 삭제
얼마전에 참석한 강의(http://agile.egloos.com/3706040)에서도 Lean SW 개발의 원칙 중 TDD(테스트 주도 개발)가 제일 먼저 적용해야 한다고 하더군요. SW라는것이 는 변할 수 밖에 없는 녀석임을 생각해 보면, 현재의 상황에서 그 변화를 쉽게 받아들일 수 있게 하는것이 TDD, 테스트 자동화 이겠다는 생각이 드네요. 고객의 요구사항 변화이던기, Refactoring을 통한 자체 개선 이던지 말이죠.
바비 2007-10-01 15:34:11     삭제
테스팅을 소중하게 생각하는 조직이야말로 좋은 품질의 SW를 만들 자격이 있는 조직이 아닐까 합니다. ^^

productioKim 2007-09-13 15:04:57     답글 삭제
게임 소프트 테스트도 완전 매한가지 입니다.. 인식의 전환이..정말로 절실한 때라고 생각합니다..
바비 2007-10-01 15:35:08     삭제
게임 분야도 품질 관리 문제가 심각한 곳 중 하나이죠. 프로젝트 관리, 품질 관리를 제대로 하는 것이 심각하게 요구되는 상황입니다.

시민2 2007-09-13 16:19:42     답글 삭제
태그가 깨져서 url을 남기기 힘드네요.

http://unenemy.com/

으로 가시면 네번째 노란색 달걀같이 생긴것을 클릭하시면 게임 개발자 만화 몇편이 있습니다.

거기서 76번과 84번은 참 가슴에 와닿는 내용입니다. ㅎㅎ
바비 2007-10-01 15:38:55     삭제
재미있는 만화 소개 감사합니다. ^^

임준섭 2007-10-01 23:21:44     답글 삭제
좋은글 감사합니다.

이름 비밀번호
홈페이지
덧글
비밀글
RSS 피드
전체글한RSS 추가 구글추가
스마트가젯북스타일
Demo Day