Eclipse Subclipse (Team Presentation #2) 3조 Software Verification ( 소프트웨어검증 ) Team members : 200714170 모진종 200714173 심상문 200714179 황규원
Contents Subversion 과 Subclipse 정의 Subversion 동작과실행 Subversion 장점 CTIP 란? Code Coverage Eclipse 에 Subclpise 에드온설치 Subversion 설치과정 Subversion 을이용한 CI 2
Subversion? Subversion 은무료로사용할수있는소프트웨어 버전관리시스템 Command line 입력하는방식에서 Subversion(svn) 라고함 기존에사용하던 cvs 에는제한이있기에이를대체 하기위한오픈소스프로젝트로개발 3
Subclipse? 형상관리툴인 Subversion 을자바프로그램개발환경 에맞추어사용하기위한 Plug-in Subversion 을 Eclipse 와통합하여사용할수있게 도와주는 Eclipse Plug-in 4
Subversion 동작원리 Command line Client interface GUI Working copy Management library Client library DAV SVN local Internet SVN Server Repository interface Subversion Repository 5
Subversion (SVN) 의장점 CVS 에빠른업데이트및브랜칭태킹시간 Commit 단위가파일이아니라체인지셋이라는점 CVS 와거의동일한사용법 원자적 Commit 양방향데이터전송을통한네트워크트래픽최소화 트리별, 파일접근제어리스트 ( 권한에따른접근 ) 6
Subversion 실행 Version 저장화면 7
CTIP CTIP 은 CI 개념을 Java 기반의개발프로젝트에 쉽게적용하기위한 Platform CI 서버를통한지속적통합및빌드 품질도구들을통한코드품질검토 ( 테스트및정적 분석 ) 빌드결과의배포및관련자에게통보 8
CTIP(Cont..) CI 는소스코드로부터소프트웨어를빌드하고테스트하 여, 소스코드저장소의모든변경사항을지속적으로통합 하는애자일개발방법 (Agile development practice) 이것은개발자에게변경사항에대해빠른피드백을제공 CI 가수동으로수행될수도있지만, 흔히지속적통합서 버 (continuous integration servers) 로알려진소프트웨어 도구를사용하면더욱효율적 9
CTIP ( 통합환경구성 ) 10
CI ( 지속적통합 ) 종류설명 Check-Out Repository 에서최신소스를다운로드 Check-In 검증이완료된뒤에작업내용을소스저장소에다시업로드 TestCase Result 소스가정상적으로동작하는지확인 11
CI ( 지속적통합 ) 종류설명 Build Status Reuse Repository 빌드상태에대한정보를확인 프로젝트수행중필요한모든컴포넌트를 Reuse Repository 1. 관리 2. 공유 3. 버전불일치오류감소 12
Code Coverage 종류 Function coverage Statement coverage Decision coverage Condition coverage ( Predicate coverage) Modified d Condition /Decision Coverage (MC/DC) Path coverage Entry/exit coverage 설명 ( 소프트웨어내 ) 정의된 Function 이호출되는정도 기술된 Statement 가수행되는정도 기술된조건문이참 / 거짓모두수행되는정도 기술된조건문에서사용되는개별조건이참 / 거짓모두수행되는정도 기술된조건문에참 / 거짓이되기위한조건들의가능한조합모두가수행되는정도 * 항공기탑재될소프트웨어는 FAA 에서정의한 MD/DC 를 100% 로만족함. 테스트에의해이행되는경로의백분율. 100% 경로커버리지는 100% LCSAJ 커버리지를포함한다. 가능한모든호출된함수를반환하였는가 13
Code Coverage 7 가지조건을이용하는것이 TestCode Coverage 어느기준을적용하여테스트하느냐에따라커버리지 비율이달라짐 Critical medical devices 1. 비행기시스템 2. 은행시스템 3. 핵발전소 [ 실행예제화면 ] 각각에소프트웨어가꼭지켜야할우선순위가다르므로 커버리지비율또한달라짐 14
Eclipse 에 Subclpise 에드온설치 (1) Window->Preferences 를 클릭 Preferences Dialog 에서 Install/Update 의 ailable Software Sites 를클릭 15
Eclipse 에 Subclpise 에드온설치 (2) 16
Eclipse 에 Subclpise 에드온설치 (3) 17
Eclipse 에 Subclpise 에드온설치 (4) 18
Eclipse 에 Subclpise 에드온설치 (5) 19
Eclipse 에 Subclpise 에드온설치 (6) 20
Eclipse 에 Subclpise 에드온설치 (7) 21
Eclipse 에 Subclpise 에드온설치 (8) Window->Show View->Other 를클릭하면아래와같은 Dialog 가표시됨 22
Eclipse 에 Subclpise 에드온설치 (9) 정상적으로설치가완료된것을확인할수있습니다. 23
Subversion 설치과정 24
Subversion 설치과정 Install Completion 25
Subversion 설치과정 26
Subversion 설치과정 27
Subversion 설치과정 모든버전별자료가저장될폴더를생성 28
Subversion 설치과정 29
Subversion 설치과정 앞에서설정된폴더에서 Svnserve.conf 에서 anon-access 일반유저접근권 auth-access 계정사용자접근권한 password-db, Auth-DB 등설정한다. 30
Subversion 설치과정 그리고나서다시 passwd 파일을사용하고자하는 _ 아이디 = 사용하고자하는 _ 비밀번호로설정 서버가실행되고있는상태임 31
Subversion 설치과정 SubVersion을자동으로실행시켜주는프리웨어프로그램 http://www.pyrasis.com/main/svnservemanager Click here 설치후폴더지정후 Startt 를누르면서버가동작 32
Subversion 설치과정 [ 체크아웃을실행한결과화면 ] 명령 C:\>svn checkout svn://127.0.0.1 33
Subversion 을이용한 CI 단일소스저장소 (Source Repository) 관리 : 소스코드버전관 리시스템을도입하여소스코드를일관성있게관리 빌드자동화 : CI 서버와 Ant 빌드스크립트를통해빌드를자동화 자체적으로테스트가능한빌드 : 코드품질관리도구들을위한 단위테스트등의테스트성공여부와서버의 deploy 성공여부를통 해빌드성공여부를확인 빠른빌드수행 : CI 서버와 Ant 빌드스크립트를통해단계적빌드 (staged build) 를구성 34
Subversion 을이용한 CI(Cont..) 운영환경과유사한환경구성 : CI 서버의환경을운 영환경과유사하도록구성 최신결과물에대한쉬운접근 : CI 서버를통해최신 빌드결과물및빌드리포트를쉽게내려받을수있음 손쉬운빌드상태모니터링 : CI 서버가제공하는 RSS feed 혹은 e-mail 전송기능을통해빌드상태를 모니터링 35
Subversion 을이용한 CI(Cont..) 코드를자주실행하면통합에따른복잡성을줄일수 있음 깨진빌드를방지하면소스파일을실행하기전에개 별빌드를실행하는것이쉬워짐 다양한피드백메커니즘을사용하면쉽게무시되는 오래된빌드상태정보를방지 액션을취할수있는적임자에게피드백을주는것이 빌드문제를팀멤버들에게알리는최상의방법 36
Subversion 을이용한 CI(Cont..) 빌드머신에투자하면, 피드백의속도를높일수있 다. 빌드파이프라인을구현하는것이빌드팽창을줄이 는한가지방법이다. 필자가이글에서설명한반패턴은필자가자주목격 하는것들이지만, 이외에도여러가지가있다 : 최소한의프로세스들로구성된빌드가언제나성공 적인빌드상태로이어진다. 37
Q/A 38
END 39