1 : 2018-03-21 Junit & IntelliJ 및빌드환경 Software Verification T1 [2018SV][T1] 201311263 김민환 201311308 전세진 201411278 서희진 201411317 조민규 1
INDEX 1. 2. 3. IDE IntelliJ Unit Test JUnit Build Configuration & CI Gradle with Jenkins 2
1. IDE IDE (Integrated Development Environment ) 프로그램개발에관련된모든작업을 하나의프로그램안에서처리하는환경을제공하는소프트웨어 3
1. IDE 4
1. IDE 장점 편리한설치설치단계부터단계별설정가능 Project 단위로관리편리한인터페이스 Workspace 단위로관리 html,css,javascript, 다양한언어지원 다른언어사용시플러그인설치필요 단점 안정적인 plugin plugin 끼리의의존성문제 IntelliJ Jetbrains 사에서개발한 Java IDE 안정적인 IDE 호환성문제다수.. 5
1. IDE 장점 무료사용가능 US $ 499.00 / 1year 파일수정시자동배포가능 JSP등동적로딩이가능한파일을수정하면자동으로배포되지않음 단점 Tomcat 구동속도가빠름 Tomcat 구동속도가느림 6
1. IDE 무료사용가능 학생용라이센스사용! 파일수정시자동배포가능본프로젝트에선사용할일없음 Tomcat 구동속도가빠름본프로젝트에선사용할일없음 해결방안 7
1. IDE IntelliJ 설치방법 홈페이지접속 https://www.jetbrains.com/idea/ 8
1. IDE IntelliJ 설치방법 Ultimate 선택 9
1. IDE IntelliJ 설치방법 학생용라이센스 10
1. IDE IntelliJ 설치방법 11
1. IDE IntelliJ 설치방법 학생용라이센스적용확인 12
1. IDE Java 설치방법 홈페이지접속 http://www.oracle.com/technetwork/java/javase/downloads/index.html 13
1. IDE Java 설치방법 자신의운영체제에맞는파일다운 & 설치 14
1. IDE Java 설치방법 시스템환경변수편집 JAVA_HOME 변수설정 Path 변수에 JAVA_HOME 추가 15
2. Unit Test Test Case 를생성하여 Method 와같은단위모듈이 정확하게구현되었는지검사 JUnit Java 기반의 Unit Test 를위한 Framework 16
2. Unit Test Method가 Public으로선언되어야한다. Method에 @Test Annotation을붙여준다. Source Code와다른폴더에저장해서구분한다. Assert를사용하여개발자가예상한값과 테스트주도개발 (TDD) 에서많이사용하는 Framework 정확히일치하면 Success 그렇지않으면 Fail 로표시 17
2. Unit Test @BeforeClass : @Test Method 실행전에초기화와자원할당작업수행 @Before : @Test Method 실행전에실행되어야하는 method 정의 @Test : Unit Test 대상 Method 정의 주요 Annotation @After : @Test Method 실행후에실행되어야하는 Method 정의 @AfterClass : @Test Method 실행후에초기화와자원정리작업수행 18
2. Unit Test 주요 API assertarrayequals(a, b): 배열 a와 b가일치하는지확인 assertsame(a, b): 객체 a와 b가같은객체인지확인 asserttrue(a): a가참인지확인 assertnotnull(a): a 객체가 null이아님을확인 19
2. Unit Test 예제코드 20
2. Unit Test 테스트결과 - 성공 21
2. Unit Test 테스트결과 - 실패 22
Build 란? Source Code File Build Executable File! 23
관련용어 Build Environment : 빌드를진행하기위해구성한환경 Build Tool : Source Code 에대한다양한작업을지원하는툴. Build Automation : 반복적으로수행하는 Build 를자동화시키는행위. 24
관련용어 Build Automation A. Source Code Binary Code B. Packaging C. Test D. Deploy to Operating System E. Create Document 25
관련용어 Build Automation Gradle 로간다! 26
Gradle 의장점 Groovy 를사용함 XML 을사용하지않음. 로직구현이가능! 간결함 27
Gradle 의장점 공식홈페이지문서화 굉장히잘되어있음! 문서화 28
Gradle 의장점 하나의 repository 내에여러개의하위프로젝트구성가능. 상위프로젝트의의존성및설정을하위프로젝트에서상속받아사용가능 멀티프로젝트 29
Gradle 의장점 Groovy 기반스크립팅을통해다양한기능을스크립트안에직접구현할수있음. 직접 Task 구현및플러그인제작가능 유연성 + 확장성 30
Gradle 의장점 다양한플러그인사용가능! Ex) checkstyle, pmd, findbugs, Sonar, Lint 등.. 플러그인생태계 31
Gradle 의장점 여러가지언어들에대한 Build Environment 를제공. Google 은 Android 용공식빌드 도구로 Gradle 을채택! 유연성 32
Gradle 의장점 빌드시스템에서빌드속도 개발생산성 Gradle 은성능향상을위한다양한기능들을지원함. 속도 33
vs 34
성능 빌드시간향상 개발생산성증가 35 35
성능 Incrementality : Gradle 은작업의입력및출력을추적하고필요한작업만실행함. 가능한경우변경된파일만처리하여작업을방지. 36 36
성능 Build Cache : 빌드의결과를 Cache 에저장하여재활용할수있다. 37 37
성능 Gradle Daemon : 빌드정보가메모리에최신으로유지됨. 38 38
성능 Build time performance test result (normal) Gradle Daemon Gradle : x sec. : 빌드정보가메모리에최신으로유지됨. Maven : x 2 sec. 39 39
성능 Build time performance test result (Memcached based) Gradle Daemon Gradle : x sec. : 빌드정보가메모리에최신으로유지됨. Maven : (x 100) + a sec. 40 40
User Experience 향상된 IDE 플러그인 : Gradle 팀과 IDE 제작팀과의 Collaboration! 최신 CLI 기능들제공. 빌드디버깅및최적화를위한 Build Scan 툴제공. 41 41
기존방식 모든개발완료후 QC 수행. CI( 지속적통합 ) 자동화를통해릴리스가능한소프트웨어를 짧은기간반복하여생산 42
지속적으로테스트를실행하고 테스트가품질을보증한다고신뢰할수있다면 언제, 어디서든지소프트웨어를릴리스할수있다. 43
Jenkins?? 개발작업을지원하기위한약 1,400 가지의플러그인을가지고있는오픈소스자동화서버 44
빌드자동화 주요기능 빌드파이프라이닝 자동화테스트 정적코드분석 배포자동화 45
빌드자동화 1. Gradle 연동 46
빌드자동화 1. Gradle 연동 47
빌드자동화 1. Gradle 연동 48
빌드자동화 2. VCS/ 빌드설정 49
빌드자동화 2. VCS/ 빌드설정 50
빌드자동화 2. VCS/ 빌드설정 51
빌드자동화 3. 빌드유발 52
빌드자동화 4. 빌드후조치 53
1 : 2018-03-21 Thanks! 54 54