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

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

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

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


슬라이드 1

초보자를 위한 C++

슬라이드 1

슬라이드 1

PowerPoint 프레젠테이션

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

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

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

Microsoft PowerPoint - chap01-C언어개요.pptx

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

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

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

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

슬라이드 1

Interstage5 SOAP서비스 설정 가이드

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

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

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

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

블로그_별책부록

MPLAB C18 C

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

슬라이드 1

슬라이드 1

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

강의의목표 Compiled Language vs. Interpreted Language 차이이해 Compiling의의미이해 Compiling의결과물확인 통합개발환경구축 Eclipse 통합개발환경을통한예제의 Bulid 및실행 Formatter 등의편집지원기능, Refer

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

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

슬라이드 1

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

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

슬라이드 1

02 C h a p t e r Java

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

Microsoft PowerPoint - Install Guide[ ].ppt [호환 모드]

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

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

슬라이드 1

슬라이드 1

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

untitled

슬라이드 1

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

슬라이드 1

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

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

untitled

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

<4D F736F F F696E74202D204C BAB8C3E6BCB3B8ED202D20C7C1B7CEB1D7B7A1B9D6C0DBBCBAB0FAC1A42C C F>

<B1D4B0DDBCAD202D20C4DAB5E520B1E2B9DD2E687770>

PowerPoint 프레젠테이션

Facebook API

슬라이드 1

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

ISP and CodeVisionAVR C Compiler.hwp

파워포인트

ODS-FM1

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

tut_modelsim(student).hwp

Install stm32cubemx and st-link utility

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

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

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

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

JUNIT 실습및발표

NTD36HD Manual

슬라이드 1

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

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

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

JDK이클립스

슬라이드 1

C# Programming Guide - Types

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

Microsoft PowerPoint - chap-02.pptx

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

!K_InDesginCS_NFH

PowerPoint 프레젠테이션

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

<57696E646F7773C8AFB0E6BFA1BCADC0C7204F70656E53534CBCB3C4A12E687770>

rmi_박준용_final.PDF

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

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

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

소프트웨어 검증 및 설계

Microsoft Word - Armjtag_문서1.doc

신림프로그래머_클린코드.key

Dialog Box 실행파일을 Web에 포함시키는 방법

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

Microsoft Word - Network Programming_01.docx

PowerPoint 프레젠테이션

Solaris Express Developer Edition

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

Transcription:

1. 도구개요 소개 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도하는방향으로 정확히작동하는지검증할수있도록하는 Unit test Library Framework. 주요기능 C++ 프로그램의 unit testing 카테고리 세부카테고리테스트설계및수행 커버리지 Unit Test (C++) 도구난이도하 라이선스형태 / 비용 Common Public License 1.0 / 무료사전설치도구 C/C++ Compiler 운영체제 Windows, Linux, Mac OS X, UNIX 최신버전 1.12.1 (2012. 10) 특징 다양한 Platform 및지원도구가많다 (Visual Studio, Eclipse 등 ) Source Code 수정없이 Source 가제대로실행되는지간단한설정을통하여쉽게알아낼수있다 적용회사 / 프로젝트 관련도구 Eclipse ( 본매뉴얼기준 ) 제작사 Michael Feathers ( 제작자 ) 공식홈페이지 http://sourceforge.net/projects/cppunit/ 1

2. 기능요약 Source Code 의특정 Module 이의도하는방향으로정확히작동하는지검증할수있도록하는 Unit test Library Framework 주요기능 지원여부 테스트범위 UNIT( 계층, 통합테스트일부지원 ) 테스트정보출력부가기능계층및통합테스트다양한 IDE 지원 XML을기본으로여러형태지원 Test code를위한별도의클래스, macro지원지원 Eclipse, Visual Studio등 1

3. 도구실행환경 C/C++ 을지원하는 IDE 상에서설치및구현이가능 OS 에상관없이설치도구및컴파일러환경 ( 컴파일시 ) 의존적 Eclipse 기준 (4.10) Windows : Windows XP / Windows 7 (32, 64-bit 모두지원 ) Linux : 32, 64-bit 지원 Mac OS X : 32, 64-bit 지원 UNIX : 32, 64-bit 지원 컴파일러, C/C++ 기반도구 (IDE 등 ) 이필요 C/C++ 사용 IDE (Eclipse, Visual Studio 등 ) C/C++ Compiler Windows / Linux / Mac OS / UNIX 1

4. 도구설치방법 세부목차 4.1 다운받기 4.2 설정하기 4.3 Eclipse에 Build 프로젝트생성 4.4 Eclipse에 Build 하기 4.5 Eclipse에 Build 결과 1

4. 도구설치방법 4.1 다운받기 http://sourceforge.net/projects/cppunit/ 에서 을다운받기 받은파일을 C:\ 에압축을푼다 ( 전체경로 : C:\\-1.12.1) 2

4. 도구설치방법 4.2 설정하기 CMD 창에서 MinGW MSYS 명령어를활용하여환경설정 Bash C:\\-1.12.1 폴더에서./configure 3

