정보시스템분야 Stack 통합 Test 결과보고서 [ Trac ] 2015. 07.
목 차 I. Stack 통합테스트개요 1 1. 목적 1 II. 테스트대상소개 2 1. Trac 소개 2 2. Trac 주요기능및특징 5 3. Trac 시스템요구사항 7 III. Stack 통합테스트 8 1. 테스트환경 8 2. 테스트접근방법 10 3. 테스트수행 12 4. 테스트수행결과 13 IV. 종합 14 참고자료 15 [ 별첨1] Trac 테스트케이스
I. Stack 통합테스트개요 공개SW Stack 통합테스트는여러공개SW들의조합으로시스템 Stack을구성한후 Stack을구성하는공개SW의상호운용성에중점을두고기능및성능테스트시나리오를개발하여테스트를진행한다. 본통합테스트를통해안정적인 Stack 정보를제공하여민간및공공정보시스템개발및도입시활용될수있도록한다. 1. 목적 공개SW Stack 통합테스트수행목적ㅇ공개SW로구성된 Stack이유기적으로잘동작함을확인ㅇ다양한 Stack 구성에기반을둔테스트를통해안정된 Stack 조합규명ㅇ공개SW 시스템도입을위한 Stack 참조모델의신뢰성정보로활용ㅇ공개SW의신뢰성과범용성에대한사용자인식제고 - 1 -
II. 테스트대상소개 1. Trac 소개 Trac은오픈소스프로젝트활성화의일환으로 Python 기반으로개발되었으며, 소프트웨어개발프로젝트의관리에특화된이슈트래킹시스템이다. Trac은이슈 Description과 Commit 메시지에대한 Wiki Markup 및버그, Task, Changeset 정보와파일, Wiki 페이지간의참조링크기능을포함하는향상된 Wiki 기능과함께 Timeline 및 Roadmap 기능을근간으로팀의정립된개발프로세스및정책을효율적으로반영하여관리할수있는웹기반의소프트웨어개발관리환경을제공한다. 프로젝트관리도구로서 Trac은현재, Modified BSD 라이선스가적용되고있다. 또한, Subversion, Git, 머큐리얼 (Mercurial), Bazaar 등버전관리소프트웨어와연동을통해기능확장성을제공하며, 개발프로세스에따른발생이슈관리및버그추적관리기능을제공한다. [ 그림 1. Trac 주요사용화면구성 ] - 2 -
관련기술및개념이해 > 머큐리얼 (Mercurial) - 소프트웨어개발을위한크로스플랫폼분산버전관리도구 - Revision 구분관리하는데 SHA-1 해시사용 - ssh 상에서실행가능 - Microsoft Windows, MAC OS X, Unix 계열의크로스플랫폼지원 - GPL 라이선스적용 > Bazzar - 캐노니컬 (Canonical Ltd.) 이지원하는분산버전관리도구 - GNU/ 리눅스배포판과 Microsoft Windows, MAC OS X 지원패키지지원 - GPLv2 또는이후버전라이선스적용 > Git - 소스코드관리를위한분산버전관리도구 - 폴더관리체계로구성되어있으며, 각폴더는전체기록과각기록을추적할수있는정보를포함 - Microsoft Windows, MAC OS X, Linux, POSIX 운영체제지원 - GNU 일반공중사용허가서 v2 (GPLv2) 적용 > SVN(Subversion) - 자유소프트웨어버전관리도구 - 제한이있는 CVS 대체위해 2000년부터콜랩넷에서개발 - 서버, 클라이언트모델을따르며, http, https, svn, svn+ssh 의규약따름 - 크로스플랫폼운영체제지원 - Apache 라이선스적용 - 3 -
> CVS (Current Version System) - 소프트웨어개발을위한동시버전관리도구로파일단위의모든작업내용과변화히스토리추적관리기능제공 - Microsoft Windows, Unix 계열운영체제지원 - GNU GPL 라이선스적용 - 4 -
2. Trac 주요기능및특징 Trac은버전관리소프트웨어의웹인터페이스를제공하며, 프로젝트진행에따른각종개선점과개발과정에서의발생버그관련한이슈트래킹, 그리고 Wiki 를통한문서관리및각리소스연동을주기능으로한다. Trac의특징 > Ticket 정보처리단위로프로젝트별계정권한에따른업무분배및스케줄링기능제공 > 버전관리소프트웨어연동및 Plugin 설치, 설정에따른기능확장성제공 > Wiki를기반으로한문서관리및 Customized Report 기능제공 Trac의주요기능카테고리 > Project management 기능 (Roadmap, Milestones, etc.) > Account Manager 기능 (Account Manager Plugin 적용 ) - Web 관리자및각역할별계정권한설정 > Ticket system 기능 (bug tracking, tasks, etc.) - 업무프로세스에따른발생이슈및이벤트처리 > Search engine 기능 - 작업처리단위인 Ticket 정보선택적조회 > Email notifications 기능 - 등록계정에대한발생이벤트및업무정보알림 > Fine-grained permissions 기능 (since version 0.11) - 계정별역할구분에따른기능제약설정관리 > Timeline 모니터링기능 - 최근발생한모든활동내역에대한관리 > RSS feeds 알림기능 - 5 -
- 공지사항알림및관리기능 > Multiple project 관리기능지원 (planned for post-1.0 versions) > icalendar export 기능지원 - Mac OS X용 Apple ical 기능지원 - Mozilla Calendar/ cross-platform 지원 - Evolution, Microsoft Outlook 호환성지원 - Google Calendar 호환성지원 > Multiple repository 관리기능지원 (since version 0.12) > Interface Localizations 지원 (since version 0.12) > Spam-Filtering 기능제공 > Blog/ Discussion/ Forum 기능 (Plugin 지원 ) > Guestbook 기능 (plugin 지원 ) - 6 -
3. Trac 시스템요구사항 Trac 시스템요구사항 항목 정보 OS - Windows, Linux 지원 Python - 버전 2.5 이상 ( 최신안정버전권장 ) setuptools - 버전 0.6 이상 ( 최신안정버전권장 ) Genshi - 버전 0.6 이상 ( 최신안정버전권장 ) DB - MySQL or MariaDB ( 최신안정버전권장 ) - MySQLdb ( 버전 1.2.2 이상 ) - PostgreSQL ( 버전 8.0 이상 ) - Psycopg2 ( 버전 2.0 이상 ) [ 표 1. Trac 시스템요구사항 ] 상기시스템요구사항중 Linux 환경에서 MySQL을 DB로적용하여시스템구성할경우, Trac이 MyISAM 테이블을지원하지않는트랜잭션메커니즘을사용하므로모든테이블은 InnoDB or TokuDB 타입의테이블로생성되어야한다. 예를들어, MySQL의프로젝트연동데이터베이스생성시, Default Character 타입에 utf8 타입을설정하고, collate 옵션으로 utf8_bin 타입을추가설정하여이슈를해결할수있다. 관련상세정보는아래의링크내역참조 [1] 기능 / 특징세부 - http://trac.edgewall.org/wiki/pluginlist [2] 설치 / 유저가이드 - http://trac.edgewall.org/wiki/tracinstall - http://trac.edgewall.org/wiki/tracguide [3] 공식 Repository/ 다운로드 - http://trac.edgewall.org/wiki/tracdownload - 7 -
III. Stack 통합테스트 1. 테스트환경 Trac SW 환경 SW Version Ubuntu 12.04 LTS (64비트) Trac 1.0.8 ( 최신안정버전 ) Python 2.7.3 setuptools 0.7 Genshi 0.7 DB (MySQL) Apache Ver 14.14 Distrib 5.5.44, for debian-linux-gnu (x86_64) 최신안정버전 [ 표 2-1. 테스트 SW 환경 ] Ubuntu 환경에서 Trac 구성시, 필수의존성 (Dependencies) 기능요소로 Python, setuptools 및 Genshi가설치되어야함 상기 Trac 환경구성시, TracMercurial plugin 기준이미지및설정적용함 Stack 환경 Stack OS 네트워크정보 (IP) A (Server) Ubuntu 12.04 LTS 121.162.249.93 A (Client) Ubuntu 12.04 LTS 121.162.249.94 [ 표 2-2. Stack 환경 ] - 8 -
HW 환경 제조사모델명 CPU MEM Disk NIC HP dc7900 CMT Quad-Core 2.66Ghz~4P 3.6GiB 265GB Gigabit 1Port [ 표 2-3. HW 환경 ] 동일사양 HW 조건의 PC 2 대로서버, 클라이언트환경구성하여테스트진행 - 9 -
2. 테스트접근방법 Trac은버전관리소프트웨어의웹인터페이스를제공하며, 프로젝트진행에따른각종개선점과개발과정에서의발생버그관련한이슈트래킹, 그리고 Wiki를통한문서관리및각리소스간연동을주기능으로한다. 본테스트는서버, 클라이언트환경을구성하여 Trac의설치및프로젝트운용에따른사용자시나리오를토대로 Trac 주요기능요소의기능신뢰성을확보하며, 환경구성의안정성과 Web UI 환경의호환성을확인하는데주된테스트방향성과목적을두고수행되었다. 탐색적테스팅 (Exploratory Testing) 탐색적테스팅은테스트엔지니어의지적능력을최대한공유, 활용하는것을목적으로하는테스트접근법으로테스트를수행할대상을실행시켜사용함과동시에사용측면에서문제가되는부분에집중하여테스트를설계및계획한다. 이러한과정은효율적진행을위한 Time Boxing을통해수행되므로테스트케이스작성을최소화할수있고, 상대적으로적은시간에집중적인테스트를가능하게한다. 리스크기반테스트 (Risk based Testing) 리스크기반테스팅기법은테스트대상에비해서테스트자원이부족한경우효과적이고, 효율적인테스트수행을위해적용될수있다. 해당기법은크게리스크식별과리스크분석, 그리고리스크계획의세단계로구분진행된다. 리스크식별단계에서는제품품질관점에서테스트대상이될항목을식별하고, 프로젝트나제품에대한리스크요소를식별한다. - 10 -
리스크분석단계에서는장애발생가능성과장애로인한영향을식별하고리스크우선순위를결정한다. 마지막으로리스크계획단계에서는리스크의우선순위에따른대처방안및완화정책을수립하며, 이후테스트수행시커버리지를고려하여선택과집중을통해테스트를수행하게된다. 시나리오테스트시나리오테스트기법은단일기능에대한결함여부를확인하는것이아니라, 서로다른컴포넌트사이의상호작용과간섭으로발생할수있는결함을발견하기위한기법이다. - 11 -
3. 테스트수행테스트수행관련세부내역은별첨 Trac 테스트케이스 문서를참고한다. 탐색적테스트현황이하, 테스트현황의차터항목구분은각기능아이템항목별세부구분항목으로서사용자시나리오를기반으로정의되었다. 기능아이템 기본차터 테스트아이디어 Trac 기본환경관리 1 12 Trac 업무단위관리 2 20 Trac 운용관리 2 10 합 계 5 42 [ 표 3. 테스트아이디어현황 ] - 기본환경관리카테고리에서는대상 SW의설치및기본환경구성측면에서안정성확인과계정생성에따른 Web 기반운용환경별접속기능확인을중심으로테스트진행 - 업무단위관리카테고리에서는개발프로젝트진행에따른주요프로세스를기준으로프로젝트의업무단위관리기능과테스트관련이슈관리기능을중심으로테스트진행 - 운용관리카테고리에서는시스템의 Web 서버연동에따라제공되는 Web UI 상에서주요기능카테고리별기능항목의동작정상성확인및 Web 환경호환성확인을중심으로테스트진행 - 12 -
4. 테스트수행결과 Trac 테스트를수행한결과기능카테고리별정리된내용은아래와 같다. 분류기능테스트아이디어 PASS FAIL N/T N/A Trac 기본환경관리 12 12 0 0 0 Trac 구성관리 20 20 0 0 0 Trac 운영관리 10 10 0 0 0 [ 표 4. 테스트결과 ] - 상기테스트는프로젝트운용형태에따라 Standalone 서버를적용한시스템카테고리와 Web 서버를적용한시스템카테고리를구분하고, 사용자시나리오를반영하여 Trac 시스템의기능정상성확보를중점으로수행함 - Trac 시스템구성으로서버, 클라이언트환경을구축하고주요관리환경인 Web 브라우저 UI 상에서각기능카테고리에따라관리시스템의구동관련주요기능동작들을확인한결과환경구성및기능관련한심각한오류및치명적장애이슈는발견되지않음 - 13 -
IV. 종합 Trac 테스트수행결과, 공개 SW로구성된 Stack 환경에서치명적결함, 이슈발생없이설치및설정관리됨을확인하였으며, 개발프로젝트의관리절차관련제반기능들이각기능단위 resource 들과유기적으로동작함을확인하였다. Trac은티켓 (Ticket) 단위의정보생성관리기능을제공하며, 각 Ticket 정보는 Subversion 과같은버전관리시스템과연동되어체계적인업무프로세스관리를가능케한다. Trac은 Python을근간으로개발된오픈소스이슈관리도구로 Plugin 설정을통해다양한기능및확장성을제공하며, SVN 등의형상관리도구와접목이가능하여소프트웨어개발프로젝트관리환경에유용한솔루션으로적용될수있다. - 14 -
참고자료 [1] Trac 공식사이트 - http://trac.edgewall.org/ [2] 설치가이드 / 유저가이드 - http://trac.edgewall.org/wiki/tracinstall - http://trac.edgewall.org/wiki/tracguide - http://trac.edgewall.org/wiki/tracplugins#installingatracplugin [3] 배포 / 개발관련 - http://trac.edgewall.org/wiki/tracdownload - http://trac.edgewall.org/roadmap - http://trac.edgewall.org/browser - http://trac.edgewall.org/wiki/tracdev [4] 포럼 / 커뮤니티 - http://trac.edgewall.org/wiki/mailinglist - http://trac.edgewall.org/wiki/tracusers - 15 -