2. 기능요약 는 Java 의 Coverage 를측정하기위한도구 EclEmma 는 의기능을 Eclipse 에서사용할수있도록구현된 Plug-in 주요기능 지원내용 Code coverage 분석 지원 단위별 Coverage 분석 지원 Source highlighting 기

Similar documents
1. 도구개요 STAF Testing 소개 각테스트대상분산환경에데몬을사용하여테스트대상프로그램을통해테스트를수행하고, 통합하며자동화하는 프레임워크 주요기능 테스트통합및자동화 카테고리 Testing 세부카테고리테스트설계및실행 커버리지 Test Integration / Aut

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

슬라이드 1

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

1. 도구개요 Implementation Eclipse CDT 소개 CDT(C/C++ Development Toolkit) 는 Eclipse plug-in 중하나로 C/C++ 개발을위한통합개발환경 (IDE : Integrated Development Environmen

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

슬라이드 1

Interstage5 SOAP서비스 설정 가이드

문서의 제목 나눔고딕B, 54pt

JDK이클립스

PowerPoint 프레젠테이션

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

슬라이드 1

02 C h a p t e r Java

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

2. 기능요약 Parallel 빌드지원등빌드자동화기능을지원하며다양한도구 ( 형상관리도구, Issue Tracker, Test 도구, IDE) 와의연동을지원함. 주요기능 Parallel 빌드지원 ( 다수프로젝트동시빌드 ) 분산빌드웹기반관리 알림형상관리도구지원

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

DE1-SoC Board

문서의 제목 나눔고딕B, 54pt

Facebook API

블로그_별책부록

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

슬라이드 1

슬라이드 1

B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위

PowerPoint 프레젠테이션

Chapter 1

NTD36HD Manual

4S 1차년도 평가 발표자료

2. 기능요약 자바프로그래밍언어에서사용하는자동화된소프트웨어빌드도구 주요기능 IDE 통합및도구지원 원격코드 Build 자동화 지원여부 대부분의도구지원 (Eclipse, NetBeans 등 ) 지원 (FTP, SCP, SFTP, SVN) 자동화 Build 중 Unit Te

슬라이드 1

초보자를 위한 C++

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

슬라이드 1

chapter1,2.doc

MPLAB C18 C

Microsoft PowerPoint - Java7.pptx

PowerPoint 프레젠테이션

슬라이드 1

1. 도구개요 FitNesses Testing 소개 자동화된테스팅을위한프레임워크인 Fit (Framework for Integrated Tests) 을기반으로하여테스트를수행하고, Fit 의테이블구조를통한웹상에서테스트결과를관리하고보고 주요기능 컴파일된파일 (.Class)

문서의 제목 나눔고딕B, 54pt

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

교육2 ? 그림

Studuino소프트웨어 설치

ICAS CADWorx SPLM License 평가판설치가이드

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Install stm32cubemx and st-link utility

JAVA 플랫폼 개발 환경 구축 및 활용

슬라이드 1

슬라이드 1

untitled

PowerPoint 프레젠테이션

Secure Programming Lecture1 : Introduction

Angry MOMO Presentation

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

CODESYS 런타임 설치과정

문서의 제목 나눔고딕B, 54pt

2. 기능요약 요구사항들을기록하고이들을 JUnit Test Case 와매치함으로써프로세스를단순화 주요기능단위테스트프로그래밍언어지원시스템테스트 GUI / Console 파라미터가있는메소드의테스트 TDD 지원여부지원 F#, C#, C++ 등닷넷환경지원모두지원 2.5버전이상

Microsoft PowerPoint - 안드로이드 개발 환경 구축(170411)

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

[ 스프링부트, 그래들, HelloWorld]STS,Gradle 설치및 WEB MVC 심플예제 간단히 STS 및 Gradle Support Plugin 을설치하여간단히 Spring Boot, Gradle Web 응용프로그램을작성해보자. 0. STS 및 Gradle Su

PowerPoint 프레젠테이션

슬라이드 1

슬라이드 1

1. 도구개요 JUnit Testing 소개 JUnit 은 Java 기반테스팅을위한프레임워크로, 단위모듈 (ex: Method) 이정확히구현되었는지를확인할수있는도구 주요기능 Test case 생성및실행, 오류추적 카테고리 Testing 세부카테고리테스트설계및실행 커버리

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

파워포인트

Microsoft PowerPoint - jfeature장범석서재원박동현.pptm

1

PowerPoint 프레젠테이션

1. 도구개요 Configuration & Version Management CVS 소개 버전컨트롤시스템으로소스코드나기타리소스의히스토리를쉽게관리할수있도록도와주는도구 주요기능 버전관리, 변경관리, 소스관리 카테고리 Configuration & Version Managem

1

CD-RW_Advanced.PDF

rmi_박준용_final.PDF

슬라이드 1

초보자를 위한 자바 2 21일 완성 - 최신개정판

DocsPin_Korean.pages

( )부록

,,,,,, (41) ( e f f e c t ), ( c u r r e n t ) ( p o t e n t i a l difference),, ( r e s i s t a n c e ) 2,,,,,,,, (41), (42) (42) ( 41) (Ohm s law),

PowerPoint Presentation

2. 기능요약 웹기반의서비스로써, 손쉬운일정관리및프로젝트관리를지원하는도구 주요기능일정관리그룹관리다중프로젝트관리체크리스트투표기능첨부파일 지원내용지원지원지원지원지원지원 1

슬라이드 1

Apache Ivy

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

PowerPoint 프레젠테이션

비긴쿡-자바 00앞부속

Google Maps Android API v2

MAX+plus II Getting Started - 무작정따라하기

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

Intro to Servlet, EJB, JSP, WS

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

1. 도구개요 HttpUnit Testing 소개 주요기능 HTTP서버와자바프로그램을통해상호작용을할수있는오픈소스기반의자바라이브러리. HttpUnit 은자바프로그램에서브라우저없이직접서버에접근. HttpUnit 은 HTML서버들의상호작용에대한 API를제공하여 JUnit 또

Transcription:

1. 도구개요 소개 주요기능 는 Java 프로그램을위한 Code coverage 도구 Ecl 는 의기능을 Eclipse 기반으로구현한 Plug-in Java 의 Code coverage 를 Class, Method, Line, Block 단위로측정하고보고함 카테고리 세부카테고리커버리지검증 커버리지 Code Coverage 도구난이도중 라이선스형태 / 비용 : Common Public License v1.0 / 무료 EclEmma : Eclipse Public License v1.0 / 무료 사전설치도구 : JVM 1.2 이상 (JDK 에포함 ) EclEmma : JDK 1.5 이상, Eclipse 3.5 이상 운영체제 Windows, Linux, Mac OS, UNIX 도구버전 : 2.0.5312(2012. 10) EclEmma : 2.2.0 (2012.10) 특징 개별.class 파일이나.jar 파일전체, 또는그일부를선택적으로검사할수있음 정적분석이나동적분석이가능하고 Overhead 가매우낮음 결과를 Text, HTML, XML 등의형태의보고서로출력해줌 적용회사 / 프로젝트 - 모든 JAVA 기반프로젝트 관련도구 EclEmma, Eclipse, JUnit 제작사 : Sourceforge EclEmma : Mountatinminds GmbH & Co. Kg, Munich 공식홈페이지 : http://emma.sourceforge.net EclEmma : http://www.eclemma.org 1

2. 기능요약 는 Java 의 Coverage 를측정하기위한도구 EclEmma 는 의기능을 Eclipse 에서사용할수있도록구현된 Plug-in 주요기능 지원내용 Code coverage 분석 지원 단위별 Coverage 분석 지원 Source highlighting 기능 지원 Export 기능 지원 Import 기능 지원 Coverage Overview 기능 지원 1

3. 도구실행환경 JVM 기반및 Eclipse의 Plug-in으로작동 다양한 OS를지원 Windows : Windows XP / Windows 7 (32, 64-bit 모두지원 ) Linux : 32,64-bit 모두지원 Mac OS X : 32, 64-bit 지원 JDK 필요 : ( : JVM 1.2 이상 EclEmma : JVM 1.5 이상 ) JDK 에포함 EclEmma Eclipse JDK (Java development kit) Windows / Linux / Mac OS / UNIX 1

4. 도구설치방법 세부목차 4.1 설치하기 4.2 JDK 설치하기 4.3 Eclipse 설치하기 4.4 JUnit 설치하기 4.5 EclEmma 설치하기 1

4. 도구설치방법 4.1 설치하기 (1/3) 다음의사이트로이동 http://sourceforge.net/projects/emma/files/emma-release 현재최신 version인 2.0.5312 폴더를선택하면다음파일들이있음 emma-2.0.5312.zip // 설치 image, binaries, documentation emma-2.0.5312-src.zip //source code와 build instructions emma-2.0.5312-lib.zip //.jar binaries ( 이미설치된파일들을수정할경우 ) 2

4. 도구설치방법 4.1 설치하기 (2/3) emma-2.05312.zip 을다운로드하여압축을풀면 README.txt 파일과함께 docs, examples, lib 등의폴더가생성되고 lib 폴더안에 emma.jar 가생성됨 3

4. 도구설치방법 4.1 설치하기 (3/3) examples 폴더의예제를수행하려면사전에 JDK 와 ant 가설치되어있어야함 JDK 설치 : 다음장참조 ant 설치 : http://ant.apache.org/bindownload.cgi 에서 apache-ant-1.8.4-bin.zip 를다운로드하여압축을풀고, 그 bin drectory 를홖경변수 Path 에추가 예제수행은다음명령어를사용 ant buildfile build-onthefly.xml emma all 실행결과가 coverage 폴더에생성 4

4. 도구설치방법 4.2 JDK 설치하기 (1/2) 다음의사이트에서 JDK 다운 http://www.oracle.com/technetwork/java/javase/downloads/index.htm JDK Download 를클릭하여자신의운영체제에맞는버전을다운받고설치 5

4. 도구설치방법 4.2 JDK 설치하기 (2/2) 다음과같이홖경변수를등록한다 시스템속성 고급 홖경변수 시스템변수 Path 항목의맨뒤에 JDK 가설치된폴더의 bin 폴더를추가함 본예제에서는 C:\Program Files\Java\jdk1.7.0_09\bin 위치추가 6

4. 도구설치방법 4.3 Eclipse 설치하기 (1/2) 다음의사이트에서 Eclipse 다운 http://www.eclipse.org/downloads/ 자신의운영체제에맞는버전을다운받고압축해제 7

4. 도구설치방법 4.3 Eclipse 설치하기 (2/2) Eclipse 를실행한첫화면 8

4. 도구설치방법 4.4 JUnit 설치하기 JUnit plug-in 은 Eclipse 에기본적으로포함되어있음 Window Preference 를통해해당 Eclipse 에서작업하는모든프로젝트에 JUnit library 를포함시킬수있음 9

4. 도구설치방법 4.5 EclEmma 설치하기 (1/7) Eclipse 의 Install New Software 를선택하여설치를시작 10

4. 도구설치방법 4.5 EclEmma 설치하기 (2/7) Add 버튼을눌러사이트입력팝업을띄움 name과 location에해당사이트를지칭할명칭과주소를적고 OK 버튼을선택 name: location: http://update.eclemma.org/ 11

4. 도구설치방법 4.5 EclEmma 설치하기 (3/7) 추가한 EclEmma 사이트선택 해당 Update Site 가가진 Plug-in 리스트를보여줌. 만약해당 site 가여러버전을가지고있다면버전리스트가출력됨. EclEmma 를선택하고 Next 버튼선택 12

4. 도구설치방법 4.5 EclEmma 설치하기 (4/7) 사용자가선택한설치할요소를확인후 Next 버튼선택 13

4. 도구설치방법 4.5 EclEmma 설치하기 (5/7) 약관에동의하고 Finish 를선택하여설치시작 14

4. 도구설치방법 4.5 EclEmma 설치하기 (6/7) EclEmma 설치요소를다운로드한후, 설치가완료되면 Eclipse 를다시실행한다. 15

4. 도구설치방법 4.5 EclEmma 설치하기 (7/7) 설치가완료되면단축아이콘에다음과같은 Coverage 아이콘이생김 16

5. 도구기능소개 세부목차 5.1 Code coverage 개요 5.2 개요 5.3 EclEmma 개요 5.4 Launching 5.5 Analysis 5.6 Export 5.7 Import 1

5. 도구기능소개 5.1 Code coverage 개요 (1/3) Code coverage 단위테스트나통합테스트와같은일련의테스트작업을수행했을때, 이테스트가전체 code 중몇 % 를테스트했는지판단이필요함 예를들어, 20 가지의기능을가지고있는프로그램이있을때, 몇가지기능에대해서테스트를했는가와같이, 수행한테스트가얼마나포함했는지를나타내는것을 Test coverage 라고함 좀더작은범위의테스트인경우에는개개의 Class 나 Method 을테스트하기때문에, 테스트에대한포함범위를각각의 Class 나 Method 또는각라인을척도로삼을수있는데, 테스트전체 Source code 중얼마나포함했는지를나타내는것을 Code coverage 라고함 2

5. 도구기능소개 5.1 Code Coverage 개요 (2/3) Code Corverage 도구의원리 Code Coverage 도구의주요기능은실행중에해당 Code 라인이수행되었는지를검증하는것임. 이를위해서 Coverage 도구는 Class 의각실행라인에 Code coverage 도구로기록하는 Logic 을추가하는것이기본원리임. 기존의 Class 에 Coverage 분석을위한 Code 를추가하는작업을 Instrument 라고함 public class HelloWorld(){ public void HelloKorea(){ System.out,println( Hello Korea ); } public void HelloSeoul(){ System.out.println( Hello Seoul ); } } Coverage 도구 public class HelloWorld(){ public void HelloKorea(){ coveragetools.log( class 및라인관련정보 1 ); System.out,println( Hello Korea ); coveragetools.log( class 및라인관련정보 2 ); } public void HelloSeoul(){ coveragetools.log( class 및라인관련정보 3 ); System.out.println( Hello Seoul ); coveragetools.log( class 및라인관련정보 4 ); } } 3

5. 도구기능소개 5.1 Code Coverage 개요 (3/3) Instrument 정적기법 : 프로그램이수행되기이전에 Source code 나 Compile 이완료되어있는 Class 파일을 Instrument 하여 Instrumented class 들을만든후, 그것을수행하는방식 동적기법 : 원본 Class 를가지고프로그램을수행하여 Runtime 시에 Class 가 Loading 되는순갂에 Class 에 Instrumentation 을하는방식 동적기법은 Runtime 에서 Code instrumentation 을하는부하가발생하게됨 는동적, 정적 Instrumentation 을모두지원하는데, 동적분석의경우에는 5~20% 정도의 Overhead 가있음 유사한 Coverage 도구인 Cobertura 는정적 Instrumentation 만지원함 4

5. 도구기능소개 5.2 개요 는 Java 의 Coverage 를측정하기위한도구. 이도구는실제로테스트된 Source Code 를확인하는데필수적임 의디자인목표 성능이훌륭한 Coverage 분석데이터를제공하지만, 이를위한 Build 시갂이나실행시갂의추가적인부하를최소화 동시에여러독립적인 Module 별개발을진행하는팀단위개발홖경에적합 빠른개발속도로소규모 Java 프로그램의테스트가가능할뿐만아니라, 대규모의 SW 를테스트하는것또한가능 는 JVM Profiler Interface(JVMPI) 방식을기본으로함 의 Coverage 측정의기본단위는 Basic block 임. Basic Block 은 Branch out 이나 Branch in 이없이연속적으로수행되는 Byte code 의집합임 는전체프로그램이나 Package, Class 또는 Member 에대하여 Class, Method, Line 또는 Basic block 단위로 Coverage 를측정할수있음 5

5. 도구기능소개 5.3 EClEmma 개요 EclEmma 는 Eclipse 기반으로동작하는 Java code coverage 도구 Eclipse 통합개발홖경에서 Program 의실행, Debugging, Unit testing 등을수행하면자동으로그결과에대한 Code coverage 가측정되어편리함 EclEmma 는 의기본구조에기반을두며, 가추구하고자하는목표를지향 빠른개발 / 테스트과정 : JUnit 같은단위테스트도구를이용한결과에대하여 Code coverage 분석을할수있어서편리 효과적인 Coverage 분석 : Coverage 결과를기반으로하여 Editor 의 Code 에라인별로컬러를다르게표시해줌. 사용자는이러한컬러를통해해당 Code 가 Coverage 에포함되는지확인할수있음 Non-invasive : EclEmma 는 code 의수정이나추가적인과정없이 Coverage 분석이가능함 6

5. 도구기능소개 5.4 Launching (1/4) Eclipse 의 Run/Debug 처럼실행가능한 Coverage launch mode 기능을가지고있음 이러한 Launch 는상단의단축아이콘과 Package explore view 에서실행가능함 Coverage 정보를수집하기위해사용자의프로그램이나 Unit 테스트를갂단하기실행. EclEmma 가지원하는실행타입은다음과같음 Local Java application Eclipse/RCP application Equinox OSGi framework JUnit test TestNG test JUnit pulg-in test JUnit RAP test SWTBot test 7

5. 도구기능소개 5.4 Launching (2/4) Coverage Configuration Run Coverage... 를선택하면 Launch Configuration 과유사한홖경설정기능을제공 1. Java Application 이나 JUnit (test class 가준비되었다면 ) 에엔트리를추가 ❶ ❷ 2. Browse 를선택하여 Project explore 가 가지고있는프로젝트리스트중실행할 프로젝트를선택 3. OK 버튼을눌러선택을완료 ❸ 8

5. 도구기능소개 5.4 Launching (3/4) Launch configuration 1. Browse 를선택하여프로젝트가가진시 작가능한 Class 를선택 2. OK 버튼을눌러선택을완료 ❶ ❷ 9

5. 도구기능소개 5.4 Launching (4/4) Launch configuration Coverage Tab 에서 Coverage 측정의대상을 Source 폴더단위로선택할수있음. 이때 Source 폴더단위는 Binary class 가모여있는하나의폴더를의미 Eclipse 는 Package 의구성에따라 Binary 가위치하는폴더를지정하는것이기본 1. Configuration 의두번째탭인 Coverage 를선택 ❷ ❶ 2. 해당리스트에서 Coverage 테스트를원 하는 Directory 를선택 3. Coverage 버튼을선택하여사용자가설 정한환경으로해당프로젝트에대한 Coverage 테스트를진행 ❸ 10

5. 도구기능소개 5.5 Analysis (1/2) 사용자가프로그램이나 Unit 테스트를대상으로 coverage 실행을마치고나면 EclEmma 는자동으로결과를보여주는 View 를실행함 실행하면 Coverage View 가자동으로실행되며, Coverage 결과를출력함 Coverage Overview 실행된프로그램은총 1120 의 instrument 를가지고있고그중테스트가된것은 481 개, 테스트되지않은부분은 639 개라는것을보여줌 EclEmma 는전체프로젝트의 Coverage 결과를보여줄뿐아니라, 각파일의 Coverage 결과도제공 11

5. 도구기능소개 5.5 Analysis (2/2) Source highlighting 각파일의 Coverage 결과를자세히보기위해서해당 Source 파일을선택하면다음그림과같이 3 가지색으로 Code 가구분되어있는것을확인할수있음 빨갂색 : 전혀테스트안됨 노랑색 : 일부만테스트됨 초록색 : 테스트완료됨 12

5. 도구기능소개 5.6 Export (1/4) EclEmma 는 Coverage 테스트결과를외부에서사용할수있도록 Export 제공 File Export... Other Coverage Report 13

5. 도구기능소개 5.6 Export (2/4) EclEmma 는 Coverage 결과를 HTML, XML, Test, 또는 session file 형식으로 Export 할수있음 14

5. 도구기능소개 5.6 Export (3/4) HTML 형식으로 Export 된 Coverage 결과는프로젝트전체에대한 HTML 문서와각파일에대한다수 HTML 문서로구성됨 파일에대한결과문서는 EclEmma 에서볼수있었던 Code 별테스트결과 ( 라인별컬러 ) 도포함됨 15

5. 도구기능소개 5.6 Export (4/4) EclEmma 는 Coverage 결과를 Session File 로 Export 할수있음 Session File 로 Export 한결과에대해서는 EclEmma 는 Import 를진행할수있음 (html, xml 은불가능 ) 16

5. 도구기능소개 5.7 Import (1/2) EclEmma 는외부에서취합된 Coverage 테스트결과를볼수있도록 Import 기능을제공 Session File 로 Export 된 Coverage 결과에대해서만 Import 가가능 17

5. 도구기능소개 5.7 Import (2/2) Browse 버튼을선택하여 Improt 할 Session File 을선택 선택한 es 파일이가지고있는 Coverage 결과리스트를볼수있음. 사용자는이리스트에서원하는부분의 Coverage 결과를선택하는것이가능함 ❶ ❷ 18

6. 도구활용예제 세부목차 6.1 예제설명 6.2 프로그램구현 6.3 Coverage Test 1

6. 도구활용예제 6.1 예제설명 1~50 까지의합을구함 1~50 까지의소수의합을구함 3*3 형식의구구단을출력 해당프로그램을 EclEmma 로 Coverage 테스트하여결과를살펴봄 2

6. 도구활용예제 6.2 프로그램구현 (1/3) 새로운 Java Project 를생성함 Project name 은 Cal 로함 3

6. 도구활용예제 6.2 프로그램구현 (2/3) 3 가지기능을담당할 Cal class 를생성 public class Cal { public int plus(int in_data){ int re_value=0; for(int i=1 ; i <= in_data ; i++) { re_value = re_value + i; } return re_value; } public int sosuplus(int in_data) { int re_value=0; int flag =0; int i, j; for(i=2 ; i < in_data ; i++) { for(j=2 ; j < 10 ; j++) { if((i!= j)&&(i%j == 0)) flag++; } if(flag == 0) re_value = re_value + i; flag = 0; } return re_value; } public void gugudanprint() { int i, j, k; for(i=1 ; i <= 9 ; i=i+3) { for(j=1 ; j <= 9 ; j++) { for(k=0 ; k < 3 ; k++) { System.out.print(i+k+"*"+j+"="+((i+k)*j)+" "); } System.out.println(""); } System.out.println(""); } } } 4

6. 도구활용예제 6.2 프로그램구현 (3/3) 생성한 Cal class 를실행해줄 main 을포함한 Class 를생성 class Work1 { public static void main(string args[]) { Cal cal = new Cal(); } } System.out.println("1 ~ 50 까지의합 : " + cal.plus(50)); System.out.println("1 ~ 50 까지의소수의합 : " + cal.sosuplus(50)); cal.gugudanprint(); // 구구단 3*3 으로출력 5

6. 도구활용예제 6.3 Coverage Test (1/2) Coverage 테스트를실행함 6

6. 도구활용예제 6.3 Coverage Test (2/2) 프로그램실행결과와 Coverage 테스트결과 7

7. FAQ 질문 1) 와 EclEmma 는어떻게다른가요? 답변 1 : EclEmma 는 프로젝트를 Eclipse 에서사용할수있도록 Plug-in 으로만든도구입니다. 만약사용자가 Eclipse 를사용하지않고 를사용하고싶다면, 따로 도구를설치하여 Java code 를테스트하면됩니다. 질문 2) Code coverage 는어느수준까지가적절한가요? 답변 2 : 높을수록좋겠지만 100% 를달성하는것은현실적으로어렵고, 비용대비효과측면으로볼때에바람직하지않습니다. 실용적인측면에서 85~90% 정도가좋겠습니다. 질문 3) 는 agile 개발방법을지원합니까? 답변 3 : 네. 는개발자들이 Coding 과정에서스스로 Test 를수행하고 Code coverage 를측정하여수행한 Test 의효과를확인할수있도록도와줍니다. TDD 를지향하며개발과검증을빠르고점짂적으로짂행하는것을지원합니다. 1

8. 도구평가 활용성 대부분의 Java 프로젝트에서 JUnit 과결합하여쉬운사용가능 범용성 작은프로젝트부터, 큰프로젝트까지가리지않고사용가능 호환성 JVM 기반으로써, 다양한플랫폼에서사용가능 성능 빠른작동성능, 적은 Overhead 기타 Open source 프로젝트로써, 비용이들지않음 Code Highlighting 기능으로구분하기가편리 도구평가의견 프로젝트의규모에관계없이효과적으로사용될수있음 쉽게사용가능하고, Overhead 가작아 Software 의품질을향상시키는데효과적 EclEmma 는 Eclipse 의 Plug-in으로 JUnit 과연동하면서 와유사한기능을편리하게제공 1

9. 용어정리 본매뉴얼에서사용하고있는용어의정리 Code Coverage 테스트를수행했을때실제로실행된 Code 의비율을측정하여그테스트의효과를평가하는 Software Engineering 기법. Class 나 Method 또는 Line 단위의비율로측정 JUnit Java code 를단위테스트하기위한도구. Eclipse 의 Plug-in 으로동작하며, 최근 Eclipse 버전에는기본탑재 1