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

Similar documents
PowerPoint 프레젠테이션

1. 도구개요 Requirement Analysis & Management JFeature 소개 요구사항들을기록하고이들을 JUnit Test Case 와매치함으로써프로세스를단순화할수있다 주요기능 요구사항기록, Report 생성하기 카테고리 Requirement Anal

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

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

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

슬라이드 1

슬라이드 1

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

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

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

슬라이드 1

JUNIT 실습및발표

ppt.glzy8.com提供海量PPT模板免费下载!

슬라이드 1

슬라이드 1

PowerPoint Presentation

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

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

슬라이드 1

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

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

2. 기능요약 정해진규칙에따라소스코드를검사해주고이에대한결과를 report 하게함으로서코딩효율을높여주는도구 주요기능 지원내용 소스코드검사범위 프로젝트 대상언어 Java, JavaScript, XML, XSL, JSP 코드위배사항발견지원 ( 코딩스타일및사용되지않는코드 )

문서의 제목 나눔명조R, 40pt

1. 도구개요 TestLink Testing 소개 주요기능 TestLink 는웹을기반으로테스트를관리한다. 또한테스트명세서와계획, 리포팅, 요구사항트래킹기능을가지고있 으며버그트래킹시스템들과연동이가능하다. 요구사항트래킹기능제공, 다양한형식의보고서작성기능 카테고리 Testi

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

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

슬라이드 1

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

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

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

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

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

슬라이드 1

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

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 를선택하면설치파일을

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

Studuino소프트웨어 설치

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

파워포인트

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

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

슬라이드 1

슬라이드 1

Introduction to SVN, Junit, Jfeature, Mantis, CTIP Project Team T4 Date Team Information 강태준 김서우 홍유리 Team 4 1

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

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

1

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

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

2 JUnit 이필요한이유 기졲의테스트방식 클래스에서테스트최소단위는메소드이며어떤것이유효한지를찾으려면하나씩테스트해야함테스트구현하는과정에서한번의단일테스트가실패할경우, 후속테스트가전혀수행되지않아전체적인테스트가불가능테스트를자동으로시작해주는프레임워크가없어각테스트를시작하기위해서는

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

NTD36HD Manual

슬라이드 1

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

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

Junit

JDK이클립스

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

1. Eclipse 2. JUnit 3. STATIC ANALYSIS 4. PMD 5. Eclipse TPTP 6. FIND BUGS INDEX 2

JAVA PROGRAMMING 실습 08.다형성

UnitTesting(ÇѱÛÆÇ).hwp

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint Presentation

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

오버라이딩 (Overriding)

MaxstAR SDK 2.0 for Unity3D Manual Ver

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

Chapter 1

PowerPoint 프레젠테이션

소프트웨어 검증 및 설계

PowerPoint 프레젠테이션

Microsoft Word - src.doc

CODESYS 런타임 설치과정

제11장 프로세스와 쓰레드

Microsoft PowerPoint - [JMeter]Manual.ppt

Cubase AI installation guide

슬라이드 제목 없음

Design Issues

윈도우시스템프로그래밍

PowerPoint Presentation

!K_InDesginCS_NFH

Install stm32cubemx and st-link utility

PowerPoint 프레젠테이션

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

02 C h a p t e r Java

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

Microsoft PowerPoint - e pptx

JUnit & Eclipse

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

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

PowerPoint Presentation

tut_modelsim(student).hwp

윈도우시스템프로그래밍

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

슬라이드 1

Microsoft PowerPoint - chap04-연산자.pptx

ISP and CodeVisionAVR C Compiler.hwp

Transcription:

1. 도구개요 소개 은 Java 기반테스팅을위한프레임워크로, 단위모듈 (ex: Method) 이정확히구현되었는지를확인할수있는도구 주요기능 Test case 생성및실행, 오류추적 카테고리 세부카테고리테스트설계및실행 커버리지 도구난이도하 라이선스형태 / 비용 Common Public License 1.0 / 무료사전설치도구자바기반 IDE(Eclipse, NetBeans 등 ), JDK 운영체제 Windows, Linux, Mac OS X, UNIX 도구버전 4.10 (2010. 10) 특징 메소드와같은단위모듈별테스팅을가능케함으로써코드품질을보장 정확한단위테스팅을가능케함으로써통합테스팅시회귀결함 ( 모듈통합에의해발생하는결함 ) 을줄임 다른모듈에의존하지않고, 원하는모듈만임의의순서대로수행할수있다 JFeature( 요구사항개발도구 ) 와통합되어요구사항의정확한구현비율을알수있다 적용회사 / 프로젝트 관련도구 Samsung SDS Anyframe Java EE 프레임워크내단위테스팅도구로사용 JCoverage, CppUnit, Continuous Plugin, httpunit, TestLink, Jdepend 제작사 - 공식홈페이지 http://www.junit.org 1

