JFeature & Ant & Using Tools Summary Team 1 200310394 남장우 200412342 이종훈
Contents JFeature Requirements & Code JFeature USE JFeature JFeature Summary Ant Build Ant Ant s Function Ant s XML Ant with JUnit Tools Summary CTIP CTIP & Tools Tools Using Our Team s Plan
JFeature & Ant & Using Tools Summary JFEATURE
Requirements & Code Requirements Specification(Document) Class Design(UML Tools) Cording(IDE Tools) Unit Test(JUnit) Compare Requirements with Test Result(?)
JFeature JFeature 요구사항들을기록하고이들을 JUnit Test Case와매치함으로써프로세스를단순화할수있습니다. 즉, 요구사항을보고 Unit Test를진행하여좀더직관적인 Unit Test가가능하게끔합니다. JFeature 특징 JUnit의 Testcase 메소드와통합할수있습니다. 요구사항의수정사항이생겼을때, 즉시뷰를제공하므로빠른편집이가능합니다. 요구사항이반영여부를 Coverage형태로쉽게확인할수있습니다. 각요구사항의 priority, dependency 등을연관하여 Unit Test를진행할수있습니다. Why Use JFeature 요구사항조사를잘해도해당요구사항에대한내용의구현이잘되지않는다면소프트웨어개발의의미자체가불분명해진다. 또한, 요구사항을일일이문서를찾아가며대조하는작업도번거로워자동화도구가필요하다.
Use JFeature Create Requirements Requirements 파일을생성하는방법
Use JFeature Create Requirements Requirements 파일생성후요구사항을추가하고작성합니다.
Use JFeature Create Requirements & Test Method 해당 Requirements 에맞는 TestMethod 를지정합니다
Use JFeature Create Requirements JUnit Test 실행을합니다.
Use JFeature Create Requirements UnitTest Result 가보이고하단의 JFeature 탭에 Requirement Coverate Report 가생긴것을알수있습니다. 탭우측의버튼을클릭하여 Detail 창을볼수있습니다.
Use JFeature
Use JFeature Create Requirements Requirement Coverage Report Summary 창입니다. 노란색 : Requirements 는있으나, TestMethod 가없는경우빨간색 : TestMethod 가 Failure 녹색 : Success
Use JFeature TestFail Details Requirement Coverage Details 창입니다. 에러내용에대한 Detail 내용을볼수있습니다.
Use JFeature Save file Requirements of JFeature Requirements 파일을저장할수있습니다. CSV 파일혹은 XML 로저장할수있는데, CSV 파일은 Excel 에서불러와편집할수있습니다.
Save file Requirements of JFeature Use JFeature
Use JFeature Round Trip Engineering CSV 파일또는 XML 파일을읽고해당요구사항수정후원본파일과 Synchronize 하는방법입니다. 1 Synchronize JFeature requirements file : JFeature 요구사항파일의변경사항을 CSV, XML 파일에변경 2 Synchronize external requirements file : CSV,XML 파일을 JFeature 요구사항파일의적용 3 Synchronize using Requirement : ID 요구사항 ID 를이용하여비교후적용 4 Synchronize using Requirement Title : 요구사항제목을이용하여비교후적용 5 Append non-matching requirements : 일치하지않는요구사항도추가
JFeature Summary JFeature JFeature는맹목적인 Unit Test보다는좀더소프트웨어설계목적에부합하는 Unit Test를수행하기위해만들어진 Requirements & Analysis Tool. 미리조사된 Requirements로 Test Method를지정하고해당값이나오는지측정하고바로발생하는 Coverage Report를이용하여코더가아니더라도해당 Unit Test를이해할수있을것. JFeature + JUnit Requirements툴인 JFeature와 UnitTest 툴인 JUnit은별도로설정해줄것도없이플러그인다운로드후압축해제하고이클립스의플러그인폴더에복사해넣어주기만하면간단히설치되고호환도잘되므로사용하기가매우편리했다. 또한서로사용되는방식에있어상호보완작용으로코딩및테스팅하는데많은도움이될것.
JFeature & Ant & Using Tools Summary ANT
Build Build 우리가흔히 Build라고하는것은 Compile을뜻한다. 여러개의소스를컴파일하여오브젝트파일여러개만들고이것들을실행파일로만드는것을수동으로빌드한다면여러줄의커맨드라인명령어가필요하다. 이러한작업은불편하고귀찮다. Solution Example 간단한예로 Linux 의 Makefile로일련의커맨드라인작업을묶고 make명령으로실행하는방법이있다. #vi Makefile // vi에디터로일련의작업작성 #make // 일련의작업실행
Ant Ant? Ant 는 JAVA 기반의빌드자동화도구이다. Make 와같이일련의빌드를처리할수있게끔도와주는 Tool 이다. 그렇다면왜 Make를쓰지않고궂이 Ant를쓰나? JAVA 는 Virtual Machine으로어떤 Device나 OS에서도동작하게끔작성할수있다. 그러나 Make는 Unix 혹은 Linux기반의 OS에서동작한다. 고로 JAVA 와 Make는궁합 (?) 이맞지않다고볼수있다. 그러나 Ant는 XML을사용하여멀티플랫폼지원이가능하다. 따라서 Ant가좀더 JAVA 와궁합이맞는다고볼수있다. And So, JAVA 언어로작성된코드를테스팅해야하므로, Ant 를프로젝트빌드통합도구로사 용할예정이다.
Ant s function 빌드 빌드 : javac명령어를이용하여 java컴파일을하면 java소스파일과동일한디렉토리에클래스파일이놓이게된다, 물론옵션지정으로지정디렉토리에클래스파일이생성되게끔할수있으나, 매번옵션설정하는것이번거롭다. Ant를이용하여소스와클래스파일을완전히분리할수있고별도로관리할수있어서파일이뒤섞이는문제를해결할수있다. With JUnit Ant 를사용하여 JUnit 테스트를실행하면테스트할클래스의집합을쉽게작성할수있고, 테 스트결과물을 XML 이나 HTML 등다른형태의보고서형태로변환이가능해진다. With CVS CVS 의명령어들도그대로지원한다. 따라서주기적으로 CVS 업데이트를해야할때 Ant 만실 행하면업데이트는물론커밋까지모두자동화할수있다. 배포본작성 : jar, gzip, tar, zip 등의압축유틸을기본으로지원하기때문에별도의압축유틸리티를사용 하지않고도배포본을작성할수있다.
Ant s XML build.xml Project Target Task project 와 target 은 1:n 의관계 Target 과 Task 도계 1:n 의관계
Ant s XML(Project) Project Attribute 속성설명타입필수 name 프로젝트의이름 String no default 지정한타겟이없을때자동으로실행할디폴트타겟이름 String yes basedir 빌드파일내에서경로지정의기본이되는디렉토리 Path no
Ant s XML(Target) Target Attribute Target 의의존성을조사하여의존되어있는 Target 을찾아해당 Target 을먼저실행시킨다. 속성 설명 타입 필수 name 타겟의이름 String yes depends 의존성이있는타겟목록을, ( 콤마 ) 로구분한다. String no if 타겟이실행되려면설정해야할프로퍼티이름 Property no unless 타겟이실행되려면설정되지말아야할프로퍼티이름 Property no description 타겟의설명 Property no
Ant s XML(Task) Task java javac Jar javadoc classname classpath srcdir includes destfile basedir sourcepath
Ant s XML(Task) Task Task는일련의작업을수행할수있는코드단위 기본구조 : <task_name attribute1 = value1 attribute2 = value2 /> 아래의소스코드는 hello, 와첫번째파라미터값을포함하여출력하는문장이다. 해당문장에 World라는파라미터값을보내서빌드하는 Ant Task 는오른쪽과같다. helloproject.helloproject class source package helloproject; public class HelloProject { public static void main(string[] args){ System.out.println( hello, + args[0]); } } helloproject.helloproject class Execute Task <java classname= helloproject.helloproject > <arg value= World /> <classpath> <pathlement location= classes /> <pathlement path= ${java.class.path} /> </classpath> </java>
Example in Eclipse Ant s XML(Example)
Example in Eclipse Ant s XML(Example)
Example in Eclipse Ant s XML(Example)
Ant s XML with JUnit Ant With JUnit Ant 와 JUnit 을연동하여사용하려면 Ant 에 JUnit Library 를추가해야한다. 방법 은다음슬라이드에서설명하기로한다. JUnit Task Attribute 속성 설명 타입 필수 printsummary TestCase마다한줄씩요약설명 Boolean no fork 각각의테스트는별도의 JVM상에서실행 Boolean no haltonerror 테스트실행중에오류가발생하면빌드를멈춤 Boolean no haltonfailure 테스트실행중에실패가발생하면빌드를멈춤 Boolean no errorproperty 테스트에오류가있다면 true 가될프로퍼티 String no failureproperty 테스트에실패가있다면 true 가될프로퍼티 String no
Ant s XML with JUnit JUnitreport junit태스크외에 JUnit과관련이있는옵셔널태스크로 junitreport태스크가있다. 태스크의결과로생성된각각의 XML파일들을하나의 XML파일로병합하여 HTML이나원하는형태로변경하는태스크이다. 원래는추가라이브러리가있어야사용가능했으나 JDK1.5버전이상에는기본적으로XSLTX 라이브러리를지원하기때문에추가설치하지않아도된다. JUnitreport Task Attribute 속성설명타입필수 tofile junit 태스크로생성한 XML 파일들을조합한리포트파일디폴트는 tests-testsuites.xml XML 파일 no todir junit 태스크로생성한 XML 파일들을조합한리포트결과물들의디렉토리지정. 디폴트는현재디렉토리 디렉토리 no <fileset> junit 태스크로생성한 XML 파일집합을지정함하위엘리먼트 no <report> 병합된문서들을어떻게리포팅할것인지를지정. 즉프레임여부와리포트파일들의디렉토리를지정. 하위엘리먼트 no
Ant + JUnit(Library) Ant With JUnit
Ant + JUnit(Library) Ant With JUnit
Ant + JUnit(Library) Ant With JUnit
Ant s XML with JUnit(Ex) XML Example build.xml 에 junit 태스크를추가한다. 사용법은아래와같다 ****************************************************************** <target name="test" depends="compile"> <junit printsummary="true" haltonfailure="yes"> <classpath> <pathelement path="${classes.dir}"/> </classpath> <test name=" 테스트하고자하는클래스명 "/> </junit> </target> * haltonfailure="yes" 를통해에러발생시빌드를중단시킨다. 테스트하고자하는클래스가어디에위치하는지를 <classpath> 엘리먼트를통해선언한다음 <test> 엘리먼트를통해테스트를하고자하는클래스를지정한다. * <junit> 테그안에 <formatter> 테그를사용하면테스트내용을파일형식으로저장할수있다. 예를들어 <formatter type="xml"/> 을사용하면테스트내용이 XML 형식으로저장된다.
JFeature & Ant & Using Tools Summary USING TOOLS SUMMARY
CTIP 도입할예정의 CTIP 도식 현재까지사용예정인도구를이용한 CTIP 구성 Code 작성 Eclipse+ JUnit Integration UnitTest Our Team Building & Test Ant SCM JUnit+ JFeature Sub- Version
CTIP & Tools 단일소스저장소 (Source Repository) 관리 소스코드버전관리시스템을도입하여소스코드를일관성있게관리 합니다. == Subversion 빌드자동화 CI 서버와 Ant 빌드스크립트를통해빌드를자동화합니다. == Ant 자체적으로테스트가능한빌드 코드품질관리도구들을통한단위테스트등의테스트성공여부와서버의 deploy 성공여부를통해빌드성공여부를확인합니다. == Junit, Ant, JFeature
CTIP & Tools 빠른빌드수행 CI 서버와 Ant 빌드스크립트를통해단계적빌드 (staged build) 를구성합니다. == Ant 운영환경과유사한환경구성 CI 서버의환경을운영환경과유사하도록구성합니다. == Test Server(Physical), Our Laptop 최신결과물에대한쉬운접근 CI 서버를통해최신빌드결과물및빌드리포트를쉽게내려받을수있습니다. == Test Server(Physical), Our Laptop 손쉬운빌드상태모니터링 CI 서버가제공하는 RSS feed 혹은 e-mail 전송기능을통해빌드상태를모니터링할 수있습니다. == Ant script
Tools JUnit 기본단위테스팅도구 JFeature 및 Ant 연동 Eclipse TPTP 코드의시스템성능테스트도구 Eclipse 자체사용 Subclipse 소프트웨어버전관리도구 공동작업을원활히하기위해서버를두고사용 JFeature 요구사항분석도구 JUnit 과연동하여요구사항과걸맞는테스팅진행시사용 Ant 빌드도구 통합빌드를하거나일정에맞춘통합테스팅을위한자동화도구
Using JUnit 코드가미리주어져코딩시사용하는것이아니기때문에코드를면 밀히살펴보고어떤테스팅을할지결정해야함. Eclipse TPTP 사용방법이다소어려움. 사용방법의 Study 를좀더진행후테스팅 후반부에사용해야할듯. Subclipse 한 PC 로같이테스팅하거나서로다른 PC 로테스팅할경우테스팅 진행중간중간에수시로 commit 하여백업 JFeature JUnit 과연동하여요구사항에맞는 Unit Testing 과함께요구사항이 제대로구현되었는지확인 Ant JUnit 연동하여테스팅리포트작성을 HTML 로하고, SVN 과도연동 하여사용예정, XML 지식이부족하므로좀더 Study 가필요함
Our Team s Plan Team 1 남장우 이종훈 IDE Unit Subversion Eclipse IDE Unit Subversion Subversion Tool Test Client TPTP & Ant Tool Test Server Client Eclipse JUnit Commit Update Testing Execution Report Eclipse JUnit 사용자권 한설정 통합테스 팅일정 관리 Commit Update