Software Verification #2 Mantis, SVN, JFeature 및 CTIP Software Verification Team 4 강 정 모 송 상 연 신 승 화 1
Software Verification #2 Mantis, SVN, JFeature 및 CTIP CONTENTS 01 Overall Structure 02 Bug Tracking - Mantis 03 Issue Tracking & Requirement Management - Redmine 04 System Testing - TestLink 05 Summary 2
01 Overall Structure Server Local Code Push Hosting Build Build Webhook Test Repository Synchronization Plugin config config 3
02 Bug Tracking Mantis Bug Tracking System 이슈가보고된때로부터해결될때까지의과정을기록하고추적 Project 단위로이슈관리 이슈에대한히스토리저장 (Issue History) APM환경기반 (Apache, PHP, MySQL) 4
02 Bug Tracking Mantis 무료 설치가간단하다 필터에따라이슈들을구분하여한눈에볼수있다. ex) priority(none, low, normal, high, urgent, immediate) 이슈중에서도버그에특화되어있다. Email과연동하여 Issue 를알릴수있다. 5
02 Bug Tracking Mantis Bitnami Package 로한번에설치 $ wget https://bitnami.com/redirect/to/484142/bitnami-mantis-2.20.0-0-linux-x64-installer.run $ sudo./bitnami-mantis-2.20.0-0-linux-x64-installer.run 설치완료! 6
02 Bug Tracking Mantis 새계정생성 7
02 Bug Tracking Mantis 8
02 Bug Tracking Mantis 9
02 Bug Tracking Mantis 새프로젝트생성 10
02 Bug Tracking Mantis 이슈보고하기 11
02 Bug Tracking Mantis Access Level 이 Developer 이상인계정에게만이슈를할당할수있다! 12
02 Bug Tracking Mantis 13
02 Bug Tracking Mantis 프로젝트이슈들진행상황을알려준다. 14
02 Bug Tracking Mantis Jenkins 관리 > 플러그인관리 > Mantis plugin 설치 설치후 Jenkins 서버재부팅 ( 터미널로는 $ sudo service jenkins restart) Jenkins 관리 > 시스템설정 15
02 Bug Tracking Mantis Jenkins 관리 > System Log > 신규로그기록기추가 16
02 Bug Tracking Mantis 로그기록기추가하면다음과같이빌드후조치로 Mantis 의로그를볼수있다. 17
02 Bug Tracking Mantis Jenkins 프로젝트 > 구성 > Mantis 18
02 Bug Tracking Mantis Jenkins 프로젝트 > 구성 > 빌드후조치 19
02 Bug Tracking Mantis 20
03 Issue Tracking & Requirement Management Redmine Redmine 이란? 1) Ruby on rails로작성된오픈소스프로그램 2) 웹기반의다중프로젝트관리기능 3) 유연한이슈추적기능제공 4) 단순하고심플한 UI 5) 시간관리, 달력, Gantt 차트, 진척도등일정관리기능제공 6) 저장소연동을통한형상및버전관리기능제공 7) 이메일알람기능제공 다양한플러그인??? 21
03 Issue Tracking & Requirement Management Redmine 이슈??? - 오류및버그 - 새로운기능 - 추가내용 (i.e. 기능개선 ) - 질문및의견 - 요구사항관리 개발도중발생하여 긴급하지만 긴급도 중요하지않은일 중요하면서 긴급한일 중요도 중요하지만 긴급하지않은일 처리해야하는일을모두지칭한다고볼수있음. 22
03 Issue Tracking & Requirement Management Redmine 긴급하지만중요하지않은일 특정고객이새로운기능을빨리추가해달라고요청하는경우 중요하지만긴급하지않은일 설계를잘해서컴포넌트 / 인터페이스정리해두기 요구사항분석및개발 / 테스트계획수립 중요하면서긴급한일 고객의불평이쇄도할정도로심각하게발생한문제 23
03 Issue Tracking & Requirement Management Redmine 1. 즉시 전체프로젝트의진행을막고있는가장우선적으로처리해야하는이슈 2. 긴급 데이터손실 / 메모리결합과같이치명적인문제를발생시키는이슈 3. 높음 기능수행자체에영향을주는이슈 4. 보통 기능손실이나간단한문제를발생시키는이슈 5. 낮음 철자오류등기능자체와직접적인연관이없는이슈 24
03 Issue Tracking & Requirement Management Redmine 개설 개설 이슈가처음발견자에의해제기된상태 진행 진행 이슈가해결되기위해담당자에의해처리되고있는상태 해결 해결 발견자혹은담당자가확인하고있는상태. 만약해결되지않을경우다시개설상태로, 해결되면종료상태로이전됨. 종료. 종료 해당이슈가완전히해결된상태. 25
03 Issue Tracking & Requirement Management Redmine 상용프로젝트관리프로그램 Agile Process 기반 다양한플러그인활용가능 유료플러그인도존재하지만리스크 Atlassian사의제품군과높은연동성 Trello, Confluence, Sourcetree, Bamboo 오픈소스프로젝트관리프로그램 무료이지만기능이부족하진않음 심플하고단순한 UI 직관적, 적응쉬움 다양한플러그인??? 설치시프로그램多 Bitnami 이용 Ruby on rails에대한이해도필요 오래된플러그인은버전차이로사용 X 26
03 Issue Tracking & Requirement Management Redmine Apache, mysql, ruby on rails 등 설치해야하는파일이많으므로 한번에설치가능한 package 파일이용 Bitnami 접속해서 Download link 확인 이후 aws 접속해서 wget 명령어로.run 설치파일 download 함. 실행이거부되어있으므로권한변경. 27
03 Issue Tracking & Requirement Management Redmine 필요한정보입력하며진행 28
03 Issue Tracking & Requirement Management Redmine 우측상단의로그인 설치시기입한 admin ID/PW 로로그인 29
03 Issue Tracking & Requirement Management Redmine 프로젝트탭클릭 식별자의경우 Jenkins 에서바로가기추가할때 필요하므로알아둘것. 30
03 Issue Tracking & Requirement Management Redmine 주요기능 31
03 Issue Tracking & Requirement Management Redmine 완료기간을설정해야 Gantt 차트에서진행도가보임 유형과우선순위는상단의 관리 일감유형 / 코드값 에서새로운항목추가가능 32
03 Issue Tracking & Requirement Management Redmine 33
03 Issue Tracking & Requirement Management Redmine 범주의경우상단의 관리 코드값 에서새로운항목추가가능 검색 / 리포팅기능은다소미약함문서가 tab별로나누어져있지않음 요구사항관리시추가적으로 Trello 등을활용하는것도고려가능 34
03 Issue Tracking & Requirement Management Redmine Redmine Server 내 Local Repository 를두어 Git 과의연동이가능함. 단, Git 의경우 SVN 과다르게자동으로반영되지는않기때문에 배치파일을이용해 Local Repository 를일정주기마다 update 해주어야함. 35
03 Issue Tracking & Requirement Management Redmine Redmine 서버 (server 내설치한 Redmine folder) 안에 GitHub의원격 repository를 Local repository로넣어두어야함. Redmine은 local repository만인식함. 매번 id/pw로 remote repository에접근할수없으므로 credentials 설정변경함. Clone시최소인증과정거치면서 id/pw 저장 다음부턴인증필요없음. Redmine folder 로이동후, $ git config --global credential.helper store --file ~/.credentials $ git clone --mirror https://...git # remote repository 주소. 36
03 Issue Tracking & Requirement Management Redmine $ vi update.sh 로 update.sh 파일열고 #!/bin/bash cd ~/.git으로끝나는 Local repository 까지의경로 git remote update 로 update.sh 파일을 home에작성및저장. $ crontab e * * * * * ~/update.sh 로 crontab 파일을작성및저장. 매분마다 Local repository 가동기화하도록설정함. 37
03 Issue Tracking & Requirement Management Redmine 프로젝트생성시입력한식별자. 여기저기사용되니잘알아두어야함. 해당프로젝트와관련된여러가지설정을함 저장소연동도여기서함. 38
03 Issue Tracking & Requirement Management Redmine - Git - 주저장소체크 - 식별자설정 - 저장소에는 Redmine server의 Redmine folder 내부 Local repository path 입력 (pwd 명령어로확인가능 ) 39
03 Issue Tracking & Requirement Management Redmine 40
03 Issue Tracking & Requirement Management Redmine Jenkins Redmine plugin 설치 아래의 Redmine 탭에 Jenkins 에서이동할 project 이름과 Redmine url 입력. ( 여러개입력가능 ) Redmine 상단의관리 설정 일반 호스트이름과경로 ( 처음에는 localhost:3000 아래에적힌예시 :~~ 처럼뒤에 /redmine 오도록변경 ) 이후해당 url 입력하면됨 41
03 Issue Tracking & Requirement Management Redmine 아래로내려서 Assign Redmine project 체크. Website 에 Redmine base url 적고, Redmine 프로젝트생성시입력한식별자를입력하여연결. 42
04 System Testing - TestLink TestLink란? 1) 웹기반으로테스트를관리함. 2) 테스트명세서와계획, reporting, 요구사항 tracking 기능을가지고있음 Issue(Bug) tracking 시스템들과연동가능 3) 오픈소스 Test management tool. 43
04 System Testing - TestLink Unit testing 대상 : individual modules, components 보통 code를작성한 programmer 개개인에의해수행되는 test Integration testing 대상 : integration of modules/components 각 modules/components들에대한 testing이모여서수행됨 integration 전 / 도중 / 이후결과물에대해지속적으로 testing 필요 44
04 System Testing - TestLink System testing completed/integrated software product/system professional testing agent, tools에의해서수행됨 testing 영역도다양하고영역에따라사용되는 tool도많음 black-box testing 위주 Acceptance testing final system 실제 user 들에의해수행되는 beta testing 등. 45
04 System Testing - TestLink Software testing life cycle 46
04 System Testing - TestLink - store information on how testing is to be done - plan testing activities - report the status of quality assurance activities. - maintain and plan manual testing - run or gather execution data from automated tests - manage multiple environments to enter information about found defects Many test management tools incorporate requirements management capabilities to streamline test case design from the requirements 47
04 System Testing - TestLink TestLink 의특징 1) Web 환경의인터페이스 2) 테스트의우선순위부여기능및사용자의활동영역정의 3) 다양한종류의 DB를지원 (MySQL, MS-SQL등 ) 4) 트리구조를이용한테스트케이스작성기능 testcase 관리및그룹화 (Test spec suite / case) 5) 다양한 bug tracking system 들과연동가능 (Bugzilla, Mantis, Jira, TrackPlus, Eventum, Trac, Seapine) 6) 다양한형식의보고서제공 (HTML, MS-Word, MS-Excel) E-mail로직접보고서를보낼수있는기능제공 48
04 System Testing - Testlink TestLink TestLink 설치 - Bitnami 사용 - https://bitnami.com/stack/testlink/installer 에서자신의운영체제에맞게 다운로드할링크복사하여설치 - AWS 서버에서설치 49
04 System Testing - TestLink TestLink 설치 - 언어, 설치경로, 로그인정보, 포트번호등을설정 50
04 System Testing - TestLink TestLink 설치 - 설치시설정한 ID 와 PW 입력후, login - 설치완료 51
04 System Testing - TestLink TestLink 프로젝트생성 - 필요한정보입력후프로젝트생성 52
04 System Testing - TestLink Test Suite & Test Case 생성 53
04 System Testing - TestLink Test Suite & Test Case 생성 54
04 System Testing - TestLink Test Plan 생성 55
04 System Testing - TestLink Test Plan 생성 - 정보입력후생성 56
04 System Testing - TestLink Redmine 과의연동 57
04 System Testing - TestLink Redmine 과의연동 58
05 Summary Server Local Code Push Hosting Build Build Webhook Test Repository Synchronization Plugin config config 59
05 Summary Ⅰ. Jenkins Redmine 연동문제 plugin 노후화 / gem version 충돌문제급한대로바로가기를통한연결. 해결될가능성은낮지만고민해봐야할문제. (Redmine version 4.0.3 3.x.x 로 downgrade??) Ⅱ. Jenkins Mantis 연동문제 추후해결이안될시 GitHub or TestLink Mantis 대체연동을고려 60
05 Summary Requirement (Redmine) Testing (TestLink) Issue (Redmine, Mantis) - Software 에대한 Requirement 존재. - Requirement 는 Software 개발및테스팅등전반에걸쳐영향을미침. Requirement management 필요. 61
05 Summary Requirement (Redmine) Testing (TestLink) Issue (Redmine, Mantis) - 단순히 Test Execution을지칭하는것이아님. - Plan부터 Case creation 및 Execution까지매우방대한영역. Continuous test. - Testing의초점은 Requirement에서많이벗어나면안됨. Requirement management과함께가게됨. 62
05 Summary - Requirement + Testing 다양한 issue 발생가능 버그, 개선사항, 변경된사항, 추가요구사항 - issue는반영되거나해결되어야함 지속적으로추적 (Tracking) 해서반영 / 해결해야함 담당자에게올바르게전달및알려져야함 Requirement (Redmine) Testing (TestLink) Issue (Redmine, Mantis) 63
05 Summary IntelliJ Gradle + JUnit 5 Git & GitHub Jenkins Continuous Test & Integration Platform Requirement (Redmine) Testing (TestLink) Issue (Redmine, Mantis) 64
감사합니다 THANK YOU Software Verification Team 4 강 정 모 송 상 연 신 승 화 65