2. 기능요약 Java 기반테스팅을위한프레임워크로, 단위모듈 (ex: Method) 이정확히구현되었는지를확인할수있는도구 주요기능테스트범위 TDD 환경지원코드지원 Test Suite UI Report Code Trace 지원내용단위테스트지원지원지원지원지원, 실시간추적가능 1

3. 도구실행환경 JAVA 를지원하는 IDE 상에서설치및구현이가능 다양한 OS 를지원 Windows : Windows XP / Windows 7 (32, 64-bit 모두지원 ) Linux : 32, 64-bit 지원 Mac OS X : 32, 64-bit 지원 UNIX : 32, 64-bit 지원 JDK, 자바기반도구 (IDE 등 ) 이필요 코드및플러그인형태, 도구에포함되어있는형태로제공 Java IDE (Eclipse, NetBeans 등 ) JDK (Java development kit) Windows / Linux / Mac OS / UNIX 1

4. 도구설치방법 세부목차 4.1 다운받기 4.2 설치하기 1

4. 도구설치방법 4.1 다운받기 https://github.com/kentbeck/junit/downloads 에서 을다운받기 대부분의 JAVA 기반 IDE 는 이탑재 ( 미탑재, 업데이트, 베타버전을사용시주로다운 ) 2

4. 도구설치방법 4.2 Jnit 설치하기 압축을풀고, junit4.10 을 Eclipse 가설치된폴더내의 plugins 폴더에복사 본매뉴얼에서는 Eclipse 기준으로설명 3

5. 도구기능소개 세부목차 5.1 주요기능 5.2 예제소개 5.3 Test Case 작성하기 5.4 Test Suite 작성하기 5.5 테스트실행및결과 5.6 테스트실행을위한메뉴소개 1

5. 도구기능소개 5.1 주요기능 테스트하고자하는메소드에대해 Test Case 를맊들수있다 일부의특정테스트메소드를실행하지않거나특정테스트메소드맊실행하고싶을때, 혹은테스트클래스를한데묶어서실행하고싶은경우 Test Suite 를사용 단위테스트를실행하고테스트결과를빠르게확인할수있다 [Test Case 작성화면 ] [Test Shite 작성화면 ] [ 테스트실행및결과화면 ] 2

5. 도구기능소개 5.2 예제소개 의기능을소개하기위해계산기프로젝트예제를사용 계산기는다음과같은기능을가지고있다 sum : 두수의더하기연산을수행 subtract : 두수의빼기연산을수행 multiply : 두수의곱하기연산을수행 divide : 두수의나누기연산을수행 ceil : 지정된숫자를올림하는연산을수행 (ex - 3.2의 ceil연산 : 4) floor : 지정된숫자보다작거나같은가장작은정수를 double형태로반홖하는연산을수행 (ex - 1.2의 floor연산 : 1, 1.7의floor연산 : 1) abs : 지정된숫자의젃대값을계산하고반홖하는연산을수행 3

5. 도구기능소개 5.3 Test Case 작성하기 (1/8) 테스트하고자하는클래스를생성 : Calculator 프로젝트선택 마우스우클릭메뉴의 New Class Class 이름설정 (Calculator) Finish ❶ ❷ ❸ ❹ ❺ 4

5. 도구기능소개 5.3 Test Case 작성하기 (2/8) Calculator 클래스의코드를작성합니다 계산기의주요기능을구현 5

5. 도구기능소개 5.3 Test Case 작성하기 (3/8) 테스트하고자하는클래스에대해 Test Case 를생성 테스트를실행할클래스선택 마우스우클릭메뉴의 New-> Test Case ❶ ❷ ❸ 6

5. 도구기능소개 5.3 Test Case 작성하기 (4/8) Source folder, Package, Name, Superclass 등을그대로두고 NEXT Source folder Test Case 클래스파일이저장되는폴더 Package Java 의패키지를의미 Name Test Case 클래스의이름을의미 ( 기본값 : 테스트대상클래스명 + Test) Superclass Test Case 클래스가상속받을클래스를의미 ( 기본값 : junit.framework.testcase) 7

5. 도구기능소개 5.3 Test Case 작성하기 (5/8) Calculator 클래스내의테스트하고자하는메소드체크 Finish 8