4. 도구설치방법 4.3 Eclipse 에 Build 프로젝트생성 C++ Library 프로젝트생성 C++ Project Project type 은 Static Library, Project name 은 Build 설정 finish 4

4. 도구설치방법 4.4 Eclipse 에 Build 하기 (1/5) Build 프로젝트에 을 Import (1/2) 마우스우클릭후 Import Import 창의 FileSystem Next 5

4. 도구설치방법 4.4 Eclipse 에 Build 하기 (2/5) Build 프로젝트에 을 Import (2/2) From Directory 에 C:\\-1.12.0\src\ 선택 Build 에 Import Finish 6

4. 도구설치방법 4.4 Eclipse 에 Build 하기 (3/5) Properties 설정하기 프로젝트마우스우클릭 Properties C/C++ build/setting 7

4. 도구설치방법 4.4 Eclipse 에 Build 하기 (4/5) Properties 설정하기 : Include path 를설정 Setting Tool Settings Tab GCC C++ Compiler 의 Include Add 의 Include 폴더 8

4. 도구설치방법 4.4 Eclipse 에 Build 하기 (5/5) Build 의 Build Build 마우스우클릭 Build Project 9

4. 도구설치방법 4.5 Eclipse 에 Build 결과 Build 의 Build 결과물 : Build 프로젝트의 Debug 폴더 Build 마우스우클릭 Build Project 10

5. 도구기능소개 세부목차 5.1 주요특징 / 사용방법개요 5.2 을활용한 Unit Test Code 작성 5.3 을활용한 Unit Test Sample Code 1

5. 도구기능소개 5.1 주요특징 / 사용방법개요 (1/2) C++ Unit test Platform Library 은 C++ 용 testing Framework 로, Michael Feathers 가 Java 의 Junit 을 C++ 로구현 Unit test 의목적 : 프로그램을작은 Unit 단위로나누고각단위가정확하게동작하는지검사하고이를통해문제발생시정확하게어느부분이잘못되었는지확인할수있게함 Refactoring 이후해당 Module 이의도대로동작하고있음을쉽게확인할수있도록도와줌 의주요특징 XML 형태또는다양한 TextFormat 등 test 정보출력지원 IDE 와통합된 Compiler 기반의 Unit test Test Code 를위한 Class 및다양한 macro 의지원 계층별, 통합 test 지원 Recompile 수요를줄여보다빠르고갂편한 Compile 과 test 지원 Eclipse, Visual Studio 등의다양한통합도구지원 2

5. 도구기능소개 5.1 주요특징 / 사용방법개요 (2/2) Library 로, Source 에대한 test source 를별도로제작하여야함 해당기능에대한 test 프로그램을먼저만들고, 실제프로그래밍에적용함으로써 Platform 에서제공하는다양한자동화기능을사용하여 unit test 를할수있다 Library 가제공하는 Class 와, 이를지원하는 Class 를상속받고해당 Method 를 Override 하여 test 프로그래밍을작성 갂단한작성방법 Class TestCase를상속받는 class를만듬 RunTest를 Override 어떤 value를확인하고싶을때 _ASSERT(bool) macro를호출 3

5. 도구기능소개 5.2 을활용한 Unit Test Code 작성 (1/2) Unit test 관련헤더파일추가 #include </extensions/helpermacros.h> #include </extensions/testfactoryregistry.h> #include </ui/text/testrunner.h> Unit test Class의정의 : 예시 ) class CSampleTest : public ::TestFixture TestFixture멤버함수 setup, teardown 구현 setup() : test함수들이수행하기젂에, 호출되는함수 teardown() : test함수들이수행하고난후호출되는함수 Test Code 가들어있는함수등록 예시 )test1, test2, test3 는 testcode 가들어있는함수임 ex> _TEST_SUITE( CSampleTest ); _TEST( test1 ); _TEST( test2 ); _TEST( test3 ); _TEST_SUITE_END(); 4

5. 도구기능소개 5.2 을활용한 Unit Test Code 작성 (2/2) test1, test2, test3함수작성 Test Class를등록 ( macro함수이용 ) 예시 : _TEST_SUITE_REGISTRATION( CSampleTest ); main() Method작성 Build후결과출력확인 5

5. 도구기능소개 5.3 을활용한 Unit Test Sample Code 을활용한샘플코드 ( 예시 ) #include <stdio.h> #include </extensions/helpermacros.h> #include </extensions/testfactoryregistry.h> #include </ui/text/testrunner.h> #include <iostream> class CSampleTest: public ::TestFixture { _TEST_SUITE(CSampleTest ); _TEST( test1 ); _TEST( test2 ); _TEST( test3 ); _TEST_SUITE_END(); }; public : void setup() {} void teardown() {} void test1() {} void test2() {} void test3() {} int main() { ::TextUi::TestRunner runner; ::TestFactoryRegistry &registry = ::TestFactoryRegistry::getRegistry(); runner.addtest( registry.maketest() ); bool result = runner.run(); return result; } 6

