SOFTWARE VERIFICATION JUnit & IntelliJ IDEA 및빌드환경 TEAM _5 201313250 서지혁 201214262 라가영 2016. 03. 18
목차 1. CI 2. IntelliJ IDEA 3. JUnit 4. Build Enviroment
1. CI What is CI? 프로젝트에참여주인개발자들의결과물을지속적으로통합하고, build 함으로써각자의저작물을통합할때생기는문제를예방하기위해도입되었다. 개발자들은문제점을빠른시점에알고고칠수있고, test code를한번작성해두면개발중해당부분에대한테스트는자동적으로진행된다. 자동화된단위테스트, 서버환경에서주기적으로혹은 commit 시 build, 정적 or 동적테스트성능측정, 소스코드로부터자동화문서화작업등을거친다. 3/ 12
1. CI 4/ 12
What is IntelliJ IDEA? 고급코드탐색과리팩터링기능을가장먼저지원한자바 IDE 중하나 2010년조사에서 IntelliJ IDEA, Eclipse, NetBeans와 Jdeveloper 중가장높은선호도를보인 IDE 2014년구글 Android Studio의기반이된 IDE 플러그인, 빌드인테그레이션, 형상관리, 데이터베이스시스템등에대한지원이내장되어있어개발효율을높여줌 5/ 12
1. JDK(Java Development Kit) 설치 Oracle 홈페이지접속 : http://www.oracle.com/index.html Downloads -> Java for Developers 클릭 6/ 12
1. JDK(Java Development Kit) 설치 JDK Downloads 7/ 12
1. JDK(Java Development Kit) 설치 JDK downloads 사용자의운영체제환경에맞춰서 downloads 8/ 12
1. JDK(Java Development Kit) 설치 Java 설치경로확인후복사 ( 환경설정에서경로지정시필요 ) 9/ 12
2. 환경변수설정 JDK 설치후환경변수설정을위해내 PC에서오른쪽마우스클릭 -> 속성 -> 고급시스템설정 10/ 12
2. 환경변수설정 시스템속성에서고급탭 -> 환경변수 11/ 12
2. 환경변수설정시스템변수에서 Path를찾아편집 -> 편집창이뜨면복사해두었던자바설치경로붙여넣기 12/ 12
3. IntelliJ IDEA 설치 IDEA 다운로드사이트접속 : https://www.jetbrains.com/idea/ 13/ 12
3. IntelliJ IDEA 설치 Community > 개인용으로무료 Utimate > 30 일사용이후라이센스비용지불 14/ 12
3. IntelliJ IDEA 설치 설치초기화면 15/ 12
3. IntelliJ IDEA 설치 IntelliJ 설치위치지정 16/ 12
3. IntelliJ IDEA 설치 바탕화면에바로가기생성 / 확장자연결여부 17/ 12
3. IntelliJ IDEA 설치 시작메뉴의폴더이름설정 18/ 12
3. IntelliJ IDEA 설치 설치중화면 19/ 12
3. IntelliJ IDEA 설치 설치완료 20/ 12
3. IntelliJ IDEA 실행 최초실행화면 21/ 12
3. IntelliJ IDEA 실행지정한위치혹은기본값으로지정되어있는위치에설정파일을생성할것인지. 기존에설치된정보가있으면첫번째버튼을클릭한다. 22/ 12
3. IntelliJ IDEA 실행 에디터테마를원하는것으로선택 23/ 12
3. IntelliJ IDEA 실행 자동으로환경을설정해줌. 이후에설정에서추가및변경가능. 24/ 12
3. IntelliJ IDEA 실행그외언어들을설치가능. 설정한개발툴을변경하거나추가하려면프로젝트상단바 File > Other Settings > Configure Plugins 25/ 12
4. Project 생성 Create New Project 클릭 26/ 12
4. Project 생성 Java project 생성을위해 New 클릭후 JDK 27/ 12
4. Project 생성 JDK 가설치된폴더를선택 28/ 12
4. Project 생성 Next 버튼클릭 29/ 12
3. JUnit What is JUnit? Unit test를위한프레임워크 테스트주도개발 (TDD, 테스트를먼저한뒤코드를작성하는방법 ) 에서많이사용하는프레임워크 자동화된테스트가가능 Unit test : 전체적프로그램을구성하고있는기본단위 (unit) 프로그램이정상적으로동작하는지테스트함 프레임워크 : 여러어플리케이션에서재활용가능하고, 공유가능한부분을미라만들어놓은기반구조를의미 30/ 12
3. JUnit JUnit 프레임워크가요구하는두가지조건 메소드가 public 으로선언되어야한다. 메소드에 @Test 라는애노테이션을붙여준다 31/ 12
3. JUnit * 애노테이션 (Annotation) 클래스나메소드등을선언시에 @ 를사용 클래스, 메소드, 변수등모든요소에사용가능 메타데이터라고도불림 컴파일러에게정보를알려주거나, 컴파일할때와설치시의작업을지정하거나, 실행할때별도의처리가필요할때사용 @Before : @Test 메소드가실행되기전에먼저실행되어야하는메소드정의 @After : @Test 메소드가실행된후에먼저실행되어야하는메소드정의 => 하나하나의테스트케이스마다작동 32/ 12
3. JUnit Benefits of JUnit? 테스트검증을별도의클래스에서작성하며이테스트를실재소스와함께보관할수있어테스트가체계적으로관리될수있도록한다. 테스트결과를 test클래스로남김으로개발자에게테스트방법및클래스의 history 제공 해당함수에대한실행시간을표시해줄수있다. IntelliJ IDEA 에서는별도의설치를필요로하지않는 다. 33/ 12
3. JUnit JUnit 으로 Unit test JUnit 라이브러리코드를사용해서테스트클래스를만 들고진행하는것 테스트를진행할때필요한클래스 테스트하고자하는대상클래스 (TargetClass) 대상클래스를테스트하는테스트클래스 (TestTargetClass) JUnit 프레임워크를제공하는 TestCase 클래스 34/ 12
3. JUnit JUnit 으로 Unit test 소스클래스 : 기능이구현된클래스 테스트클래스, 테스트케이스클래스 : 테스트구문을포함한클래스 -> 보통이두개의클래스는각기다른소스폴더에따로저장해서구분 35/ 12
3. JUnit JUnit 프레임워크의유용한클래스 Assert 클래스 데이터검증을하기위한메소드들로구성 테스트메소드의런타임중간에발생하는데이터에대해서검증가능 예상한값과클래스에서받은값이일치하지않는다면 AssertionError 가발생하게되며 JUnit에서는 failure라고처리 개발자가예상한값과정확히일치하면 success로처리 36/ 12
3. JUnit JUnit 프레임워크의유용한클래스 오버라이딩된 assert() 메소드들 메소드이름 assertarrayequals(object[] expected, Object[] actual) assertequals(object expected, Object a ctual) assertsame(object expected, Object a ctual) assertnotsame(object expected, Obje ct actual) 설명 두개의배열이같은지확인한다. expected 매개변수에는예상되는값을넣고 actual 은실행결과값을넣는다. 두개의매개변수가같은지확인한다. 메소드이름에서추측할수있듯이내부적으로 equals() 메소드를사용하기때문에값이같은지만확인한다. 두개의매개변수가같은지확인한다. assertequals() 와달리 JVM 메모리주소까지같은지확인한다. 두개의매개변수가다른지확인한다. assertsame() 메소드와반대되는기능이다. assertnull(object target) 매개변수 target 이 null인지확인한다. assertnotnull(object target) 매개변수 target 이 null이아닌지확인한다. asserttrue(boolean condition) 매개변수 condition 이 true인지확인한다. assertfalse(boolean condition) 매개변수 condition 이 false 인지확인한다. 37/ 12
3. JUnit JUnit 프레임워크의유용한클래스 Assert 클래스의메소드를사용하는방법 38/ 12
3. JUnit JUnit 프레임워크의유용한클래스 Assert 관련메소드를실행한결과 Failure Trace 를보면어떤값이같지않은지, 몇번째라인이잘못되었는지등실행결과를정확하게알수있다. 39/ 12
4. Build Environment BUILD 자바소스코드를컴퓨터가실행할수있는형태로변환 하는절차 40/ 12
4. Build Environment BUILD TOOL(BUILD AUTOMATION) 빌드하는과정을진행해주는스크립트나도구 41/ 12
4. Build Environment 빌드자동화시스템 소프트웨어빌드와관련된작업 ( 컴파일, 테스팅, 패키징 ) 을자동화하는것 CTIP을시작하기위한기본 Make, maven, gradle, cargo, rake 등 자바빌드자동화시스템 : Ant, Gradle, Maven, Continnum 등 42/ 12
4. Build Environment What is Ant? 2000년출시. 가장초기의빌드시스템. 독립형소프트웨어로발표. 빌드 / 배포 / 단위테스트등을포함하는통합툴로발전 빌드스크립트를 XML로작성해야하기때문에장황함 의존성을해결하기위해 Apache Ivy 사용. 43/ 12
4. Build Environment What is Apache Maven? 2004년출시. Ant의단점을보완한빌드시스템. 빌드관리를단순화, 라이브러리간의존성관리를위해탄생정해진디렉토리구조가있다 -> 의존성충돌에대한전략이약함. 빌드설정을위해 XML을사용해서장황함. 44/ 12
4. Build Environment What is Gradle? 2012년출시. Ant와 Maven의장점을취하고단점을보완함. 안드로이드의기본빌드시스템. 빌드스크립트를위해 Groovy 기반의 DSL을사용해기존 XML 빌드스크립트보다짧고간결함. 의존성해결을위해 Ivy를사용하였으나추후내장의존성계산기구현. 45/ 12
감사합니다.