5. 도구기능소개 5.3 Test Case 작성하기 (6/8) 테스트하고자하는메소드의내용을구현 테스트케이스메소드를구현하기 : 오른쪽의 assert 메소드이용 에서가장맋이이용되는단정 (assert) 메소드 assertequals(x, y) : x와y가같으면테스트통과 assertfalse(b) : b가 false이면테스트통과 asserttrue(b) : b가 true이면테스트통과 assertnull(o) : 객체o가 null이면테스트통과 assertnotnull(o) : 객체o가 null이아니면테스트통과 assertsame(ox, oy) : ox와 oy가같은객체를참조하고있으면테스트통과 assertnotsame(ox, oy) : ox와oy가같은객체를참조하고있지않으면통과 assertfail : 테스트를바로실패처리 9

5. 도구기능소개 5.3 Test Case 작성하기 (7/8) 테스트하고자하는메소드의내용을구현 Sum 의테스트예시 Calculator.sum(a,b) 를통해서두수를더한값을반홖» 예시값으로임의의값사용 a:4, b:5» asserttrue 를통해 result 가 9 인지확인 10

5. 도구기능소개 5.3 Test Case 작성하기 (8/8) 테스트하고자하는메소드의내용을구현 젂체메소드에대해서구현 11

5. 도구기능소개 5.4 Test Suite 작성하기 (1/3) 메뉴바의 File New Other 선택 TestSuite Next Test 클래스를한데묶어서테스트 ( 본예시 ), 특정메소드맊실행하거나하지않을때사용 12

5. 도구기능소개 5.4 Test Suite 작성하기 (2/3) 테스트할클래스를선택 Finish 13

5. 도구기능소개 5.4 Test Suite 작성하기 (3/3) Test Suite 작성결과 14

5. 도구기능소개 5.5 테스트실행및결과 (1/2) 테스트의실행 : Test Case 선택 RUN Run As Test Test 실행화면 : 모든단위테스트에성공 ( 녹색막대 ), 실패 ( 붉은색막대 ) 표시 [Test Case 작성화면 ] [ Test 실행화면 ] [ 실행과정 ] 15

5. 도구기능소개 5.5 테스트실행및결과 (2/2) 테스트실행화면 테스트메소드옆에성공한테스트는 v 표, 실패한테스트의목록은 x 표로표시 상단메뉴 Runs : 실행된테스트의개수 Errors : 예외상황이발생한테스트의개수 Failures: 실패한테스트의개수 상단막대 빨간막대 : 테스트실패 초록막대 : 테스트성공 Failure Trace 실패부분의추적정보를보임 실패한테스트의메소드및위치를확인 실패메시지더블클릭 : 소스코드위치로이동 16

5. 도구기능소개 5.6 테스트실행을위한메뉴소개 Tool bar 기능소개 항목기능 Nest Failed Test Previous Failed Test Show Failures Only Scroll rock Return Test Return Test (Failures First) Test Run History Stop Test Run 테스트메소드목록에서실패한테스트메소드목록간에하위이동을수행테스트메소드목록에서실패한테스트메소드목록간에싱위이동을수행실패항목맊보임스크롤바를고정테스트를다시실행테스트를다시실행테스트실행히스토리를보여줌 Test실행을멈춥 17

6. 도구활용예제 세부목차 6.1 예제소개 6.2 프로젝트생성 6.3 테스트케이스생성 6.4 테스트수행 1

6. 도구활용예제 6.1 예제소개 예제시스템 : 교통싞호등프로그램구현 교통싞호등요구사항 : TDD(Test Driven Development) 을이용한예제 계산기요구사항 : 빨강, 노랑, 초록불을가지고있는교통싞호등프로그램을개발한다 신호등의처음상태는빨간불 신호등의상태변화는빨간불, 빨간불과노란불동시에, 초록불, 노란불, 다시빨간불순 TDD 는정의된요구사항을기반으로 Test Case 를먼저만들고, 이를기반으로구현 TDD 는처음부터프로그램을만드는것이아닌, 오류를가정하고오류를해결해나감 점차적으로안정된프로그램을만들어가는방식 2

6. 도구활용예제 6.2 프로젝트생성 (1/2) 요구사항 : 싞호등의처음상태는빨간불 을만족하는코드작성 File New Project Java Project Next ❶ ❷ ❸ 3

6. 도구활용예제 6.2 프로젝트생성 (2/2) Project 만들기 : TrafficLightModel Project name 에 TrafficLightModel Finish 4

6. 도구활용예제 6.3 테스트케이스생성 (1/5) 패키지생성 : TrafficLightmodel src 선택 오른쪽버튼클릭후 Package Package 이름을 Name 으로설정 Finish ❶ ❷ ❸ ❹ 5

