1 st Testing for Smart Caddie System
index Smart Caddie System Functional Testing Program Specification Pairwise Testing Pairwise tool Pairwise Test case Generation & Result CTIP Report CTIP environment JFeature Junit
about Smart Caddie System Smart Caddie System 골프를즐겨이용하는사람들에게편리하고간편하게클럽선택을할수있도록하기위해개발된프로그램 Main Object 이용자가원하는클럽정보를얻을수있음 이용자가처한환경에맞는클럽추천 이용자의타수관리가능
about Smart Caddie System 1 2 관리자 - Main Operation 회원 - Main Operation
Functional Testing
Functional Testing One of the Systematic testing strategy Deriving test cases from program specifications = Specification-based testing Known as Black box testing
Functional specification - 회원 클럽추천 클럽추천버튼누른이후클럽선택하지않고닫기버튼을누를경우정상작동안됨 -> 프로그램정지 요청사항 : 닫기버튼눌렀을경우닫기기능을수행하도록수정 클럽추천버튼누른이후클럽선택하지않고취소버튼을누를경우새로운메인메뉴팝업 -> 반복할경우새로운메인메뉴창이계속생성 요청사항 : 취소버튼눌렀을경우취소기능을수행하도록하며새로운메인메뉴창뜨지않도록수정 날씨정보입력양식중입력하지않은부분이있는상태에서클럽추천버튼을누를경우오류메시지없음 -> 프로그램정지 요청사항 : 입력되지않은부분이있을경우오류메시지출력하여재입력할수있도록수정 날씨정보입력양식을모두입력한후클럽추천버튼을누를경우동작안됨 -> 프로그램정지 요청사항 : 정상조작하였을경우제대로기능수행하도록수정
Functional specification - 회원 클럽을선택하는데있어서클럽의종류와풍향사이의연관성부족 (GUI 와코드의구현이다름 ) 요청사항 : 풍향과관련하여알고리즘구현하도록수정 날씨, 풍속입력에일반적인경우를고려할필요있음 -> ex) 날씨 : 맑음, 풍속 : 바람없음등 요청사항 : 위의예시와같이리스트박스에추가되도록수정 키와몸무게를고려하여클럽추천한다고요구사항에명세되어있으나알고리즘 ( 코드 ) 상에는반영되지않음 -> 클럽추천알고리즘에키와몸무게반영필요 요청사항 : 키와몸무게를반영하여알고리즘구현하도록수정
Functional specification - 회원 클럽정보조회 클럽정보조회기능상실 -> 때때로출력되지않는클럽정보발생 -> 수행이성공적으로되었는지확인하기어려움 요청사항 : 항상올바른결과가출력되도록수정 검색대상에대한모호성 -> 사용자의가독성떨어짐 요청사항 : 검색대상에대해정확히명시하도록수정 사용자가모델명을알수없을경우검색불가능해당종류의클럽에대해전체결과를볼수없음 요청사항 : 기본적으로전체클럽정보에대해출력하도록수정 현재회원이보유하고있는클럽확인불가능 요청사항 : 회원이보유하고있는클럽을확인할수있도록수정 검색된클럽이없는경우에내보유클럽에추가버튼을눌렀을경우내보유클럽에추가되었음을알리는잘못된팝업발생 요청사항 : 검색된클럽이없음을알리는오류메시지출력하도록수정
Functional specification 회원 타수정보조회 요구사항에는누적타수정보를회원에게제공한다고명세되어있지만로그인되어있는상태에서만유지 -> 로그아웃이후초기화됨 요청사항 : 로그아웃이후에도누적타수값이유지되도록수정 평균타수의소수점관리필요 요청사항 : 사용자의가독성을높이기위해소수점자리수제한하도록수정
Functional specification - 관리자 클럽정보입력 클럽정보입력시각각의잘못된데이터입력에대한예외처리되어있지않음 -> ex) 클럽종류 : 숫자, 클럽길이 : 문자등 요청사항 : 각각데이터에알맞은양식외에데이터입력시오류메시지출력되도록수정 클럽정보입력시정확한데이터입력형식을명시할필요있음 ( 리스트박스형식추천 ) 요청사항 : 적절한데이터양식사용자에게명시하도록수정 클럽정보입력시각각의데이터를모두입력하지않아도오류메시지뜨지않고데이터베이스에는저장됨 -> 데이터공간낭비초래 요청사항 : 데이터가입력되지않은공간에대한입력요청오류메시지출력하도록수정
Conclusion 프로그램의주요기능에문제가많아전반적으로안전성떨어짐 Input data 에대한구체적명세가없어 Test Case 를작성하는데어려움이있었음 GUI 구현함수와 Program Logic 이섞여있어테스트단위를정하는기준설정의어려움이있었음
Pairwise Testing
Pairwise Testing Combinatorial software testing method that, for each pair of input parameters to a system, tests all possible discrete combinations of those parameters
Pairwise Testing Tools Download Allpairs http://www.satisfice.com/tools.html
Pairwise Testing Tools Install Allpairs Download Zip File Decompression the Zip File to any folder
Pairwise Test case Generation Testcase Generation < Case_1 > 거리, 날씨, 풍향, 비거리정보를이용한클럽추천테스트시도 클럽데이터베이스구축미비 기능구현되어있지않아테스트불가 < Case_2 > ID, Password, RePassword, SecNum 정보를이용한회원가입테스트시도 각데이터에대한간단한명세존재하나미흡 기능구현되어있어테스트가능.
Pairwise Test case Generation Testcase Generation Allpairs input File Name > output File Name 120(4*3*3*5) 개의가능한 pairs < 회원가입예제 >
Pairwise Test case Generation Test case generation Result 21개의 pairs 생성 120 -> 21
CTIP Report
CTIP environment WAS Tomcat 6.0 CI Tool Hudson Unit Test Junit Requirement jfeature Build Tool Ant SCM Tortoise SVN
jfeature requirement table
jfeature Coverage Report
jfeature Coverage Report Re# Function R1.1.1 회원가입 R1.1.2 ID 중복확인 R1.2 회원정보수정 R1.3 회원탈퇴 R2.1 관리자가입 R2.2 관리자탈퇴 R3.1 클럽정보입력 R3.2.1 클럽정보조회 R3.2.2 전체선택클럽표시 R4.1.1 클럽추천 R4.1.2 이전선택클럽표시 Re# R4.1.3 R4.1.4 Function 팁표시 보유클럽들중추천 R4.2 날씨정보입력 R4.3 지형정보입력 R4.4 거리정보입력 R4.5 평균비거리정보입력 R5.1 타수기록조회 R5.2 타수입력 R6.1 로그인 R6.2 로그아웃
jfeature coverage report Pairwise 로 Testcase 생성한회원가입예제테스트결과
jfeature Coverage Report
jfeature Coverage Report expected : incorrect actual : correct
Logic Package Testing SVN setting in Hudson
Logic Package Testing Ant setting in Hudson
Logic Package Testing Junit report view setting in Hudson
Logic Package Testing Junit report view example in Hudson