2011. 12. 16 티큐엠에스
테스트의프로세스적접근과 TMMi 테스트프로세스개선의필요성 SW 품질사고로인한경제적손실증가 美 SW 결함으로연간 599 억달러의경제적손실, 저품질 SW 로인한항공우주분야손실비용 16 억불, 2006 년 1 월 18 일, SW 패치처리의문제로동경증권거래정지등 SW 가복잡, 고도화됨에따라품질문제로인한경제적손실이눈덩이처럼증가하고있다. 흔히설계과정에서만들어지는에러가개발완료후에발견된다면, 설계단계에서에러를수정하는비용보다 30 배추가지출이발생하고, 통합과정에서만들어지는에러가개발완료후에발견된다면통합과정에서수정하는비용보다 20 배추가지출발생 ( 미상무성산하국립기술표준연구소 (NIST) 조사자료 (2002. May)) 한다. 그럼에도불구하고프로젝트일정과비용에쫓기다보면테스트를통해서가시적인성과를낼수에러을도출하기는극히어려운실정이다. 프로젝트에서 Test 비중은 30 ~ 40 % 디지털융복합시대를맞이하여 SW 는산업경쟁력의핵심요소로부상하고있고 SW 복잡, 대형화로인해품질비용은폭발적으로증가하고있다. 이에 Techonline 에서는 SW 크기는최근 5 년동안 10 배, 향후 10 년내에 100 배이상증가 할것이고,IBM 은 SW 의개발완료후결함수정비용은개발단계보다 100 배이상소요 할것으로예상하고있다. 또한테스트는프로젝트비용에적어도 30~40% 이상을차지하고있음에도불구하고테스트는코딩이완료되고수행하거나디버깅수준에서수행되고있는경우가많고테스트와관련하여서는 C M M I (Capability Maturity Model Integration) 와같이프로세스개선활동이이행되고있지않다. < 표 1> SW 품질사고사례 구분 동경증권거래소사건 국내 A 은행전산장애 T-Money 서울시교통카드 자료출처 : 정보통신기술협회 주요내용 2005 년 12 월 8 일미즈호증권의매도주문오발주 (1 주 61 만엔 1 엔 61 만주 ) 2006 년 1 월 18 일, SW 패치처리의문제로증권거래정지 2006 년 1 월 20 일전산장애로 5 시간창구업무전면중단 비정상데이터처리오류로인한장애로 1 일손실액 5 억원 2004 년 7 월서울시신교통카드시스템오동작으로교통대란 테스트프로세스개선을위한 TMMi 이러한배경속에서요즘국내에소개되어이슈화가된테스트프로세스개선모델인 TMMi (Test Maturity Model Integration) 에대하여모델구성, Level 별특징, SG(Specific Goal) 과 GG(Generic Goal) 를살펴보고자한다. 이를통하여테스트에대한프로세스적개선방법과효과적으로조직내에서모델을적용할수방안을검토하여 SW 제품품질이향상되었으면하는바램이다. 더이상테스트는 Lifecycle 상의이론적단계가아닌프로젝트비용을절감하고더나아가치명적인 SW 위험을제거하기위한중요한활동이기에테스트프로세스의개선은더이상미룰수없는과제이다..
< 그림 1> TMMi 성숙도 Level 자료 : TMMI Foundation TMMi 정의및성숙 Level TMMi 정의 TMMi(Test Maturity Model Integration) 는 2008 년설립된 TMMi 재단 ( 아일랜드더블린위치 ) 이 SW 테스트조직의성숙도를평가하고프로세스를개선하기위해개발한모델로, SW 테스트분야의프로세스개선모델이다. 성숙도 Level 성숙도 Level 은 5 단계로구성되어있으며현재 TMMi Version 2.0 이최신버전이며, 여기에는 Level3 까지만세부프렉티스가정의되어있다. TMMi Level1 는 Initial 단계로조직은테스트프로세스가정의되어있지않고테스트를단순히 Debugging 으로만인식을한다. 따라서테스트는코딩이후에부가적작업으로인식하는경향이크다. TMMi Level 2 는 Managed 단계로조직에서는테스트와 Debugging 이명확히구분되고제품이정의된요구사항을만족하는지에대한검증활동을수행하기위해테스트를수행하게된다. 하지만테스트는여전히프로젝트코딩또는설계이후의활동으로인식되어요구사항과설계의결함이코드로전이될수있는위험이존재한다. TMMi Level 3 는 Defined 단계로조직에서테스트는특정한프로젝트또는조직단위에따라테스트관련표준프로세스가테일러링되어테스트는개발 Lifecycle 과관련된마일스톤과완전히통합되어관리되고조직은품질통제에있어검토의중요성을인식하게된다. TMMi Level 4 는 Management and Measurement 단계로조직에서는조직과프로젝트가제품품질및프로세스성과를위해정량적인목표를수립하고그것들을관리하기하기위한기준들을사용하여통계적관점에서이해하게된다. 또한측정지표들은사실적기반의의사결정을지원하기위하여조직의측정저장소에모아진다. TMMi Level 5 는 Optimization 단계로조직은프로세스에서발생되는차이에대한공통적원인에대한정량적이해를통하여프로세스를지속적으로개선하려고한다. 그방법들과기술들이최적화되고테스트프로세스개선과정제된조정에초점을맞추게된다. 다음으로알아보아야할사항은 TMMi Level 에속한 Process Area 와관련된 Goal 들인데현재까지의버전에서는 Level2 와 Level 3 에대한 Process Area 의 Goal 들만정의되었기때문에본고에서는고찰의범위를 Level 3 에만한정하도록한다.
< 그림 2> TMMi Level 2 Process TMMI Level 2 TMMi Level 2 Process Area TMMI Level 2 프로세스 Area 는테스트정책과전략을정의 (Test Policy and Strategy), 테스트계획을개발 (Test Planning), 계획대비활동을모니터링및통제 (Test Monitoring and Control), 테스트케이스개발 (Test Design and Execution), 테스트데이터를포함한테스트환경구축을위한 ( T e s t Environment) 로구성되어있다. Test Policy and Strategy 의목적은정책을수립하고테스트수준을명확하게정의할수있는전략을수립하는것이다. 테스트정책은조직의전체적테스트목적, 목표, 전략을정의하여그것이비즈니스정책에따라조정될수있도록하여야한다. 테스트전략은조직이나프로그램의일반적테스트요구사항을포함하고또한테스트정책의연장선상에서일반적제품위험을다루고그것들을완화시키기위한프로세스가나타날수있도록하여야한다. 테스트성과지표는데이터수집, 저장, 분석절차를포함한테스트정책과 Goal 에기반한테스트성과지표가정의되어야하며식별된테스트성과지표들에대해서는그결과가이해관계자들에게제공되어져야한다. < 표 2> Test Policy and Strategy SG Establish a test Policy Establish a test strategy Establish test performance indicators Test Planning 의목적은식별된 Risk 와정의된테스트전략에따라테스트접근방법을정의하고테스트활동을수행하고관리하기위한현실적인계획을수립하고관리하기위함이다. < 표 3> Test Planning SG SG4 SG5 Perform a product risk assessment Establish a test approach Establish test estimates Develop a test plan Obtain commitment to the test plan 제품위험평가활동이테스트에중요한영역을식별하기위해수행되는데위험평가시에는사용될제품범주와파라메터들이정의되고문서화되어
제품위험이평가되고위험범주와해결해야할우선순위가결정된다. 제품위험평가후에는식별된제품 Risk 에기반을둔테스트접근방법이수립되는데이를기반으로하여테스트프로세스에서허락하지않은조건에서관련접근방법이수행되는것을막기위해 Entry 기준이정의되고적절한시점에테스트중지를위하여 Exit 기준이정의된다. 또한테스트항목과특성들에대한테스트 Task 전부또는일부를중지하기위해사용되는기준도함께정의된다. 테스트에대한기준이수립된이후에는테스트관련견적활동을한다. 테스트활동계획을수립하기위한현실적테스트견적이수립에는 Top-Level WBS 수립, 테스트 Lifecycle 정의, 테스트공수및비용견적 등의활동이이에해당된다. 견적활동이완료된후에는실질적테스트계획이수립되는데, 일정, 비용, 공수, 이해관계자식별및참여등의내용을포함한다. 테스트계획수립이완료되면계획은이해관계자들간의검토와합의를통하여테스트활동에대한공식문서로써의기능을수행한다. Test Monitoring and Control 의목적은테스트진척과제품품질에대한이해를제공하여테스트진척이계획과많은차이를보이거나제품품질이기대와많은차이를나타낼때시정조치를하기위함이다. 이를위해서먼저테스트계획대비실제진척과성과가모니터링되는데주요활동으로는실제진척결과값, 환경자원및계획때식별된위험들을모니터링하여전반적테스트마일스톤에대한진척과실적검토가이루어진단. TMMi 가다른프로세스개선모델과차이를가지는부분중에하나는계획과예상대비실제제품품질모니터링을강조한다는것이다. 테스트접근방법에대한 Entry, Exit 기준및제품결함에대하여계획때정의된측정지표를기반으로모니터링을수행한다. 이와같은모니터링결과를기반으로테스트마일스톤시점에제품품질상태를검토하여테스트진척과제품품질이테스트계획과예상으로부터많은편차를가질때에는시정조치를수행하여시정조치가종결될때까지관리한다. < 표 4> Test Monitoring and Control SG Monitor test progress against plan Monitor product quality against plan and expectations Manage corrective action to closure Test Design and Execution 의목적은테스트디자인기술, 구조화된테스트실행및테스트인시던트를종결시까지관리하여테스트프로세스의능력을향상하기위함이다. 테스트시에는테스트조건과케이스가식별되어야하고이를통하여필요한테스트데이터를준비하게된다. 이때주요하게고려해야할사항은테스트케이스및조건이고객의요구사항과수평적추적성이확보되어야한다는것이다. 그리고테스트분석과디자인을수행할때는테스트접근방법이테스트디자인기술을사용하는실제적인테스트조건과케이스로반영되어야한다. 다음으로는테스트절차가개발되고테스트데이터생성및테스트일정이정의되어야한다. 이때주의하여야할사항으로는관련절차및활동이명세화되어야하고체크리스트를통한활동점검이이루어져야한다. 정의된테스트일정에따라테스트가수행되면문서화된테스트케이스가수동으로수행되거나스크립트를이용하여자동으로수행된다. 이때테스터는반드시실제와예상된결과사이에차이가있는경우테스트인시던트로써보고하여야한다. 또한테스트로그기록을통하여테스트수행에관련한상세내용에대한시간적 ( 순서적 ) 기록을제공되어져야한다. < 표 5> Test Design and Execution SG SG4 Perform test analysis and design using test design techniques Perform test implementation Perform test execution Manage test incidents to closure 또한인시던트의기록과함께적절한조치가형상관리위원회에의하여결정되고이를통하여인시던트를해결하고엔지니어에의해재테스트를수행하게된다. 인시던트에대한내용은보고서에기록되어추적관리가이루어지고필요시적절한조치가이루어진다. Test Environment 의목적은테스트데이터를포함한적절한테스트환경을수립하고유지하는데목적이있다. 테스트환경을구축하기위해서는먼저일반적테스트데이터, 기대사항및제약사항들을포함한테스트환경필요사항을추출하여테스트환경요구사항에반영하고이러한것들이필수적이고충분히현실화할수있는지확인하기위한분석을수행하여야한다.
< 표 6> Test Environment SG Develop test environment requirements Perform test environment implementation Manage and control test environments 정의된테스트환경요구사항이행시에는테스트환경요구사항명세서를활용되고일반적테스트데이터도생성이되어야한다. 또한테스트환경이적절한준비가되어있는지를결정하기위한유입테스트명세도실시하여야한다. 지속적인테스트수행과효과적이고효율적인테스트수행프로세스지원을위한시스템및데이터가관리되어져야하고환경의가용성확보를위하여그룹들간의조정활동이원활이이루어져한다. 또한테스트환경에발생되는문제에대해서는인시던트로써공식보고되어야한다. TMMI Level 3 TMMI Level 3 Process Area TMMI Level 3 프로세스 Area 는테스트조직 (Test Organization), 테스트교육프로그램 (Test Training Program), 테스트생명주기및통합 (Test Lifecycle and Integration), 비기능테스트 (Non-Functional Test), 동료검토 (Peer Review) 로구성되어있다. Test Organization 의목적은테스트에책임있는조직들과훈련된사람들의그룹을식별하고자하는것이다. < 그림 3> TMMi Level 3 Process 먼저테스트를지원하는조직이정의되어조직간의역할과책임에대한합의를하여야한다. 이를통하여테스트조직은활동을수행하게된다. 이와같이테스트조직이정의되면각조직들의업무명세를포함하는테스트조직의기능 Set 이도출된다. 이기능 Set 과작업정의를통하여소속인원들은작업을할당받게된다. 또한테스터들의지식, 기술, 상태, 보상들을향상할목적으로테스트 Career Path 가수립되며테스트조직원들은테스트 Career 개발계획에따라역량을향상할수있도록하여야한다. 테스트프로세스의지속적인개선을위해서는조직의테스트프로세스의강 / 약점에대하여인식하여야하는데이를위해주기적으로나필요시조직의테스트프로세스를평가를실시하여조직의테스트프로세스및자산에대한개선사항을식별하여야한다. 개선사항이식별이되면프로세스개선조직은활동계획을수립하여이를기반으로개선활동을수행하여야한다. Lessons Learned 도조직의자산에반영할수있어야한다. < 표 7> Test Organization SG SG4 SG5 Establish a test organization Establish test functions for test specialists Establish test career paths Determine, plan and implement test process improvements Deploy organizational test processes and incorporate lessons learned
Test Training Program 의목적은조직원의지식과기술의개발을용이하게하여테스트 Task과역할이효율적이고효과적으로수행되게하기위함이다. 조직은테스트관련교육 Needs를파악하여수행해야할교육을결정하고교육계획을수립하고교육 Needs 를지속적으로유지관리할수있어야한다. < 표 8> Test Training Program SG Establish an organizational test training capability Provide necessary test training 계획에따라교육을수행하고결과에대한기록관리를통하여조직원역량향상과정을지속적으로모니터링하고각각의교육에대한효과성분석을통하여교육프로그램이개선될수있어야한다. Test Lifecycle and integration 의목적은테스트프로세스자산과작업환경표준 Set 을수립하고유지관리하여테스트 Lifecycle 과개발 cycle 을통합하고동기화하기위한것이다. 이를위해서는조직의표준프로세스 Set 이수립되고유지되어야하고테스트 Lifecycle 모델에서기술되는내용을수립하여야한다. 프로세스 Set 을프로젝트특성을반영하여효과적으로적용되기위해서는테일러링기준과가이드라인이수립되어야한다. 무엇보다도중요한것은프로세스이행과정에서추출되는데이터관리와프로세스의효과적이행을위해서는측정지표에대한 DB 및프로세스자산라이브러리가구축되고관리되어야한다. 생명주기에있어서는통합된테스트개발생명주기모델들에대한기술서를작성하여유지관리하도록하여이해관계자들이개발과테스트가통합된생명주기안에서테스팅에역할을이해하고검토할수있도록하여야한다. < 표 9> Test Lifecycle and Integration SG Establish organizational test process assets Integrate the test lifecycle models with the development models Establish a master test plan 통합된생명주기모델에대한검토가완료되면프로젝트활동을관리, 수행, 지원에책임있는이해관계자들로부터테스팅역할에대해합의를획득하여마스터프랜에반영될수있도록한다. 마스터프랜에는제품위험평가, 테스팅에중요한영역을식별하기위한수행내용과테스트접근방법이식별되고우선순위화된제품위험을완화하기위한방안도출및계획된내용을수행하기위한비용 / 공수견적, 조직정의도함께작성하여이해관계자들간에합의를한다. Non-functional Testing 의목적은테스트계획, 테스트설계및실행동안비기능테스트에대한테스트프로세스능력을향상시키기위함이다. 제품위험평가에중요한비기능테스트영역을식별하기위해비기능제품위험이식별되고위험이미리정의된범주와파라메터를사용하여평가, 범주화및우선순위화된다. 비기능테스트에대한위험식별이완료되면식별되고우선순위화된비기능제품위험을완화하기위한테스트접근방법이정의되고기능테스트와마찬가지로비기능테스트를위한 Exit 기준이정의되어테스트를언제끝낼지계획하게된다. 테스트분석과설계동안비기능테스트에대한접근방법이테스트조건과케이스에반영되어야하는데이를위해서는비기능테스트조건및테스트케이스가정의되어야하고이러한조건과테스트케이스를지원하기위한데이터가식별되어야한다. 특히비기능테스트무결성을확보하기위해서는테스트요구사항부터비기능테스트조건까지추적이될수있도록추적표를작성하여관리하여야한다. < 표 10> Non-Functional Testing SG SG4 SG5 Perform a non-functional product risk assessment Establish a non-functional test Approach Perform non-functional test analysis and design Perform non-functional test Implementation Perform non-functional test execution
또한비기능테스트를수행하기위한테스트절차가개발되고관련활동들에대한우선순위가정해져야한다. 테스트분석과설계활동동안정의된것과같이비기능테스트를지원할특정테스트데이터가생성되어져야한다. 이러한활동이후에실제적인테스트는정의된절차에따라수동으로진행되거나스크립트를통하여자동적으로수행되는데실제결과와예상된결과의차이가있을때비기능테스트인시던트로써보고된다. 또한로그관리를통하여비기능테스트에대한상세항목에대한순차적기록을제공할수있어야한다. < 표 11> Peer Reviews SG 이를위해가장중요한것은먼저모델이제시하는목표와목적을명확히이해하고지속적인연구를통하여조직에적합하도록커스토마이징되어야할것이다. 이를위해본고에서는 SW 제품의품질향상을위해 TMMi 라는화두를던져보았다. 이를계기로국내 SW 산업에서도테스트에대한새로운시각의접근이이루어졌으면하는바램이다. Establish a peer review approach Perform peer reviews Peer Review 의목적은작업산출물이정의된요구사항을충족하고초기에효과적으로선별된작업신출물의결함을제거하기위함이다. 먼저동료검토를위해서는검토의형식과중요참여자를포함하여검토될작업산출물이식별되어야한다. 선별된작업산출물에대하여동료검토가수행되고동료검토에서도출된이슈를식별하여동료검토에대한준비, 수행, 결과에대한데이터를분석한다. 결론 지금까지 TMMi 대해서프로세스영역및관련 Goal 에대하여살펴보았다. TMMi 모델에서말한것처럼기본구조는많은부분 CMMI 를채용하여만들었지만테스트에관련된많은활동들에대해좀더세부적으로다른것에대해서는나름대로의성과가있는것으로평가할수있다. 하지만우리가여기서간과하면안되는사항으로는 TMMi 를접근하는조직의관점이다. 조직에서는 SW 제품의품질을높이기위해많은활동을하고있다. 프로젝트에대한품질보증, 조직의프로세스개선. 하지만이러한것들이조직의특성및현실을반영하지않고이론적인측면에만머무른다면현장에서프로세스를수행하는사람들에게는큰짐이될수밖에없다. 물론조직의개선을위해데이터를모으는역할을하는사람과납기에생명을걸어야하는현장과의어쩔수없는괴리일수도있지만이러한차이를적절히극복해나가야하는것이제품의품질을발전시켜야한다는대의에관련된모든이해관계자 ( 경영층, 관리자, 프로세스개선담당자, 품질보증, PM, 개발자등 ) 의무일것이다.