소프트웨어검증 Junit/ Eclipse / 빌드환경 T3 박준모 200911391 한종철 200911429 신민용 201111364 * T3 Software Verification
목차 1 Eclipse 2 JUnit 3 빌드환경 + Q&A 2
1 Eclipse 1-1 JDK -JVM JRE JDK -JDK 설치 -path 설정 -설치확인 -JDK 설치오류및해결방법 1-2 Eclipse -Eclipse -Eclipse 설치 -Eclipse 설치오류및해결방법 3
1 Eclipse 1-1 JDK JVM JRE JDK JVM (Java Virtual Machine, 자바가상머신 ) 자바바이트코드를읽고, 검증하고, 실행할수있는주체 자바가상머신규격에정의된대로자바바이트코드를실행 실행환경의규격을제공 ( 필요한라이브러리및기타파일 ) 플랫폼에의존적 4
1 Eclipse 1-1 JDK JVM JRE JDK JRE (Java Runtime Environment, 자바실행환경 ) JRE 는 JVM 이자바프로그램을동작시킬때필요한라이브러리파일들과기타파일들을가지고있음 JRE 는 JVM 의실행환경을구현했다고할수있음 5
1 Eclipse 1-1 JDK JVM JRE JDK JDK (Java Development Kit, 자바개발도구 ) 작성한소스코드를컴파일하여바이트코드를생성하는단계까지제공 JDK 는개발을위해필요한온갖 API 가정의되어있어개발자들이이용할수있음 자바바이트코드는플랫폼에독립적 6
1 Eclipse 1-1 JDK JDK 다운로드 : http://www.oracle.com/index.html 7
1 Eclipse 1-1 JDK 8
1 Eclipse 1-1 JDK path 설정 제어판 > 시스템및보안 > 시스템 > 고급시스템설정 > 환경변수 > 시스템변수 CLASSPATH & JAVA_HOME 새로만들기 CLASSPATH: %classpath%. JAVA_HOME: C:\Program Files\Java\jdk1.8.0_40(JDK 가설치된위치 ) Path 편집 %JAVA_HOME%\bin; 추가 9
1 Eclipse 1-1 JDK 설치확인 java -version java & javac 10
1 Eclipse 1-1 JDK JDK 설치오류및해결방법 Windows XP 유저의경우, JDK 8을받으면이클립스가실행안됨 ( 오라클이 Windows XP 에대한지원을중단하면서해당문제가처리되지않음 ) JDK 7 설치 JDK 설치경로에특수문자나공백이있을경우, 문제발생할가능성있음 환경변수 path 설정시에 ( 큰따옴표 ) 로경로를감싸주거나 JDK 설치시에경로에특수문자나공백이없도록바꿈 11
1 Eclipse 1-2 Eclipse Eclipse 비영리공개소프트웨어커뮤니티에의해서제공되는개방형개발플랫폼 자바를비롯한다양한언어를지원하는프로그래밍통합개발환경을목적으로시작하였으나, 현재는 OSGi 를도입하여범용응용소프트웨어플랫폼으로진화 자바로작성되어있으며, 자유소프트웨어이지만막강한기능을자랑 12
1 Eclipse 1-2 Eclipse Eclipse 설치 http://www.eclipse.org/ 13
1 Eclipse 1-2 Eclipse Eclipse 설치 ( 계속 ) 압축을풀기만하면됨 공백이없는위치에... 14
1 Eclipse 1-2 Eclipse Eclipse 설치오류및해결방법 Failed to create the Java Virtual Machine(Eclipse 가 JVM 을인식못함 ) eclipse\eclipse.ini 파일수정 -vm C:\Program Files\Java\jdk1.8.0_40\bin\javaw.exe JDK 가설치된경로를확인하여수정 JDK 와 Eclipse 의버전 (32bit/64bit) 이다를경우오류발생 같은버전으로설치 아래스크린샷과같은경우 eclipse\eclipse.ini 파일에서아래와같은 256메가제한옵션들을지워줌 --launcher.xxmaxpermsize 256M 15
2 JUnit 2-1 JUnit? -JUnit 이란? -JUnit 특징 -Unit Test? 2-2 JUnit 사용방법 2-3 JUnit Test Method 2-4 Annotation JUnit + 사용예제 16
2 JUnit 2-1 JUnit? JUnit 이란? Java 에서사용하는단위테스트 (Unit Test) 를위한 FrameWork 단위모듈이정확히구현되었는지확인가능 2.1 버전이후부터는 Eclpise 안에내장 17
2 JUnit 2-1 JUnit? JUnit 특징 18
2 JUnit 2-1 JUnit? Unit Test? 프로그램코드를개개의 Unit 단위로쪼개어, 각 Unit 단위코드가제대로작동하는지확인하는테스트방법중하나 테스트시전체코드를돌리지않고 Unit 단위로돌리기때문에실행시간및비용측면에서이득 코드에러를빠르게찾을수있음 19
2 JUnit 2-2 JUnit 사용방법 JUnit 사용방법 JUnit 은 Eclipse 설치시내장되어있음 JUnit 을사용할 Java 프로젝트에서생성 20
2 JUnit 2-2 JUnit 사용방법 JUnit 사용방법 ( 계속 ) 21
2 JUnit 2-2 JUnit 사용방법 JUnit 사용방법 ( 계속 ) 6. 4. 7. 5. 22
2 JUnit 2-2 JUnit 사용방법 JUnit 사용방법 ( 계속 ) 23
2 JUnit 2-2 JUnit 사용방법 JUnit 사용방법 ( 계속 ) 1. 2. 3. 4. 24
2 JUnit 2-3 JUnit Test Method JUnitTest Method assertequals(a, b) : 객체 a,b가서로일치하는지확인 assertarrayequals(a,b) : 배열 a,b가일치하는지확인 ( 순서포함 ) assertnull(a) : 객체가 Null 을참조하는지시험 assertnotnull(a) : 객체가실존하는객체를확인하는지시험 asserttrue(a) : 조건식 a가참인지확인 assertfalse(a) : 조건식 a가 False 인지확인 assertsame(a,b) : a가참조하는객체를 b도참조하는지시험 assernotsame(a,b) :a 와 b가서로다른객체를참조하는지시험 fail() : 테스트결과를실패로처리한다. 기타 : http://junit.sourceforge.net/javadoc/org/junit/assert.html 25
2 JUnit 2-4 JUnit of Annotation JUnitof Annotation Annotation @Test @Before @After 설명 Unit Test 를수행하는대상 method 각 Unit test 의 method 실행전에실행되는 method 각 Unit test 의 method 실행후에실행되는 method @BeforeClass Class안에정의된모든 method에대해서 Test 전, 후에한번만호출된다. @AfterClass 객체생성등에사용. @Ignore @RunWith(value=class) @SuiteClasses(value=classes) @Parameters 테스트를수행하지않을 method unit Test 클래스를실행하기위한러너 (Runner) 를명시적으로지정할수있다. 보통여러개의 Test Class 를수행하기위해쓰인다. @Runwith 를이용해 Suite.class 를러너로사용한다. 하나의 method 에대해다양한테스트값을한꺼번에실행시키고자할때사용한다. 26
+ 사용예제 JUnit 사용예제코드 예제코드 : Text 파일을읽어오는간단한프로그램 27
+ 사용예제 JUnit 사용예제 (Annotation) Result 붉은색 : @BeforeClass 결과검은색 : @AfterClass 결과파란색 : @Before 결과초록색 : @After 결과 28
+ 사용예제 JUnit 사용예제 (Annotation) 6. 5 개의 Test case 를정상적으로실행했을때 5 개의 Test case 를중 1case 만 @Test 를선언하고나머지 Case 에는 @Test 선언을제거한경우 5 개의 Test case 중 testnotnull_2 에 @Ignore 선언 29
+ 사용예제 JUnit 사용예제 30
+ 사용예제 JUnit 사용예제 31
+ 사용예제 JUnit 사용예제 32
3 빌드환경 3-1 Ant -Ant -Ant 설치 -build.xml -빌드하는방법1 -빌드하는방법2 3-2 Hudson -Hudson -Hudson 설치 -빌드하는방법 33
3 3-1 Ant 빌드환경 Ant Ant(Another Neat Tool) 자바기반자동화빌드도구 빌드를위한설정및환경구성을 XML 파일을사용 기본 XML 파일은 build.xml 34
3 3-1 Ant 빌드환경 Ant 설치 Eclipse 는기본플러그인으로내장되어있음 혹은 http://ant.apache.org/bindownload.cgi 에서다운 다운로드받은후원하는곳에압축을푼다. 35
3 3-1 Ant 빌드환경 Ant 설치 ( 계속 ) 시스템변수편집 : ant 설치폴더 \bin 경로를시스템변수 Path 의값에추가한다. 36
3 3-1 Ant 빌드환경 build.xml project target Target task task 37
3 3-1 Ant 빌드환경 build.xml( 계속 ) task 특정한작업을수행하는코드단위 java, javac, jar, mkdir, copy, exec 등 기본적인형태 <task_name attribute="value1" attribute2="value2"... /> 예 ) 38
3 3-1 Ant 빌드환경 build.xml( 계속 ) target 속성설명타입필수 name 타겟이름 String yes depends 의존성이있는타겟목록을 ','( 콤마 ) 로구분 String no if 타겟이실행되려면설정해야할프로퍼티이름 Property명 no unless 타겟이실행되려면설정되지말아야할프로퍼티이름 Property명 no description 타겟의설명 String no 39
3 3-1 Ant 빌드환경 build.xml( 계속 ) project 속성설명타입필수 name 프로젝트이름 String no default 지정한타겟이없을때자동으로실행할디폴트타겟이름 String yes basedir 빌드파일내에서경로지정의기본이되는디렉토리 path no 40
3 3-1 Ant 빌드환경 빌드하는방법 1 프로젝트생성후마우스오른쪽클릭 Export 41
3 3-1 Ant 빌드환경 빌드하는방법 1 ( 계속 ) Export Ant Buildfiles Finish 42
3 3-1 Ant 빌드환경 빌드하는방법 1 ( 계속 ) build.xml 이프로젝트내에생성됨 43
3 3-1 Ant 빌드환경 빌드하는방법 1 ( 계속 ) build.xml 마우스우클릭 Run as Ant Build 결과 44
3 3-1 Ant 빌드환경 빌드하는방법 2 XML 파일을프로젝트내에직접생성 45
3 3-1 Ant 빌드환경 빌드하는방법 2 ( 계속 ) Ctrl+space 로 buildfile 의기본 xml 템플릿을생성 Project, target, task 를맞게작성한다음 Ant Build 실행 46
3 3-1 Ant 빌드환경 빌드하는방법 3 ( 계속 ) CMD 창에서 ant 입력 47
3 빌드환경 3-2 Hudson Hudson Continuous Integration Tool : 정기적으로혹은특정시기에자동으로빌드 Git 과 SourceTree 로버전관리 48
3 빌드환경 3-2 Hudson Hudson 설치 Hudson.war 다운로드 : http://hudson-ci.org/ 49
3 빌드환경 3-2 Hudson Hudson 설치 ( 계속 ) java-jar hudson.war 명령으로 hudson 설치및실행 50
3 빌드환경 3-2 Hudson 빌드하는방법 계정권한설정 Admin 으로사용할계정생성후 Manage hudson configure security 에서추가 51
3 빌드환경 3-2 Hudson 빌드하는방법 ( 계속 ) 계정권한설정 Manage team 에서작업할사용자를추가 52
3 빌드환경 3-2 Hudson 빌드하는방법 ( 계속 ) 새작업만들기 새작업을만들고과작업을수행할팀을지정 53
3 빌드환경 3-2 Hudson 빌드하는방법 ( 계속 ) 작업설정 작업설정에서코드를저장할 git repository 를설정 54
3 빌드환경 3-2 Hudson 빌드하는방법 ( 계속 ) 작업설정 Build Triggers Schedule 란에 분시일월요일 순서로자동빌드할시간을기록 * 는전부를뜻함 분 0 ~ 59 사이의값을입력합니다. 시 0 ~ 23 사이의값을입력합니다. 일 1 ~ 31 사이의값을입력합니다. 월 1 ~ 12 사이의값을입력합니다. 요일 0 ~ 7 사이의값을입력합니다. (0과 7은일요일입니다.) 55
3 빌드환경 3-2 Hudson 빌드하는방법 ( 계속 ) 빌드 Build now 를클릭하면즉시빌드시작 56
3 빌드환경 3-2 Hudson 빌드하는방법 ( 계속 ) 빌드결과 빌드시간, 코드변경사항, 에러등확인가능 57
+ Q&A Question and Answer T3 Software Verification 58
참고 출처 : http://wearehacker.com/index.php?mid=java&category=0&page=2&document_srl=62684 출처 : http://blog.naver.com/hakchangs/130110701396 출처 : http://ko.wikipedia.org/wiki/%ec%9e%90%eb%b0%94_%ea%b0%80%ec%83%81_%eb%a8%b8%ec%8b%a0 출처 : http://blog.naver.com/ksh81850/220020148964 출처 : http://goo.gl/yztzun 출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirid=1040201&docid=67978846&qb=a mrrioqzteuwsq==&enc=utf8§ion=kin&rank=9&search_sort=0&spq=0 출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirid=1040202&docid=148199275&qb=7j207yg0 66a97IqkIOyEpOy5mCDsmKTrpZg=&enc=utf8§ion=kin&rank=2&search_sort=0&spq=0 출처 : http://bitkorea.net/220179446077 출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirid=10402&docid=118493438&qb=7j207yg066 a97iqkioyepoy5mcdsmktrpzg=&enc=utf8§ion=kin&rank=4&search_sort=0&spq=0 출처 : http://ko.wikipedia.org/wiki/%ec%9d%b4%ed%81%b4%eb%a6%bd%ec%8a%a4_(%ec% 86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4) 출처 : http://terms.naver.com/entry.nhn?docid=2454871&cid=42346&categoryid=42346 T3 Software Verification 59
감사합니다 T3 Software Verification