System Test Report for Team 1 1st Project Team Team 1 Latest update on: 2018-05-26 Team Information 컴퓨터공학과 201311263 김민환 1
컴퓨터공학과 201311308 전세진 컴퓨터공학과 201411278 서희진 컴퓨터공학과 201411317 조민규 2
Table of Contents 1 Specification Review... 3 1.1 Stage 1000 Planning... 3 1.2 Stage 2030 Analysis... 6 1.3 Stage 2040 Design... 15 1.4 Stage 2050 Implementation... 21 1.5 Stage 2060 Unit Test & System Test... 22 2 Category-partition Testing Report... 23 2.1 Categorize... 23 2.2 Description... 24 2.3 Propery & Constraints... 25 2.4 Text File for TSL-Generator... 26 2.5 Test Result... 27 3 Pairwise Testing Report... 27 3.1 Categorize... 27 3.2 Description... 30 3.3 Text File for PICT... 31 3.4 Test Result... 32 4 Brute Force Testing Report... 33 4.1 Testing Result... 33 4.2 Failed Case Report... 34 5 Overall... 36 5.1 System Test Result... 36 6 CTIP Usage... 37 3
6.1 Static Analysis Result... 37 6.2 Issue Tracker... 38 4
1 Specification Review 1.1 Stage 1000 Planning 1001. Define Draft Plan 3. Functional Requirements Verify Sufficient Fund 가생략되어있다. 4. Non-Functional Requirements 직관적인인터페이스이지않음. 5. 현재환율정보를고려하지않음 현재의환율정보를고려하지않음. 6. 현재환율정보를고려하지않음. 관리자에게문자알림이가지않음. 1002. Create Preliminary Investigation Report 2. Project Justificatoin 서버를사용하지않음 6. Other Managerial Issues 졸작으로활용가능해보이지않음. 1003. Define Requirements 1. Functional Requirements 5
- Verify Sufficient Fund가생략되어있다. - Management : Evident Hidden ( 파일상에서처리하므로 Hidden) - Deposit은계좌에증감되지않고, 증가만한다. 2. Performance Requirement - 최대한, 적절한, 충분한같은불명확한표현수정필요 1004. Record Terms in Glossary - TrafficCard 를이용하는기능은설계되지않음 1007. Define Business Use Cases 6. Idenfity the relationships between Use-Case - Event-based Use-case 인 Update 와의관계가잘못되어있다. ( 방향이반대가 되어야한다.) - Check, Deposit, Withdraw, Transfer, Issue TrafficCard 와 Status Alarm 과의 관계가잘못되어있다. (extends 가아닌 include 가되어야한다.) 6
7
1008. Define Business Concept Models - 2030 단계이후로는등장하지않는심볼이정의되어 있다.(History, Sensor) - 2030 단계이후로는등장하지않는 Attribute 가정의되어있다. 1010. Refine Plan 3. Functional Requirements - Verify Sufficient Fund 가빠져있다. 4. Performance Requirements - 외국인과내국인모두손쉽게접근할수있는직관적인 인터페이스가아니다. 8
1.2 Stage 2030 Analysis 2031. Describe Use Case 1.1 Check 1.2 Deposit - 8. (S) 명세표출력용지가충분한지선택한다 연산한다로수정필요 - E1. 다른거래선택 다른거래를동시에선택할수없다. - 4.(S) 유효한 현금이무엇인지, 어떻게검사하는지명시되어있지않으며 검사하지않음 1.3 Withdraw - 일정시간 이어느정도인지명시되어있지않으며투입구를폐쇄하지 않음 - User 가 Item 을통해자신의계좌에서출금하지않는다. 1.4 Issue TrafficCard 9
1.6 Update E11. 교통카드가부족한지검사하지않으며알림이없음 E12. 명세표출력용지가부족한경우를검사하지않으며알림이없음 - Verify Sufficient fund 처리완료상태가 Pre-Requisites 이아니다.. - 필요한정보가어떤것인지명시되어있지않다. 1.8 Status Alarm - ATM보유현금량이최대값에도달했을경우에도관리자에게알림을보내지않는다. - 명세표의출력용지가충분하지않을경우에도관리자에게알림을보내지않는다. - Transger Transfer 로수정필요. - Use-Case Check 도포함되어야한다 1.9 Management - 3.(A) 로 ATM 을관리하는관리자의행동이추가되어야한다. 10
11
2032. Refine Use Case Diagrams - 수정한 1000 단계의내용과같게수정해야한다. 12
2033. Define Domain Model - 사용되지않는 Sensor, Model 을사용한다. 13
2034. Refine Clossary - 사용하지않는변수 3 개존재 (Sensor, History, chargefee) 2035. Define System Sequence Diagrams 모든 Sequence Diagram 의생명선이잘못되어있다. - 앞서문서에서한번도정의되지않은 end 기능이추가되었다. 2036. Define Operation Contracts 6.2 selectservice(service) - Post-conditions 에 원하는서비스의화면으로접근한다. 추가필요 - 모든 Service 가비밀번호를필요로하지않으므로수정필요 ex) Deposit 14
6.3 printreceipt(print) - Functions R.2.1, R.2.2 추가필요 - Use cases에 Verify Sufficient Fund, Status Alarm 추가필요 - Exceptions에 명세표용지가 ATM에존재하지않는경우 추가필요 - Output : User가원할경우 추가필요 6.4 confirm(password) - Exceptions 에 사용자가입력한비밀번호가계좌의비밀번호와다를경우 추가필요 15
6.5 insertcash(type,amounts) - Responsibilities에지폐를투입구에넣고투입한지폐의종류와양을확인하지않음. - Cross Reference에 Functions R.2.1, R.2.2 추가필요 - Use cases에 Verify Sufficient Fund, Status Alarm추가필요 - Exceptions에 ATM의지폐보유량이최대값에도달한경우알림을보낸다. 추가필요 - Exceptions에 원화와달러를섞어서입금할경우 추가필요 6.7 enteramounts(amounts) - Cross Reference 에 Functions R.2.1, R.2.2 추가필요 - Use cases 에 Verify Sufficient Fund, Status Alarm 추가필요 - Exceptions 에 ATM 의지폐보유량이부족할경우 추가필요 16
6.8 destaccount(bank, account) - Post-conditions 에 출금할지폐의종류를확인한다. 추가필요 6.9 setdaterange(date_range) - Post-conditions 에 교통카드계좌연동및비용결제를안내한다. 추가필요 17
6.10 agreement (approval) - Responsibilities에 교통카드계좌연동및비용결제를안내하고동의를받는다. 수정필요 - Cross Reference에 Functions : R.2.1, R.2.2 추가필요 - Use cases에 Verify Sufficient Fund, Status Alarm 추가필요 - Exceptions에 ATM의교통카드보유량이부족할경우 추가필요 6.11 printreceipt(print) - 6.3 의 printreceipt 와중복되므로삭제필요 6.12 readmanagementitem(id) - 관리자를사용하지않으므로삭제 or 수정필요 6.13 end(void) - 앞에서 end 에대한기능이정의되어있지않으므로수정필요. 2039. Traceability Analysis - 앞단계의변경내용을반영하여전체적으로수정필요. 18
1.3 Stage 2040 Design 2141. Design Real Use Cases - 2030단계에서변경된내용을반영해수정요망 - 구현단계에서 Admin과관련된부분이아예사라졌기때문에 R.2.2 Status Alarm과 R.3.0 Management가아예사용되지않는다. 2142 Define Reports, UI, and Storyboards - UI 프로토타입과화면개수, 구성, 디자인, 흐름이완전히다르다. 2144. Define Interaction Diagrams - 실제프로그램에서존재하지않는 Admin 이그려져있다. - 따라서 Admin 과관련된부분은전부빠져야한다. - 4.1 Check 의예시 ) 존재하지않는조건문과존재하지않는 return 값인알람존재 - readitem 의생명선이 printreceipt 가끝날때까지이어져야한다. 이와관련된부분은아래에서생략한다. 4.1 Check - Sequence Diagram 과흐름이다르다. - readitem 의생명선이끝까지이어져야한다 19
- loop 문의조건이잘못되어있다. 명세에의하면모든 item 이호출될때까지 반복한다. - 7,8 번은 type==book 인경우로분기되어야한다. - 실제프로그램과동작구조가다르다. 객체들의정보가수정되고반영되는부분이존재하지않는다. - Confirm 의생명선이 printreceipt 가끝날때까지이어져야한다. < 이와동일한부분은아래에서생략한다. > 4.2 Deposit - 요구사항명세에서는한화와외화를나누는분기가있지만다이어그램상에서는존재하지않는다. - deposit(money) 의반환값인 money가명시되어있지않다. - 유효한현금인지판별하는분기가나타나있지않다. 20
- printreceipt 의 pre-condition 인 confirm 이나타나있지않다. - getbalance 의분기가나타나있지않다. 4.3 withdraw - loop 문의조건이누락되어있다. - readitem 의반환값인 languagemode 가누락되었다. - selectservice 는 result 의값에따라바뀌는데누락되었다. - 13 번과 12 번의순서와상관관계가바뀌어있다. - Confirm 의 return 값이 true 여야 selectnation 으로진입한다. 21
- 문서에명시되어있는잔고의부족을검사하는부분이누락되어있다. - 조건문이잘못되어있다. ex) wants == true amount > 0 - getbalance 의인자값이다르다. - ATM 의 receiptamount 가변화하는부분이명시되어있지않다. - 22
4.4 Transfer - readitem의 return값에따라 selectservice로의진입여부가판별되는데명시되어있지않다. - selectservice의종료이후실행되는 inputpassword가누락되어있다. - inputpassword의결과로반환되는값인 mode도누락되어있다. - InputTransfer이빠져있어 User에게입력을요청하는부분이누락되어있다. - printreceipt가실행된후사용자가명세표출력요청을했을때에명세표를출력해주어야하는데, 명세표를출력하는부분이누락되어있다. 4.5 Issue TrafficCard - 11번이후 User가 Password를입력하는부분이누락되어있다. - User가 Password를입력하면 inputpassword를통해 mode를설정하는부분이누락되어있다. - Mode를통해나뉘는분기문이모두생략되어있다. - datarange를정하는부분이누락되어있다. - 사용자가명세표출력을선택하는부분이누락되어있다. - setdaterange 함수의생명선은 agreement의종료시까지존재해야한다. 23
4.6 Management - SequnceDiagrm과흐름이다르다. - end되기전관리자가제어하는부분이존재하지않는다. - 명세에따르면작업후 ATM 기기가닫히면 end가실행되는데, 관리자가작업을마치고기기를닫는부분이누락되어있다. - 프로그램상에서존재하지않는다. 2045. Define Design Class Diagrams - 2044에사용한함수들이명시되어있지않다. - cashamount의데이터형이다르다. - ATMadminID, ATMnation 변수가누락되어있다. - confirmeditem, PWD는프로그램상에서존재하지않는변수이다. - 함수의이름이다르다. setdaterange setdatarange - 함수의반환값이다르다. destaccount의반환값은 string이다. - checkresource의접근제어지시자는 public이다. - bankdatadownload와 bootatm은존재하지않는다. 24
< 다른항목들도모두같은문제가발견되었으므로생략한다. > 25
2046. Design Traceability Analysis - End와같은 Interatction diagram에서사용되지않은 Operation이 Method와상관관계를가지고있다. - 또한 bootatm() 과같은존재하지않는 Method가정의되어있다. - Operation과 Method간의상관관계가적절하지않다. - 함수의반환값이다르다. Ex) linkaccount의경우반환값이 boolean이다. 1.4 Stage 2050 Implementation 2051. Implement Class & Methods - 모든 Class와 Method에서언급된 Use-case Status Alarm과 Management 는프로그램상에서구현되지않았으므로모두빠져야한다. - 모든 Method의 Input과 Ouput을작성하지않아서프로그램과의비교가불가능했다. - 이전단계에서의설계와는다르게대부분의기능과로직을 GUIController라는 Class에서구현하였는데, 이에대한설명이하나도남아있지않다. - 함수의이름이프로그램과다르다. getbookpwd getbpwd 수정필요 26
getcardpwd getcpwd 수정필요 getbalance get_balance 수정필요 getitemid get_aid 수정필요 setbalance set_balance setdaterange inputdatarange - 함수의인자값이프로그램과다르다. confirm(itemtype, pwd, accoundid) confirm(int _pwd) 수정필요 2052. Implement Windows - 이전단계와는전혀다른 UI 구성을보여준다. - 이전단계의 revision 이필요해보인다. 1.5 Stage 2060 Unit Test & System Test 2063. System Testing - 소프트웨어모델링팀측에서테스트를전혀진행하지않았다. - 관리자의경우존재하지않기때문에테스트할수없다. 27
2 Category-partition Testing Report 2.1 Categorize 28
2.2 Description 29
2.3 Property & Constraints 30
2.4 TextFile for TSL-Generator 31
2.5 Test Result 1. Error 수정전 => 0% 0/64 (0%) Pass 코드를분석해본결과 Text file 의경로가잘못지정되어있는심각한오류가원인으로밝혀졌습니다. 32
2. Error 수정후 (SV 팀에서수정진행 ) => 42% 27/64 (42%) Pass 33
3 Pairwise Testing Report 3.1 Categorize Category No Values ReadItem 100 Valid 200 Deposit Mode 201 Withdraw 202 Transfer 203 IssueTC InputPassword 300 Valid 301 Invalid InputBank 400 Select InputAccountID 500 Valid 501 Invalid InputCurrency 600 Select 700 ValidInput 701 ValidSelectOnce InputMoney 702 ValidSelectSingleType 703 ValidSelectMultipleType 704 Invalid Agreement 800 Agree 801 Disagree TCAlarm 900 Send 901 NotSend 1000 IncreaseBalance ActorTransaction 1001 DecreaseBalance 1002 SendMoney AdminTransaction 1100 IncreaseBalance 1101 DecreaseBalance TransactionAlarm 1200 Send 1201 NotSend Receipt 1300 Print 1301 NotPrint ReceiptAlarm 1400 Send 1401 NotSend 34
3.2 Description Values Description Valid 4 가지항목에모두올바른값을입력한경우 Check 계좌의잔액을확인한다 Deposit 돈을예금한다. Withdraw 돈을인출한다. Transfer 돈을송금한다. IssueTC 교통카드를발급한다. Valid 유효한비밀번호를입력한다. Invalid 유효하지않은비밀번호를입력한다. Select 거래를진행할은행을선택한다. Valid 유효한 Account ID 를입력한다. Invalid 유효하지않은 Account ID 를입력한다. Valid 유효한기간을입력한다. Invalid 유효하지않은기간을입력한다. Select 거래를진행할화폐를선택한다. ValidInput 유효한금액을입력한다. ValidSelectOnce 금액을한번선택한다. ValidSelectSingleType 한종류의금액을여러번선택한다. ValidSelectMultipleType 여러종류의금액을여러번선택한다. Invalid 유효하지않은금액을입력한다. Agree 이용약관에동의한다. Disagree 이용약관에동의하지않는다. Send 교통카드수량이부족한경우알람을보낸다. NotSend 교통카드수량이부족한경우알람을보낸다. IncreaseBalance 행위자의금액을증가시킨다. DecreaseBalance 행위자의금액을감소시킨다 SendMoney 돈을송금한다. IncreaseBalance 관리자의금액을증가시킨다. DecreaseBalance 관리자의금액을감소시킨다 Send 현금이부족한경우알람을보낸다. NotSend 현금이부족한경우알람을보낸다. Print 영수증을출력한다. NotPrint 영수증을출력하지않는다. Send 영수증용지가부족한경우알람을보낸다. NotSend 영수증용지가부족한경우알람을보내지않는다. 35
3.3 Textfile for PICT 36
3.4 Test Result 1. Error 수정전 CPT와마찬가지로프로그램의도입부에치명적인에러가존재하여테스트결과가 0/25(0%) 로계산되었습니다. 2. Error 수정후 No. TestCase Result Description 1 100.200.300.1401.1500 Passed 2 100.200.300.1400.1500 Failed 영수증용지가부족한경우알람이오지않음. 3 100.200.301 Passed 4 100.201.802.1100.1200.1300.1400.1500 Failed 50000 원을눌렀을때화면에 5000 원이표시됨. 5 100.201.300.802.1100.1200.1300.1401.1500 Failed 50000 원을눌렀을때화면에 5000 원이표시됨. 6 100.201.300.803.1100.1200.1300.1400.1500 Failed 50000 원을눌렀을때화면에 5000 원이표시됨. 7 100.201.801.1100.1200.1300.1401.1500 Failed 현금이부족한경우알람이오지않음. 8 100.201.803.1100.1200.1300.1401.1500 Failed 50000 원을눌렀을때화면에 5000 원이표시됨. 9 100.201.300.801.1100.1200.1300.1400.1500 Failed 현금이나영수증용지가부족한경우알람이오지않음. 10 100.201.301 Passed 11 100.202.300.700.800.1100.1201.1300.1401.1500 Failed 한자리또는두자리의돈을정상적으로출금할수없음. 12 100.202.300.700.800.1100.1201.1300.1400.1500 Failed 한자리또는두자리의돈을정상적으로출금할수없음. 13 100.202.300.700.804 Passed 14 100.202.301 Passed 15 100.203.300.400.500.800.900.1102.1201.1300.1401.1500 Failed 대부분의계좌가조회되지않음. 16 100.203.300.400.500.800.901.1102.1201.1300.1401.1500 Failed 대부분의계좌가조회되지않음. 17 100.203.300.400.500.800.900.1102.1201.1300.1400.1500 Failed 대부분의계좌가조회되지않음. 18 100.203.300.400.500.800.901.1102.1201.1300.1400.1500 Failed 대부분의계좌가조회되지않음. 19 100.203.300.400.501 Passed 20 100.203.300.400.500.804 Failed 대부분의계좌가조회되지않음. 21 100.203.301 Passed 22 100.204.300.600.1000.1100.1200.1300.1400.1500 Failed 교통카드잔량이나현금이부족한경우알람이오지않음. 23 100.204.300.600.1000.1100.1200.1300.1401.1500 Failed 교통카드잔량이나현금이부족한경우알람이오지않음. 24 100.204.301.601 Failed 유효기간이 01 부터시작해야하나 00 인경우도발급됨. 25 100.204.301 Passed 8 / 25 (32%) Pass 37
4 Brute Force Testing Report 4.1 Testing Result Test Test Description P/F Num 아이템 1-1 존재하지않는계좌에접근하려고시도하면중지되는지확인한다. Fail 받아오기 1-2 존재하지않는카드에접근하려고시도하면중지되는지확인한다. Fail 1-3 카드번호에문자를넣으면중지되는지확인한다. Fail 1-4 계좌번호에문자를넣으면중지되는지확인한다. Fail 1-5 아이템종류에문자를넣으면중지되는지확인한다. Fail 입금 2-1 현재 ATM기기가현금을가득보유하고있을때 1000원의입금을시도하면중지되는지 Fail 확인한다. 2-2 현재 ATM기기가현금을가득보유하고있을때 100$ 의입금을시도하면중지되는지확인한다. Fail 출금 3-1 현재 ATM기기가보유하고있는 50000원권의수량이 0일때 50000원을출금하려고시도하면 Fail 10000원짜리다섯장으로출금되는지확인한다. 3-2 현재 ATM기기가현금을보유하고있지않을때출금을시도하면중지되는지확인한다. Fail 3-3 50달러를정상적으로출금하는지확인한다. Fail 3-4 5000만원을정상적으로출금하는지확인한다. Fail 계좌이체 4-1 현재 ATM 기기가현금을보유하고있지않을때계좌이체가가능한지확인한다. Fail 4-2 50달러를정상적으로이체하는지확인한다. Fail 4-3 5000만원을정상적으로출금하는지확인한다. Fail 4-4 등록되지않은계좌번호를입력하고이체를시도했을때중지되는지확인한다. Fail 4-5 자신의계좌번호로이체를시도했을때중지되는지확인한다. Fail 알림 5-1 명세표용지가남아있지않을때명세표를출력하면알림이가는지확인한다. Fail 5-2 ATM기기의현재 1000원보유량이최대치일때 1000원의입금을시도하면알림이뜨는지 Fail 확인한다. 5-3 ATM기기의현재 10$ 보유량이최대치일때 10$ 의입금을시도하면알림이뜨는지확인한다. Fail 5-4 ATM기기가 1000원을보유하고있지않을때 23000원의출금을시도하면알림이뜨는지 Fail 확인한다. 교통카드 6-1 교통카드생성시 0.3달러가출금되는지확인한다. Fail 6-2 현재 ATM 기기가교통카드여분을보유하고있지않을때교통카드생성시중지되는지 확인한다. 0/22 (0%) Pass Fail 코드를분석해본결과 Text file 의경로가잘못지정되어있는심각한오류가원인으로 밝혀졌습니다. 테스팅을진행해보기위해이를수정한후재테스트해보았습니다. 38
Test Test Description P/F Num 아이템 1-1 존재하지않는계좌에접근하려고시도하면중지되는지확인한다. Pass 받아오기 1-2 존재하지않는카드에접근하려고시도하면중지되는지확인한다. Pass 1-3 카드번호에문자를넣으면중지되는지확인한다. Fail 1-4 계좌번호에문자를넣으면중지되는지확인한다. Fail 1-5 아이템종류에문자를넣으면중지되는지확인한다. Fail 입금 2-1 현재 ATM기기가현금을가득보유하고있을때 1000원의입금을시도하면중지되는지 Fail 확인한다. 2-2 현재 ATM기기가현금을가득보유하고있을때 100$ 의입금을시도하면중지되는지확인한다. Pass 출금 3-1 현재 ATM기기가보유하고있는 50000원권의수량이 0일때 50000원을출금하려고시도하면 Fail 10000원짜리다섯장으로출금되는지확인한다. 3-2 현재 ATM기기가현금을보유하고있지않을때출금을시도하면중지되는지확인한다. Pass 3-3 50달러를정상적으로출금하는지확인한다. Fail 3-4 5000만원을정상적으로출금하는지확인한다. Fail 계좌이체 4-1 현재 ATM 기기가현금을보유하고있지않을때계좌이체가가능한지확인한다. Pass 4-2 50달러를정상적으로이체하는지확인한다. Fail 4-3 5000만원을정상적으로출금하는지확인한다. Fail 4-4 등록되지않은계좌번호를입력하고이체를시도했을때중지되는지확인한다. Pass 4-5 자신의계좌번호로이체를시도했을때중지되는지확인한다. Pass 알림 5-1 명세표용지가남아있지않을때명세표를출력하면알림이가는지확인한다. Fail 5-2 ATM기기의현재 1000원보유량이최대치일때 1000원의입금을시도하면알림이뜨는지 Fail 확인한다. 5-3 ATM기기의현재 10$ 보유량이최대치일때 10$ 의입금을시도하면알림이뜨는지확인한다. Fail 5-4 ATM기기가 1000원을보유하고있지않을때 23000원의출금을시도하면알림이뜨는지 Fail 확인한다. 교통카드 6-1 교통카드생성시 0.3달러가출금되는지확인한다. Fail 6-2 현재 ATM 기기가교통카드여분을보유하고있지않을때교통카드생성시중지되는지 확인한다. 7/22 pass (31.8 %) Pass Fail 4.2 Failed Case Report Test 아이템 받아오기 Test Description P/F Num 1-3 카드번호에문자를넣으면중지되는지확인한다. Fail java.lang.numberformatexception 와함께프로그램이강제종료된다. 1-4 계좌번호에문자를넣으면중지되는지확인한다. Fail 39
java.lang.numberformatexception 와함께프로그램이강제종료된다. 1-5 아이템종류에문자를넣으면중지되는지확인한다. java.lang.numberformatexception 와함께프로그램이강제종료된다. Fail 입금 2-1 현재 ATM기기가현금을가득보유하고있을때 1000원의입금을시도하면중지되는지확인한다. 중지되지않고입금이완료된다. 출금 3-1 현재 ATM기기가보유하고있는 50000원권의수량이 0일때 50000원을출금하려고시도하면 10000원짜리다섯장으로출금되는지확인한다. 출금이되지않는다. 3-3 50달러를정상적으로출금하는지확인한다. 500달러로출금된다. 3-4 5000만원을정상적으로출금하는지확인한다. 세자리숫자만입력가능하다. 4-2 50달러를정상적으로이체하는지확인한다. 500달러로이체된다. Fail Fail Fail Fail Fail 4-3 5000 만원을정상적으로출금하는지확인한다. 세자리숫자만입력가능하다. Fail 알림 5-1 명세표용지가남아있지않을때명세표를출력하면알림이뜨는지확인한다. 알림이뜨지않고출력된다. 5-2 ATM기기의현재 10000원보유량이최대치일때 10000원의입금을시도하면알림이뜨는지 확인한다. 알림이뜨지않고입금된다. 5-3 ATM기기의현재 10$ 보유량이최대치일때 10$ 의입금을시도하면알림이뜨는지확인한다. 알림이뜨지않고입금된다. 5-4 ATM기기가 1000원을보유하고있지않을때 23000원의출금을시도하면알림이뜨는지 확인한다. 알림이뜨지않고출금된다. Fail Fail Fail Fail 40
교통카드 6-1 교통카드생성시 0.3 달러가출금되는지확인한다. 3 달러가출금된다. Fail 6-2 현재 ATM 기기가교통카드여분을보유하고있지않을때교통카드생성시알림이뜨고 중지되는지확인한다. 알림이뜨지않고교통카드가생성된다. Fail 41
5 Overall 5.1 System Test Result 5.1.1 Category-Partition Test 데이터가담겨있는 Text File의경로가잘못되어아무것도읽어오지못하는심각한오류가있었지만소모팀분들이해결하지못해서임의로해결하고테스팅을진행했습니다. 문서에정의된기능대부분은정상적으로작동하지만예외처리가되어있지않으며, 관리자에게알람을보내는부분에서많은 Fail이발생하였습니다. 5.1.2 Pairwise Test aaaa 5.1.3 Brute Force Test 데이터가담겨있는 text file의경로가잘못되어아무것도읽어오지못하는심각한오류가있었지만소모팀분들이해결하지못해서임의로해결하고테스팅을진행했습니다. 그럼에도불구하고예외처리가잘되어있지않았고, 주요알고리즘이제대로작동하지않는모습을보였습니다. 5.1.4 Summary 1. 문서들의단계마다일치하지않는부분들이매우많다. A. 2050단계의경우, 모든 method의 Input과 Output칸을비워놓는등최소한의성의를보이지않았다. 2. 실제구현된코드와문서간에굉장한차이점이존재한다. 3. 용어가통일되지않았다. 4. GUI class에서상당수의연산을수행해서본래그연산을수행했어야할 class에는빈함수가존재한다. 5. 객체지향적인설계를하지않았다. 6. 외화로출금, 이체를할경우자릿수가바뀌어연산되는등의치명적인버그들이다수존재한다. 7. Functional Requirement 를만족시키지못하였다. A. 관리자와같은기능의경우, 문서에는존재하지만코드상에서는존재를찾아볼수없다. 8. Non Functional Requirement 를모두만족시키지못하였다. A. 직관적이지않은 UI i. 한글깨짐현상발생 ( 파일과코드전체가 EUC-KR로저장되어있다.) ii. PlaceHolder 처리가되어있지않다. (default text로값이들어가있다.) iii. Maxlength 가지정되어있지않다. iv. Number format이적용되어있지않다. ( 구분자가없다.) v. Return Card가닫지않으면계속출력된다. vi. account id를입력할시기존에있던 label이삭제되고그곳에 account id가입력된다. 42
6 CTIP Usage 6.1 Static Analysis Result Build Case 별로정적분석결과확인이가능하다. 43
6.2 Issue Tracker 테스트결과를이슈트래커에등록했다. 이슈트래커는 G 메일과연동되어있어 SMA 팀에게 notification 이전달된다. 44
45