6. 도구활용예제 세부목차 6.1 Sample test 시나리오 6.2 Eclipse 에 Sample 프로젝트작성 6.3 Eclipse 에 Sample 프로젝트 Build 설정 1

6. 도구활용예제 6.1 Sample test 시나리오 Sample test 단순한숫자비교결과를바탕으로하는테스트를아래와같은순서로구현 1. Class TestCase 를상속받는 class를만든다 2. RunTest 를 Override 한다 3. 어떤 Value 를확인하고싶을때 _ASSERT(bool) macro 를호출한다 2

6. 도구활용예제 6.2 Eclipse 에 Sample 프로젝트작성 (1/4) Eclipse CPP Project 를생성 New/C++ Project 선택 SamleTest 이름설정 Finish 3

6. 도구활용예제 6.2 Eclipse 에 Sample 프로젝트작성 (2/4) C++ source 파일을추가 New Source File 소스폴더에 SamleTest, 소스파일에 SamleTest.cpp 설정 Finish 4

6. 도구활용예제 6.2 Eclipse 에 Sample 프로젝트작성 (3/4) 작성할프로젝트코드 5

6. 도구활용예제 6.2 Eclipse 에 Sample 프로젝트작성 (4/4) SamleTest.cpp 에 test code 가구성된모습 6

6. 도구활용예제 6.3 Eclipse 에 Sample 프로젝트 Build 설정 (1/3) SamleTest 프로젝트 Build 설정 : 테스트수행환경설정 SamleTest 프로젝트마우스우클릭 Properties C/C++ Build/Settings Tool Settings Tab 의 GCC C++ Compiler/ Include Include paths 의 Add Include 폴더선택 7

6. 도구활용예제 6.3 Eclipse 에 Sample 프로젝트 Build 설정 (2/3) SamleTest 프로젝트 Build 설정 : 라이브러리 / 폴더설정 Tool Settings Tab 의 MinGW C++ Linker/ Libraries Libraries 의 Add 버튼 Build Library search path 의 Add Build 프로젝트의 Debug 폴더선택 8

6. 도구활용예제 6.3 Eclipse 에 Sample 프로젝트 Build 설정 (3/3) SamleTest 프로젝트 Build 후실행 Build 후아래실행버튼을눌러서 SamleTest test 결과를 Console 창으로확인 9

7. FAQ 질문 1) 는 Eclipse 이외에다른도구에서도설치가가능합니까? 답변 1 : 네. 가능합니다. Visual Studio 에서도설치가가능하도록되어있으며설치또한간편합니다 질문 2) 다른 Unit test 도구에비해서장점은어떤점이있나요? 답변 2 : 많은 Reference 및 Guide 문서또는다양한 Sample Source 가있습니다. 그로인해쉽게적용할수있습니다 1

8. 도구평가 활용성 대부분의 C++ 을지원하는도구에서사용가능 범용성 뛰어난성능과넓은활용범위에의해대부분의도구에기능탑재 호환성 C++ 로인해플러그인형태가아니지만, C++ 가지원되면어디든가능 성능 특별한성능상에문제를일으키지않음 기타 매크로로인해많은유용성보유 JUnit을기반으로개발하였기에, 설치과정을제외하고 JUnit에익숙한사람에게친숙 도구평가의견 에는기존test suite 를확장에사용되는 _TEST_SUB_SUITE macro 가있어서쉽게접근하여추가적인 test 가능 도구출력log를개발자보기편한 Format 으로파일 / 행정보, message test suite 정보등을보여줌 Unit test를하기위해서다소간의작업이필요하나이러한작업을하게될경우차후필요한 debugging 및유지보수비용을절감하는효과를얻음 1

9. 용어정리 본매뉴얼에서사용하고있는용어의정리 Bash Bash (Borune-again shell) 은본셸을대체하는자유소프트웨어로서 GNU 프로젝트를위해브라이언폭스 (Brian Fox) 가작성한유닉스셸을말함. 1989 년발표되어 GNU 운영체제와리눅스, 맥 OS X 그리고다윈등운영체제의기본셸로탑재되어광범위하게배포됨. 또한 DJGPP 와노벨넷웨어에의해도스로이식되었고 Cygwin 과 MinGW 의배포로마이크로소프트윈도로이식됨. Bash 명령어의문법은거의대부분 sh 와호환되어쓰일수있음. Bash 명령어는 ksh, csh 로부터많은아이디어를받아와서명령히스토리, Directory Stack, $RANDOMPOSIX 형식명령어치환등을지원함. 또한입력중에명령어나파일이름을자동완성해주는기능지원함. Override 상위 Class 의 Method 를재정의하는것 단위테스트 Source Code 의특정 Module 이의도된대로정확히작동하는지를초기 Coding 단계에서검증하는절차로, 개발자가모든함수와 Method 에대한 testcase 를작성하여검증하는절차 1