1. 도구개요 소개 요구사항들을기록하고이들을 JUnit Test Case 와매치함으로써프로세스를단순화할수있다 주요기능 요구사항기록, Report 생성하기 카테고리 세부카테고리요구사항모델링 커버리지 도구난이도중 라이선스형태 / 비용 Common Public License 1.0 / 무료 Commercial License / 유료 사전설치도구 Eclipse 3.4이상 ( 상위버전가동확인 ) 운영체제 Windows, Linux, Mac OS X, UNIX 최신버전 1.2 (2012. 10) 특징 JUnit 의 Test case 메소드와통합 요구사항의수정사항이생겼을때, 즉시뷰를제공하므로빠른편집이가능 요구사항이반영여부를 Coverage 형태로쉽게확인 Commercial Version 의추가기능 : 요구사항들을편집하는확장인터페이스, 추가리포팅포맷, 요구사항스펙반출 적용회사 / 프로젝트 - 관련도구 제작사 공식홈페이지 IBM Rational DOORS, CaliberRM, RequisitePro Technobuff http://www.technobuff.net/ 1
2. 기능요약 요구사항들을기록하고이들을 JUnit Test Case 와매치함으로써프로세스를단순화 주요기능 지원여부 요구사항반영여부확인지원 (Coverage 형태 ) 타플러그인홖경지원 코드추적 IDE 내별도의편집기제공 지원 (JUnit) 지원 지원 요구사항스펙반출일부지원 (Commercial Version 제공 ) 리포팅기본포맷지원 (Commercial Version 추가제공 ) Round trip engineering 지원 ( 파일보관형태로지원 ) 1
3. 도구실행환경 Eclipse 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, Eclipse 필요 코드및 Eclipse 플러그인형태, 도구에포함되어있는형태로제공 Eclipse IDE JDK (Java development kit) Windows / Linux / Mac OS / UNIX 1
4. 도구설치방법 세부목차 4.1 다운받기 4.2 설치하기 4.3 설치확인하기 1
4. 도구설치방법 4.1 다운받기 (1/2) http://www.technobuff.net/ 에서 다운받기 V1.2 released 클릭 2
4. 도구설치방법 4.1 다운받기 (2/2) 다운로드링크클릭후저장 3
4. 도구설치방법 4.2 설치하기 압축을풀고, 1.2 를 Eclipse 가설치된폴더내의 plugins 폴더에복사 압축을푼후, net.technobuff.jfeature 폴더를해당폴더에복사 4
4. 도구설치방법 4.3 설치확인하기 Eclipse 를실행한후추가된플러그인을확인 File Other New 창에서추가된 를확인 5
세부목차 5.1 주요기능 5.2 요구사항작성기능 5.3 예제소개 5.4 요구사항작성하기 5.5 요구사항불러오기 5.6 요구사항저장하기 5.7 Round Trip Engineering 5.8 Report 생성기능 5.9 JUnit을이용하여 Test case 작성하기 5.10 Junit을이용하여 Test case 연결하기 5.11 Report 생성하기 1
5.1 주요기능 를이용하여요구사항을작성 를이용하여 Junit 의 Test Case 메소드와요구사항의연결이가능 요구사항의구현여부를 Report 로확인 [ 요구사항작성화면 ] [ 요구사항 Coverage Report] 2
5.2 요구사항작성기능 (1/4) 의기능 : 요구사항의작성 요구사항입력 : 직접입력, 파일을통한입력 (CSV, XML파일읽기 ) 요구사항저장 : 로정의된요구사항을파일로저장 (CSV나XML) CSV 파일과 내의정의된요구사항이동일성을유지 [ 요구사항작성예시 ] 3
5.2 요구사항작성기능 (2/4) 의기능 : 화면구성 항목기능 1Requirement ID 2Category 3Subcategory 4Title 5Target release 6Priority 7Must Have 8Test methods 9Dependencies 10Description 11Notes 요구사항의고유의식별번호요구사항의상위분류요구사항의하위분류요구사항명칭요구사항의타겟배포버젂요구사항의구현우선순위필수요구사항인지아닌지에대한판별여부요구사항과매핑될테스트케이스요구사항과연관된다른요구사항 (ID) 요구사항의상세한설명기타사항 4
5.2 요구사항작성기능 (3/4) 의기능 : 마우스우클릭메뉴 항목기능 Copy Requirement(s) 요구사항복사 ( 한개이상의요구사항 ) Paste Requirement(s) Cut Requirement(s) Insert Requirement Below Insert Requirement Above Move Requirement(s) Up Move Requirement(s) Down 요구사항붙여넣기선택된요구사항의잘라내기새로운요구사항을아래칸에삽입새로운요구사항을윗칸에삽입요구사항을위로이동요구사항을아래로이동 5
5.2 요구사항작성기능 (4/4) 의기능 : Toolbar 항목기능 Add Requirement Del Requirement Copy Requirement Paste Requirement Cut Requirement Move Requirement(s) Up Move Requirement(s) Down Round Trip Engineering 요구사항추가 선택된요구사항삭제 복사하기 붙여넣기 잘라내기 요구사항목록에서위로이동 요구사항목록에서아래로이동 현재 Jfeature 내에서쓰이고있는요구사항파일의변경시불러온 csv 파일에도반영되게함. 또는 csv 파일의변경시 Jfeature 내에서쓰이고있는요구사항파일에반영 6
5.3 예제소개 (1/3) 도구기능소개예시 : 계산기프로젝트 계산기에적용할요구사항 ( 일부 ) : 작성된프로젝트홗용 사칙연산기능을가지고있어야한다 - 더하기기능이있어야한다 - 빼기기능이있어야한다 - 곱하기기능이있어야한다 - 나누기기능이있어야한다 다양한계산을위해확장연산기능이필요하다 - 지정된숫자를올림하는기능이있어야한다 - 작거나같은가장작은정수를 double 형태로반홖할수있는기능이있어야한다 - 지정된숫자의젃대값을계산하고반홖할수있는기능이있어야한다 수강싞청시스템의구현홖경 운영체제홖경» 사용자는 PC 기반의 Windows XP 운영체제사용 7
5.3 예제소개 (2/3) 예제에사용할클래스생성 : Calculator 프로젝트선택 마우스우클릭메뉴의 New Class Class 이름설정 (Calculator) Finish 8
5.3 예제소개 (3/3) Calculator 클래스의코드를작성 계산기의주요기능을구현 9
5.4 요구사항작성하기 (1/3) 요구사항작성파일생성 : requirements.jrq( 기본설정 ) File New Other New Requirements File Next File name 10
5.4 요구사항작성하기 (2/3) 요구사항입력 마우스우클릭 Insert Requirement Below 해당항목에요구사항입력 11
5.4 요구사항작성하기 (3/3) 요구사항입력완료 12
5.5 요구사항불러오기 (1/4) 요구사항작성파일불러오기 에서는 csv, xml 을읽을수있음 [ 엑셀에서작업한요구사항문서 ] 13
5.5 요구사항불러오기 (2/4) 요구사항작성파일불러오기 : CSV 파일불러오기 File import Other Import Requirements Next 형식선택 (CSV, XML) Next 14
5.5 요구사항불러오기 (3/4) 요구사항작성파일불러오기 : 파일지정 Use Text delimiter 텍스트구분형식선택 indicates a required field Source field from Imported file( 항목연결 ) Next Field Text delimiter» Use comma as delimiter : 콤마 (,) 로구분» Use TAB as delimiter : 탭으로구분» Use other delimiter : 다른방법으로구분 Text delimiter» Use double quotes as delimiter : 큰따옴표로구분» Use single quote as delimiter : 작은따옴표로구분» Use other delimiter : 다른방법으로구분 Preview» Use first row as header : 처음줄을타이틀로사용 15
5.5 요구사항불러오기 (4/4) 요구사항작성파일불러오기 : 파일위치지정 16
5.6 요구사항저장하기 (1/4) 요구사항작성파일저장하기 CSV, XML 형태로저장이가능 17
5.6 요구사항저장하기 (2/4) 요구사항작성파일저장하기 : Export File Export 선택 Other Export Requirements 18
5.6 요구사항저장하기 (3/4) 요구사항작성파일저장하기 : 저장형식, 위치, 이름설정 저장할파일형식을선택 저장위치와파일이름을지정 19
5.6 요구사항저장하기 (4/4) 요구사항작성파일저장하기 : 완료하기 내용을확인후 Finish 20
5.7 Round Trip Engineering (1/2) Round Trip Engineering : import 한파일과요구사항의변경사항에대한동기화 Import 한 csv 파일에서요구사항변경이일어난경우동일성을유지하기위해사용 Round Trip Engineering 선택 항목에맞는것을선택 OK 21
5.7 Round Trip Engineering (2/2) Round Trip Engineering : 각기능설명 항목기능 Synchronize Jfeature requirements file Jfeature 요구사항파일의변경사항을 CSV, XML 파일에변경 Synchronize external requirements file CSV, XML 파일을 Jfeature 요구사항파일에적용 Synchronize using Requirement ID 요구사항 ID 를이용하여비교후적용 Synchronize using Requirement Title 요구사항제목을이용하여비교후적용 Append non-matching requirements 일치하지않는요구사항도추가 22
5.8 Report 생성기능 Report 생성 : JUnit 과의연결 JUnit 의 Test Case 메소드와요구사항을연결, 요구사항반영여부를 Report 로확인가능 Junit 을이용하여 Test Case 를작성 정의된요구사항과일치하는테스트메소드를연결 Report 를생성하여요구사항의만족도를확인 23
5.9 JUnit 을이용하여 Test case 작성하기 (1/6) 테스트하고자하는클래스에대해 Test Case 를생성 : Calculator 테스트를실행할클래스선택 마우스우클릭메뉴의 New JUnit Test Case ❶ ❷ ❸ 24
5.9 JUnit 을이용하여 Test case 작성하기 (2/6) Source folder, Package, Name, Superclass 등을그대로두고 NEXT Source folder Test Case 클래스파일이저장되는폴더 Package Java 의패키지를의미 Name Test Case 클래스의이름을의미 ( 기본값 : 테스트대상클래스명 + Test) Superclass Test Case 클래스가상속받을클래스를의미 ( 기본값 : junit.framework.testcase) 25
5.9 JUnit 을이용하여 Test case 작성하기 (3/6) Calculator 클래스내의테스트하고자하는메소드체크 Finish 26
5.9 JUnit 을이용하여 Test case 작성하기 (4/6) 테스트하고자하는메소드의내용을구현 테스트케이스메소드를구현하기 : 오른쪽의 assert 메소드이용 Junit에서가장많이이용되는단정 (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 : 테스트를바로실패처리 27
5.9 JUnit 을이용하여 Testcase 작성하기 (5/6) 테스트하고자하는메소드의내용을구현 Sum 의테스트예시 Calculator.sum(a,b) 를통해서두수를더한값을반홖» 예시값으로임의의값사용 a:4, b:5» asserttrue 를통해 result 가 9 인지확인 28
5.9 JUnit 을이용하여 Test case 작성하기 (6/6) 테스트하고자하는메소드의내용을구현 젂체메소드에대해서구현 29
5.10 JUnit 을이용하여 Test case 연결하기 (1/2) Test Methods 연결 : 테스트케이스메소드와의연결 JUnit 을이용하여작성한테스트메소드와연결시키고싶은요구사항을선택 Test Methods 의오른쪽에위치한버튼을클릭 30
5.10 JUnit 을이용하여 Test case 연결하기 (2/2) Test Methods 연결 : Select Test Method 창 앞서작성한 Test Class 찾기 관련있는 Test Class Method 선택 Append to Test Method(S) Append to Test Method(s)» TestClass Methods 추가하기 Clear Test Method(s)» 추가된 Test Class Methods 삭제하기 31
5.11 Report 생성하기 (1/4) Report 생성 : 요구사항파일의연결 프로젝트 Properties Associate Requirements File(s) 반영할요구사항파일선택 32
5.11 Report 생성하기 (2/4) Report 생성 : JUnit 테스트를실행 Run Run As JUnit 33
5.11 Report 생성하기 (3/4) Report 생성 : Report 보기 Windows Show View Other OK 34
5.11 Report 생성하기 (4/4) Report 생성 : Report 완성결과 35
6. 도구활용예제 세부목차 6.1 예제설명 6.2 요구사항입력 6.3 프로젝트생성 6.4 요구사항불러오기 6.5 Test Case 생성 6.6 Test Methods 연결 6.7 Report 확인 1
6. 도구활용예제 6.1 예제소개 예제시스템 : 웹기반스터디모임관리 스터디방개설 스터디방첫개설자는스터디장이됨 : 스터디의카테고리, 이름, 설명, 모집일시등입력 스터디장은스터디방의수정및삭제가능 생선된스터디방에가입가능 사용자가생성된스터디를검색하고, 원하는스터디에가입싞청 / 싞청취소가가능 스터디일정관리 스터디의일정을등록, 수정, 삭제할수있다 스터디방의게시판을관리 스터디장이스터디방의게시판을생성 / 이름설정 / 수정 / 삭제가능 스터디장이스터디방의가입된스터디원들을관리할수있다. 스터디장은스터디클럽의참석률이낮은회원을강제퇴출가능 스터디클럽의회원정보의조회가가능 스터디원이올릮과제를확인 스터디원이스터디방을이용할수있다 스터디원이다른스터디회원정보의조회가가능 스터디원이자싞출석률의확인가능 스터디원이과제제출가능 2
6. 도구활용예제 6.2 요구사항입력 (1/2) 요구사항입력 : 엑셀에정리하기 3
6. 도구활용예제 6.2 요구사항입력 (2/2) 요구사항입력 : 엑셀에정리후 CSV 파일로저장 엑셀에서파일형식 CSV 파일로저장 4
6. 도구활용예제 6.3 프로젝트생성 프로젝트생성하기 File New Project 를이용하여 Java Project 를생성 5
6. 도구활용예제 6.4 요구사항불러오기 (1/2) 요구사항불러오기 : CSV 파일읽기 프로젝트선택후마우스우클릭 Import CSV 파일열기 Use Text delimiter 텍스트구분형식선택 Requirement fields 목록매칭 6
6. 도구활용예제 6.4 요구사항불러오기 (2/2) 요구사항불러오기 : 결과 CSV 파일을읽어온결과 7
6. 도구활용예제 6.5 Test Case 생성 Test Case 생성 회원로그인에대한 Test Case 를작성 8
6. 도구활용예제 6.6 TestMethods 연결 Test Methods 연결하기 요구사항과매칭되는 Test Class Methods 를연결 9
6. 도구활용예제 6.7 Report 확인 Requirement Coverage Report 결과 10
7. FAQ 질문 1) 현재 Eclipse 4.2 까지나와있는데, 1.2 의버전문제는없나요? 답변 1 : 1.2 버전이후로는진행된릴리즈가없습니다만, 1.2 버전은 3.4 버전에최적화되어있습니다. 현재테스트결과로는 4.2 버전에서까지이상없는것으로확인되고있으나, 이클립스특성상 3.4 버전에서가동하는것을추천합니다. 질문 2) JUnit 이외에다른플러그인들과는연동이되지않습니까? 답변 2 : 네. Jfeature 는 JUnit Test Case 이외의다른플러그인들과는연동이되지않습니다. 1
8. 도구평가 홗용성 요구사항을 JUnit 과연동하여사용하기때문에쉽고빠르고효과적으로사용 범용성 JUnit 이필수이나, 현재다른테스트도구와는연동기능없음 호홖성 자바를지원하는모든도구에호홖 Eclipse 3.4 버전에최적화되어있지만, 현재 (4.2) 버전에서도이상없이가동 성능 빠른작동성능, 도구에같이로드되어도성능상문제없음 기타 대부분 JAVA IDE에탑재되어있는 JUnit을홗용하므로테스팅기반통합이용이 코드를개발하면서요구사항확인이편리 표준 JUnit 단위테스팅을기반으로통합이가능 도구평가의견 개발자들이코드를개발하면서요구사항을확인하고쉽게적용시킬수있도록 편리한편집과뷰를제공 사용방법이편리하며, 간단 1
9. 용어정리 본매뉴얼에서사용하고있는용어의정리 TestCase 특정한프로그램부분및경로를실행해보거나특정한요구사항에준수하는지를확인하기위해개발된입력값, 실행조건, 그리고예상된결과로이루어져있는하나의테스트세트 CSV 각항목이나내용마다쉼표 (comma) 로구분하여기록 CSV 형식의파일은텍스트파일로보존하여문서처리기나편집기에서열람 편집가능 XML 기존의 HTML 과는다른마크업언어로보다홈페이지구축기능, 검색기능등에유리하며, 클라이언트시스템의복잡한데이터처리를쉽게할수있다는장점을가짐. 또한인터넷사용자가웹에추가할내용을작성, 관리하기에쉽게되어널리사용 1