6. 도구활용예제 6.3 테스트케이스생성 (2/5) Test Case 생성 : TrafficLightmodelTest Trafficlightmodel 패키지선택 New Test Case Finish ❶ ❸ ❷ ❹ 6

6. 도구활용예제 6.3 테스트케이스생성 (3/5) Test Case 클래스에테스트할내용을추가 싞호등의처음상태는빨간불 이라는요구사항을구현하기위해, 테스트케이스중 assertequals(true, a.getred()) 를통해서검증 assertequals(false, a.getyellow()) 와 assertequals(false, a.getgreen()) 은 false 로설정함으로써초기값이노란색과녹색이아님을검증 7

6. 도구활용예제 6.3 테스트케이스생성 (4/5) 클래스생성 : TrafficLightmodel TrafficLightmodel 클래스가존재하지않기때문에좌측화면과같은오류발생 Java 에디터에서툴팁 ( 젂구 ) 아이콘클릭 Create class TrafficLightmodel 을선택 ❶ ❷ ❸ 8

6. 도구활용예제 6.3 테스트케이스생성 (5/5) TrafficLighmodel 클래스의내용작성 : 의도적오류 TestCase 클래스에서 getred() 를 true 로설정하였기때문에, 요구사항이정확히구현되었는지확인하기위해서 Test 대상메소드를 false 로설정 False 로설정하였기에이메소드는에러를발생 발생된에러를통해 getred() 가잘못구현되었음을알고, 그결과를바탕으로 getred() 를수정 9

6. 도구활용예제 6.4 테스트수행 (1/3) 테스트를수행 상단메뉴바의 Run Run As Test ❶ ❷ ❸ ❸ 10

6. 도구활용예제 6.4 테스트수행 (2/3) 오류를수정 뷰의하단 Failure Trace 부분을더블클릭 테스트케이스 getred() 호출부분에문제가발생했다는것을알수있음 커서를접근메소드위로옮겨 F3 키를눌러구현부분 TrafficLightModel.java 로이동 최초요구사항인 싞호등의초기상태는빨간불 를만족시키기위해 getred() 의리턴값이 true 이여야하므로현재의잘못된리턴값인 false 를 true 로변경 11

6. 도구활용예제 6.4 테스트수행 (3/3) 테스트를재실행 : Run Run As Test 실패메시지미발생, 녹색막대로이상없음을표시 12

7. FAQ 질문 1) TDD(Test Driven Development) 활동이중요한이유가무엇입니까? 답변 1 : 개발초기단계에서발견된결함은수정이용이하고시간과비용을감소시키는반면, 개발후기단계에서발견된결함들을수정하기에는비용과시간이많이소비되고, 프로젝트가실패될확률이높아지기때문입니다. 질문 2) 단위테스트가무엇입니까? 답변 2 : 단위테스트는단위모듈 (ex : 메소드 ) 에서문제발생소지가있는모든부분에대해서테스트하는작업입니다. 1

8. 도구평가 활용성 대부분의자바를지원하는도구에서사용가능 범용성 뛰어난성능과넓은활용범위에의해대부분의도구에기능탑재 호환성 자바를지원하는모든도구에호환 도구의버전을가리지않음 도구가가능한환경이면어떤환경에서도작동가능 성능 빠른작동성능, 도구에같이로드되어도성능상문제없음 기타 뛰어난기능으로대부분의도구에기본탑재 기본탑재된플러그인이더라도, 필요시버전업이가능하며여러버전을동시에설치가능 도구평가의견 은 Eclipse 에기본으로플러그인이포함되어있어설치가용이 Test Suite 를제공함으로써여러 Test Case 클래스를한번에실행시킬수있음 대부분도구에서지원하고있기때문에, 도구교육시간이단축 1

9. 용어정리 본매뉴얼에서사용하고있는용어의정리 Test Case Test Suite TDD 특정한프로그램부분및경로를실행해보거나특정한요구사항에준수하는지를확인하기위해개발된입력값, 실행조건, 그리고예상된결과로이루어져있는하나의테스트세트 일정한순서에의하여수행될개별테스트들의집합, 또는패키지. Suite 는응용분야나우선순위, 내용에연관 자동화된테스트로개발을이끌어가는개발방식을테스트주도개발이라칭함. TDD 는분석기술이며, 설계기술이며, 개발의모든활동을구조화하는기술 단위테스트 단위테스트는단위코드에서문제발생소지가있는모든부분을테스트하는작업 1