Software Verification System Test Report 2st Date 2018-06-04 Team 4 201411259 고수창 201411314 전소영 201412005 이세라 201511304 하지윤
1. Step1. Specification Review 3 1.2 Stage 2010 Revise Plan 4 1.3 Stage 2030 Analysis 4 1.4 Stage 2040 Design 7 1.5 Stage 2050 Implementation 9 1.6 Stage 2060 Unit test & System test 21 2. Category-partition Testing Report 23 2.1 Test Case 23 2.1.1 Testable Unit and Representative Values 23 2.1.2 Error Constraints 적용 24 2.1.3 Single Constraints 적용 24 2.1.4 Property Constraints 적용 24 3. Pairwise Testing Report 24 3.1 Testing Case 24 3.2 Testing Result 24 4. Brute Force Testing Report 25 4.1 Testing Result 25 4.2 Failed Case Report 26 5. Overall 27 5.1 System Test Result 27 5.1.1 Category-Partition-Test 27 5.1.2 Pairwise Test 27 5.1.3 Brute Force Test 27 5.1.4 Summary 27 2
1. Step1. Specification Review 1.1 Stage 1000 Planning Activity 1001. Define draft plan 3. Functional Requirements - 4. Check Criminal Account - Functional Requirements에는 Check Criminal Account 로명시되어있지만, 이후문서에는 Check Criminal History 로명시되어있다. 4. Non-functional Requirements - 1. Safe Transaction - Safe에대한기준이제시되어있지않다. - 2. High Performance - Performance의기준이제시되어있지않다. - 3. OS-Independent - OS 독립적으로실행하는기준이제시되어있지않다. Activity 1003. Define Requirements. 3. Operating Environments - Operating System- / Development Environments - Mac OS에대한버전이명시되어있지않다. - Java 버전이명시되어있지않다. 5. Other Requirements - 1. Simple한 UI/UX구조를가진다. - Simple 한 UI/UX에대한 Design Definition 혹은 Guideline이제시되어있지않다. Activity 1005. Implement Prototype - 그림번호및상황에대한정보가제시되어있지않다. Activity 1006. Define Business Use Case 8. Describe Use-Cases - 3. Deposit - 1003에언급되었던타행입금에관한수수료가누락되었다. - 7. CheckTransactionHistory - CheckCriminalHistory로수정이필요하다. 3
1.2 Stage 2010 Revise Plan 이전문서의버전과달라진것이많으나이를작성하지않았다. 요구사항의어떤부분이 추가, 삭제, 수정되었는지알수없다. 버전별바뀐점에대해서작성할필요가있다. 1.3 Stage 2030 Analysis 2031. Define Essential Use Case - 전체적인사항 - Typical Course of Events의시나리오에번호를입력하여순서를명확히할필요가있다. - 2. MediumCheck - Exceptional Course of Events - 5. 유효 의정의가모호하여어떤상황에서유효한것인지알수없다. 카드번호와계좌번호를모두입력받는데계좌번호오류에대한알림만명시되어있다. - 3. Deposit - Typical Courses of Events - 수수료를정확히어느정도차감하는지비율이나와있지않다. - 1006에는수수료관련언급이없었는데해당단계에서당행 / 타행을비교하여수수료를계산하는과정이추가되었다. - 1006에는끝내기버튼을눌러메인으로돌아간다고명시되어있으나누락되었다. - Error에대한처리가명시되지않아단순히표시한다는것인지프로그램을종료하는것인지알수없다. - 4. Withdraw - Typical Courses of Events - 1006에는수수료관련사항이없었는데해당단계에서당행 / 타행을비교하여수수료를계산하는과정이추가되었다. - 1006에는끝내기버튼을눌러메인으로돌아간다고명시되어있으나누락되었다. - Error에대한처리가명시되지않아단순히표시한다는것인지프로그램을종료하는것인지알수없다. - 5. Transfer - Typical Courses of Events 4
- 1006에는수수료관련사항이없었는데해당단계에서당행 / 타행을비교하여수수료를계산하는과정이추가되었다. - Error에대한처리가명시되지않아단순히표시한다는것인지프로그램을종료하는것인지알수없다. - 6. CheckTransactionHistory - 1006에는끝내기버튼을눌러메인으로돌아간다고명시되어있으나누락되었다. - 7. CheckCriminalHistory - 1006에는끝내기버튼을눌러메인으로돌아간다고명시되어있으나누락되었다. 2033. Define Domain Model - 1004 에서제시하였던 User 객체가보이지않는다. 2034. Refine Glossary - Class Diagram 에선 Bankbook 으로표시되어있으나 Glossary 에는 Passbook 으로표시되었다. Bankbook 과 Passbook 을혼용하여혼란을준다. 2036. Define Operation Contracts - inputmedium() - Exception 유효하지않을때의 Exception이없음. - Post Condition 5
- 입력된계좌번호가 DB에존재하는지확인한다 라고했지만확인하는단계에해당하는 System Operation에해당되는사항이없다. - inputmoney() - Exceptions - 2031의 Essential Use Cases에음수를입력할시에러처리를한다고명시되어있으나해당단계에선제시되지않고있다. - inputpassword() - Exception 유효하지않을때의 Exception이없음. - Post Condition - 비밀번호가계좌에해당하는비밀번호인지확인하다 라고명시되어있으나비밀번호를확인하는 System Operation이없다. - inputamount() - Exceptions - 2031의 Essential Use Cases에음수를입력할시에러처리를한다고명시되어있으나해당단계에선제시되지않고있다. - inputaccount() - Post Condition - 계좌번호가유효한지확인한다. 라고명시되어있으나계좌가유효한지확인하는 System Operation이없다. - 계좌의유효성에대한기준이없어어떤계좌가유효한것인지알수없다. 2037. Define State Diagrams - 이전검증에서수정권고를하였으나문서에서누락되어있다. 2038. Refine System Test Case - ATM_STC_003/004/005 - _001: 잘 이라는기준이모호하다. 2031에음수를입력받는경우 Error처리한다고명시되어있으나이를확인하는것이누락되어있다. 6
1.4 Stage 2040 Design 2041. Design Real Use Cases - 2031 과동일한이슈 2042. Define Reports, UI and Storyboards - 이미지제목및설명누락 2043. Refine System Architecture - 실제소스상에없는 User, Passbook, ATM 존재 - 소스상에는 Bankbook, Terminate, View, AtmSystem 존재 2044. Define Interaction Diagrams - Alert : 실제소스상에서, ATMSystem 안에서 alert를호출하지않는다. - 2. MediumCheck - 3. findcard: 실제소스상에서 atm.setsrc를이용해 AtmSystem 내부에서 findcard를자체적으로호출한다. - 4. validatecard : return이명시되어있지않다. - 5. getpin : 실제소스상에서 getpin은 card를 return 하지않고 validatecard가 card를 return한다. - 7. findbankbook : 실제소스상에서 atm.setsrc를이용해 AtmSystem 내부에서 findbankbook을자체적으로호출한다. - 8. validatebankbook : return이명시되어있지않다. - 3. Deposit - 12. transaction : process -> transfer로가는부분이명시되어있지않다. - 14. getbalance : 호출하고 return되는과정이생략되어있다. - 15. filereader : 실제소스에서 FileWriter를호출한다. - 4. Withdraw - 12. transaction : process -> transfer로가는부분이명시되어있지않다. - 14. getbalance : 호출하고 return되는과정이생략되어있다. - 15. filereader : 실제소스에서 FileWriter를호출한다. - 5. Transfer - 5. findcard : 실제소스상에서 atm.setsrc를이용해 AtmSystem 내부에서 findcard를자체적으로호출한다. - 6. validatecard : return이명시되어있지않다. 7
- 7. getpin : 실제소스상에서 getpin은 card를 return 하지않고 validatecard가 card를 return한다. - 9. findbankbook : 실제소스상에서 atm.setsrc를이용해 AtmSystem 내부에서 findbankbook을자체적으로호출한다. - 10. validatebankbook : return이명시되어있지않다. - 23. transaction : process -> transfer로가는부분이명시되어있지않다. - 25. getbalance : 호출하고 return되는과정이생략되어있다. - 26. filereader : 실제소스에서 FileWriter를호출한다. 2045. Define Design Class Diagrams *Bold로처리한항목은소스와문서가일치하는항목이다. - 실제 Class와일치하지않다. - Account - 소스 : accountnum, bank, password, Account, getbank, getaccountnum, getbalance, checkpassword, transaction, getlogs, getcriminallogs - 문서 : accountnum, bank, balance, logs, criminallogs, Account, checkpassword, transaction - Card - 소스 : pin, account, password, Card, getaccount, getpin, checkpassword - 문서 : pin, account, Card, checkpassword - Bankbook - 소스 : account, Bankbook, getaccount - 문서 : account, Bankbook - Bank - 소스 : name, Bank, loaddatabase, filereader, validatebankbook, validatecard, getbalance, transaction, getlogs, getcriminallogs - 문서 : name, path, cards, bankbooks, Bank, loaddatabase, filereader, validatebankbook, validatecard, getbalance, transaction, getlogs, getcriminallogs, getname 8
- View - GUI 에대한의존성이있으므로생략한다. - ATMSystem - 소스 : own, view, src, des, amount, money, fee, medium, banks, process, srccard, AtmSystem, loadbanks, process, checkbalance, checkpassword, deposit, withdraw, transfer, getlogs, getcriminallogs, setprocess, setmedium, setsrc, validatesrc, setdes, validatedes, setamount, setmoney, findcard, findbankbook - 문서 : src, money, medium, des, process, criminallogs, logs, amount, AtmSystem, loadbanks, process, checkbalance, checkpassword, deposit, withdraw, transfer, validatesrc, validatedes, findcard, findbankbook 1.5 Stage 2050 Implementation 2051. Implement Class & Methods Definition - class Account - Account() - purpose - Account 의객체생성한다. 를수정해야한다. Account는생성자로서단순히 attribute를초기화해주는역할만수행하며, 별도의객체를생성하지않기때문이다. - 이부분은이전보고서에서찾아낸부분이지만, 수정이안된것으로보인다. - getbalance() - abstract operation - bank DB 에서 balance 를불러와반환한다. 를수정해야한다. bankdb라는표현이정의되어있지않아정확히무엇을의미하는지모호하다. - 이부분은이전보고서에서찾아낸부분이지만, 수정이안된것으로보인다. - checkpassword() - abstract operation 9
- bankdb 에서비밀번호일치여부를반환한다. 를수정해야한다. bankdb라는표현이정의되어있지않아정확히무엇을의미하는지알수없다. - 이부분은이전보고서에서찾아낸부분이지만, 수정이안된것으로보인다. - getcriminallogs() - abstract operation - 계좌의범죄이력과횟수를반환한다고했으나, 실제프로그램을실행시켜보면횟수가아닌범죄내용및범죄시간에대해서만반환한다. - class AtmSystem - Overview - attribute - View view가누락되어있다. - AtmSystem() - purpose - AtmSystem 의객체생성한다. 를수정해야한다. AtmSystem은생성자로서단순히 attribute를초기화해주는역할만수행하며, class View의객체를생성하기때문이다. - 이부분은이전보고서에서찾아낸부분이지만, 수정이안된것으로보인다. - loadbanks() - Input - 문서에는 Bank own을 input으로받도록나와있으나, 실제코드에서는어떠한파라미터도받지않는다. - checkbalance() - Output 10
- boolean (amount + fee) < arc.getbalance() 로명시되어있으나, 이는코드와다르다. - Abstract operation - 코드와실제문서에나온내용이다르므로이에대한통일이필요하다. - deposit() - Abstract operation - 계좌의 balance를 amount-fee 만큼증가시킨다 는표현이나와있으나, 실제코드에서는 money라는이름의변수로표현되어있다. 이에대한통일이필요하다. - setdes() - Abstract operation - 매체에따라 findcard 또는 findbankbook의결과를 des에저장한다 고명시되어있으나, 실제코드에서는 src를설정한다. - setamount() - Abstract operation - amount 값을설정할때, 타행계좌인경우 fee( 수수료 ) 를설정한다는설명이누락되어있다. - setmoney() - Abstract operation - money 값을설정할때, 타행계좌인경우 fee( 수수료 ) 를설정한다는설명이누락되어있다. 11
- findcard() - 문서전체적으로 bank DB 라는표현이반복되어나온다. 실제 DB를사용하지도않고, 텍스트파일형태의단순파일시스템을사용하기때문에표현을바꾸거나, 정의를새로해줘야할필요가있다. - class Bank - Bank() - purpose - Bank 의객체를생성한다. 를수정해야한다. Bank는생성자로서단순히 attribute를초기화해주는역할만수행하며, 별도의객체를생성하지않기때문이다. - 이부분은이전보고서에서찾아낸부분이지만, 수정이안된것으로보인다. - loaddatabase() - 문서전체적으로 DB라는표현이반복되어나온다. 실제 DB를사용하지도않고, 텍스트파일형태의단순파일시스템을사용하기때문에표현을바꾸거나, 정의를새로해줘야할필요가있다. - validatebankbook() - bank DB라는표현이등장하는데, 실제 DB를사용하지도않고, 이에대한정의가모호하여특정변수를말하는것인지분명한표현으로바꿀필요가있다. - validatecard() - bank DB라는표현이등장하는데, 실제 DB를사용하지도않고, 이에대한정의가모호하여특정변수를말하는것인지분명한표현으로바꿀필요가있다. - class Bankbook - accountnum 에해당하는카드를확인한다고하였으나, 실제 코드에서는 pin 을확인한다. 12
- Bankbook() - Purpose, Abstract operation - Bankbook의객체를생성한다 는표현이명시되어있으나, 이는생성자로서단순히 attribute를초기화해주는역할만을수행한다. 또한, 별도의객체를생성하지않기때문에수정해야한다. - class Card - Card() - Purpose - Card의객체를생성한다 고명시되어있으나, 이는생성자로서단순이 attribute를초기화해주는역할만을수행한다. 또한, 별도의객체를생성하지않기때문에수정해야한다. - Abstract operation - Bankbook의객체를생성한다 고명시되었으나, 실제코드에서는객체를새로이생성하지도않고, 인자값으로받아서초기화해주지도않는다. 2052. Implements Windows - SelectMenuView - 거래내역조회를단순히 조회 라고명시하였으나, 이는추상적인측면이있기때문에 거래내역조회 로변경하는것이바람직하다. - Post-Condition - 계좌를입력할수있다고는하나, 신용카드등매체를선택하는과정도포함되어있기에, 선택한버튼의기능으로진행한다 로수정해야한다. - InputSrcView - Diagram 13
- 코드와다이어그램내용의차이가존재한다. - Post-Condition - 선택한버튼의기능으로계속진행한다 라고명시되어있으나, 정확히어떤기능으로진행한다는지모호하므로 이전단계에서선택한기능의다음단계로계속진행한다 로수정해야한다. - DepositView() - Pre-Condition - 계좌번호가유효한상태여야한다 를 해당번호가유효한상태여야한다 로바꿔야한다. 14
- alert 최대한도가넘어갑니다 - Diagram 15
( 파란색으로표시한부분 ) - 코드와다이어그램내용의차이가존재한다. - inputpassword - Responsibilities - 계좌의비밀번호 를 이전단계에서선택한매체 ( 통장혹은카드 ) 에대한비밀번호 로수정해야한다. - alert wrong password - Diagram 16
- update ( 파란색으로표시한부분 ) - 코드와다이어그램내용의차이가존재한다. - update 가맞는표현이나, 문서에는 Update 로표기되어있다. - WithdrawView() - Pre-Condition - 계좌번호가유효한상태여야한다 를 해당번호가유효한상태여야한다 로바꿔야한다. - alert 잔액이부족합니다 - Diagram 17
- Note ( 파란색으로표시한부분 ) - 코드와다이어그램내용의차이가존재한다. - alert wrong password - Diagram - Responsibilities 내용과중복되므로, 지워야한다. 18
- update - 코드와다이어그램내용의차이가존재한다. 이는위의 InputPassword 클래스에서발생했던것과같다. - update 가맞는표현이나, 문서에는 Update 로표기되어있다. - TransferView() - Pre-Condition - 계좌번호가유효한상태여야한다 를 해당번호가유효한상태여야한다 로바꿔야한다. 카드번호를입력하는경우가있기때문. - alert 계좌가존재하지않습니다 - Diagram - alert 잔고가부족합니다 - Diagram - 코드와다이어그램내용의차이가존재한다. 19
- 코드와다이어그램내용의차이가존재한다. - alert wrong password - Diagram - 코드와다이어그램내용의차이가존재한다. 이는위의 InputPassword 클래스에서발생했던것과같다. - update - update - update 가맞는표현이나, 문서에는 Update 로표기되어있다. - Post-Condition 20
- 돌아가기버튼또는끝내기버튼을누를수있다 라고명시되어 있으나, 실제프로그램동작에서는돌아가기버튼만구현 되어있다. 1.6 Stage 2060 Unit test & System test 2063. System Testing - ATM_STC_003~005 - 계좌번호에해당되는비밀번호를입력되었을때수수료를제외하고출금되는지확인한다 를 계좌번호에해당되는비밀번호를입력되었을때수수료를더하고출금되는지확인한다 로고쳐야한다. - ATM_STC_005 - 송금대상계좌를입력하면, 정상적인계좌임에도불구하고계좌가존재하지않는다는경고가발생한다. 결과적으로송금기능이동작하지않는다. ( 송금대상계좌를입력할때, 입력창에콤마 (,) 가찍혀서출력되는데, 이것이문제의원인인것같다 ) - ATM_STC_005_002~005까지모두 Pass에서 Fail로표기해야한다. - ATM_STC_006 21
- 초기프로그램실행이후거래기록조회를실행해보면, AtmSystem.process에서에러가발생한다. 따라서거래기록을조회할수없다. - 입금이후거래기록을조회하면동작하는것을확인할수있지만, 직전의입금기록에대해서는조회할수없다. 프로그램을종료하고새로운거래를실행하면, 프로그램종료이전의거래기록을확인할수있다. 즉, 최신거래기록을바로확인할수없다. - 프로그램을실행하는동안에발생된거래기록에대해서는확인할수없고, 프로그램재실행이후에확인이가능한다. - 여러오류가발생하고있기때문에 Pass가아닌 Fail로표기해야한다. - CheckTransactionHistory, CheckCriminalHistory - 이력을조회하고싶은계좌를입력하라고명시되어있으나, 실제카드 pin번호를통한이력조회도가능하기때문에 System test case의추가가필요하다. - CheckCriminalHistory와 Safe Transaction의정확한차이가무엇인지모호하다. Safe Transaction 항목은제거해야할것으로보인다. - OS-Independent - 1003에서 Windows 7, Windows 10, Mac OS가구동가능한 OS로명시되어있으나, 2063에서는 OS에무관하게 라고표현되어있으므로이에대한수정이필요하다. ( 실제시스템케이스를통과하였으나, 정확히어떤 OS에대해서테스트를진행했는지명시해야한다 ) - Simple한 UI/UX에대한 System test case가누락되어있다. 22
2. Category-partition Testing Report 2.1 Test Case 2.1.1 Testable Unit and Representative Values Group Category Description Value Number Account 계좌의존재유무확인 계좌번호가존재할때 / 계좌번호가존재하지않을때 1000 / 1001 Validate Card Password 카드의존재유무확인 비밀번호일치확인 카드가존재할때 / 카드가존재하지않을때 1100 / 1101 일치하는비밀번호 / 일치하지않는비밀번호 1200 / 1201 Account Balance 계좌내잔고확인 계좌의잔고가출금하려는잔고보다많다 ( 충분 ) / 계좌의잔고가출금하려는잔고보다적다 ( 불충분 ) 1300 / 1301 입금 타행인경우거래금액에서수수료를제한금액을입금한다 ( 잔액추가 ) / 당행인경우거래금액을입금한다 ( 잔액추가 ) 2000 / 2001 Transacti on Transacti on 출금 송금 타행인경우거래금액에서수수료를더한금액을출금한다 ( 잔액감소 ) / 당행인경우거래금액을출금한다 ( 잔액감소 ) 타행인경우거래금액에서수수료를더한금액을출금하고 ( 잔액감소 ), 송금대상계좌의잔액을거래금액만큼증가시킨다 / 당행인경우거래금액을출금하고 ( 잔액감소 ), 송금대상계좌의잔액을거래금액만큼증가시킨다 2100 / 2101 2200 / 2201 Transacti on Result 입, 출, 송금결과출력 입금, 출금, 송금후계좌에남은실제잔액을화면에표시한다 3000 Print Criminal History 범죄기록출력 범죄기록이있는경우 / 범죄기록이없는경우 3100 / 3101 Transacti on History 거래내역출력 거래내역이있는경우 / 거래내역이없는경우 3200 / 3201 Select Medium 매체선택 ( 카드 / 통장 ) 카드를선택한경우 / 통장을선택한경우 4000 /4001 Account Number 계좌번호입력 숫자로만입력한경우 / 기타문자와숫자를섞어쓴경우 ( 숫자이외의문자가들어간경우 ) / 미입력 5000 / 5001 / 5002 Input Card number 카드번호입력 숫자로만입력한경우 / 기타문자와숫자를섞어쓴경우 ( 숫자이외의문자가들어간경우 ) / 미입력 5100 / 5101 / 5102 Password Number 비밀번호입력 비밀번호를입력받는다 / 입력받지않은경우 / 미입력 5200 / 5201 / 5202 23
Transacti on Amount 거래할금액입력 숫자로만입력한경우 / 기타문자와숫자를섞어쓴경우 ( 숫자이외의문자가들어간경우 ) / 미입력 / 음수 5300 / 5301 / 5302 / 5303 Access Transacti on Log Criminal Log txt 파일에접근 txt 파일에접근 거래기록파일이있는경우 / 거래기록파일이없는경우 범죄기록파일이있는경우 / 범죄기록파일이없는경우 6000 / 6001 6100 / 6101 2.1.2 Error Constraints 적용 - Total Test Case : 442368 -> 143(99.97% 감소 ) 2.1.3 Single Constraints 적용 - Total Test Case : 143 -> 80(44.06% 감소 ) 2.1.4 Property Constraints 적용 - Total Test Case : 80 -> 32(32.00% 감소 ) 3. Pairwise Testing Report 3.1 Testing Case Bank Action Log File PW Account Same Deposit Exist both Vaild Vaild Different Withdraw Exist Criminal only Not Vaild Not Vaild Transfer History Criminal History Exist History only Non 3.2 Testing Result Bank Action Log File PW Account Result Same Criminal Non - Not Vaild P Different Criminal Exist both - Vaild P Same History Exist History Only Vaild Vaild F Different Deposit Exist History Only Not Vaild Not Vaild P Same Withdraw Exist both Vaild Not Vaild P Different Criminal Exist History Only - Not Vaild P Same Criminal Exist Criminal Only - Vaild P 24
Different Withdraw Exist Criminal Only Not Vaild Vaild P Different History Non Not Vaild Vaild F Same Transfer Exist Criminal Only Vaild Not Vaild F Different Withdraw Non Not Vaild Vaild P Same History Exist both Vaild Not Vaild F Same History Exist Criminal Only Not Vaild Not Vaild F Same Deposit Non Vaild Vaild F Different Transfer Exist both Not Vaild Vaild P Same Withdraw Exist History Only Vaild Vaild P Same Deposit Exist both Vaild Vaild F Same Deposit Exist Criminal Only Vaild Vaild P Same Transfer Exist History Only Vaild Not Vaild F Different Transfer Non Not Vaild Not Vaild F 4. Brute Force Testing Report 4.1 Testing Result Number Test Case Result 1 입금시입금금액에음수를넣고확인버튼을누른다. P 2 출금시출금금액에음수를넣고확인버튼을누른다. P 3 송금시송금금액에음수를넣고확인버튼을누른다. P 4 입금시입금금액에숫자이외의문자를넣고확인버튼을누른다. P 5 출금시출금금액에숫자이외의문자를넣고확인버튼을누른다. P 6 송금시송금금액에숫자이외의문자를넣고확인버튼을누른다. P 7 입금시입금금액에 int 범위이외의숫자를넣고확인버튼을누른다. P 8 출금시출금금액에 int 범위이외의숫자를넣고확인버튼을누른다. P 9 송금시송금금액에 int 범위이외의숫자를넣고확인버튼을누른다. P 10 입금시입금금액에아무것도넣지않고확인버튼을누른다. P 11 출금시출금금액에아무것도넣지않고확인버튼을누른다. P 12 송금시송금금액에아무것도넣지않고확인버튼을누른다. P 13 입금내역이많을경우 1초이내에처리되는지확인한다. F 14 출금내역이많을경우 1초이내에처리되는지확인한다. F 15 송금내역이많을경우 1초이내에처리되는지확인한다. F 25
16 거래내역이많을경우 1 초이내에처리되는지확인한다. F 17 범죄이력이많을경우 1 초이내에처리되는지확인한다. F 18 19 거래내역이많을경우, 거래내역조회기능에서 Simple한 UI/UX를가지는지확인한다. 범죄내역이많을경우, 범죄이력조회기능에서 Simple한 UI/UX를가지는지확인한다. F F 20 반복적인거래를하는경우, Simple 한 UI/UX 를가지는지확인한다. F 4.2 Failed Case Report Number Test Case Result 13 14 15 16 17 18 19 20 입금메뉴선택후, log.txt 파일이 50MB 가넘은계좌번호를입력하고확인버튼을누르면약 5 초후메뉴가표시된다 출금메뉴선택후, log.txt 파일이 50MB 가넘은계좌번호를입력하고확인버튼을누르면약 5 초후메뉴가표시된다. 송금메뉴선택후, log.txt 파일이 50MB 가넘은계좌번호를입력하고확인버튼을누르면약 5 초후메뉴가표시된다. 조회메뉴선택후, log.txt 파일이 50MB 가넘은계좌번호를입력하고확인버튼을누르면약 5 초후메뉴가표시된다. 범죄이력조회메뉴선택후, criminallog.txt 파일이 50MB 가넘은계좌번호를입력하고확인버튼을누르면약 5 초후메뉴가표시된다. 조회버튼을눌러 1,622,925 개내역이있는거래계좌를입력하고확인버튼을눌렀을경우페이징처리가되어있지않고단순스크롤로약 160 만여개의거래내역을보여주기때문에 Simple 한 UI/UX 를가진다고보기어렵다. 범죄이력조회버튼을눌러 1,563,312 개내역이있는거래계좌를입력하고확인버튼을눌렀을경우페이징처리가되어있지않고단순스크롤로약 150 만여개의거래내역을보여주기때문에 Simple 한 UI/UX 를가진다고보기어렵다. 여러번기능을반복할경우 JPanel 의 UI Component 가 Clear 되지않고화면에겹쳐서보이는현상이나타난다. F F F F F F F F 26
5. Overall 5.1 System Test Result 5.1.1 Category-Partition-Test - 21/32 = 67.74% Pass 5.1.2 Pairwise Test - 11/20 = 55% Pass 5.1.3 Brute Force Test - 8/20 = 40% Pass 5.1.4 Summary - Specification의구체적인기준이제시되어있지않고모호한것이많다. - 문서에서용어의통일이되지않은경우가종종존재한다. - 이전단계에서수정사항을권고하였으나, 수정되지않은부분이다수존재한다. - 성능과사용자인터페이스와같은 non functional requirement를만족시키지못하였다. - 문서와실제작성된코드간에일치하지않는부분이다수존재한다. 27