Software Verification System Test Report 2st Date Team 고수창 전소영 이세라 하지윤

Similar documents
Activity Implement Class & s Definition 1) Account class urpose Overview(class) Exceptional Courses of Events class Account 계좌정보를모아두는클래스 Attribu

Microsoft Word - OOPT stage 2040 ver2.docx

PowerPoint 프레젠테이션

Software Verification 1 st Testing System Test Team 고예은 김수현 김아름 1

A NEW CSE ATM OOPT Stage 1000 Project Team T3 Date Team Information 이원오 이재규

1.5 Issue TrafficCard Management Activity 2142 Define Reports, UI, and Storyboards window Window Windo

A NEW CSE ATM OOPT Stage 1000 Project Team T3 Date Team Information 이원오 이재규

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

PowerPoint 프레젠테이션

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

목차 1. Activity Implement Class &s Definitions ATM readitem selectservice selectnation

Software Modeling & Analysis Global ATM System Project Team 1 Team Date Team Information 엄현식 최정헌 전다윤

Ver. 4.0 OOPT Stage 1000 <Plan and Elaboration> Version 4.0 Project Team T7 Team Date Team Information 오세욱 임현유

Contents Activity Define Real s Activity Define Reports UI, and Storyboards Activity Refine System Architecture Activity Defin

Software Modeling & Analysis Global ATM System Project Team 1 Team Date Team Information 엄현식 최정헌 전다윤 목차 Activ

Index Activity Refine System Architecture Activity Define Design Class Diagrams Activity 2141, 2142, 2144 Design Real Use Case + Define Re

Microsoft Word - [2017SMA][T8]OOPT_Stage_1000_ docx

Microsoft Word - [2017SMA][T8]OOPT_Stage_1000 ver2.docx

PowerPoint 프레젠테이션

Software Modeling & Analysis Global ATM System Project Team 1 Team Date Team Information 엄현식 최정헌 전다윤

Ver. DS-2012.T3.DWS.STR-1.0 System Test Report for Digital Watch System Test Cases Specification Test Summary Report Project Team 이동아 Latest update on

SMA_2018 version. 3 A New Reliable ATM OOPT Stage 1000 Plan and Elaboration Project Team T 권성완 김선정 허윤아 조수빈 Da

PowerPoint 프레젠테이션

Contents. Phase Revise Plan --- Phase Synchronize Artifacts --- Phase 2130 Analyze Activity2131. Define Essential Use Cases --- Activity21

SMA_2018 version. 4 A New Reliable ATM OOPT Stage 1000 Plan and Elaboration Project Team T 권성완 김선정 허윤아 조수빈 Da

Convenience Timetable Design

컴퓨터공학과 전세진 컴퓨터공학과 서희진 컴퓨터공학과 조민규 2

슬라이드 1

SMA_2018 version. 2 A New Reliable ATM OOPT Stage 1000 Plan and Elaboration Project Team T 권성완 김선정 허윤아 조수빈 Da

소프트웨어개발방법론

PowerPoint 프레젠테이션

Orcad Capture 9.x

메뉴얼41페이지-2

Ver1.0

SMV Vending Machine Implementation and Verification 김성민 정혁준 손영석

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

Java Programing Environment

PowerPoint Template

Software Modeling < < OOAD Stage 김정태 최정명 이낙원 송준현

Ver 2.2 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

Index Process Specification Data Dictionary

1.장인석-ITIL 소개.ppt

UML

Slide 1

ETL_project_best_practice1.ppt

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Chapter 1

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

MVVM 패턴의 이해

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

e-spider_제품표준제안서_160516

OSP Stage 2040 <Plan & Elaboration> 유아를위한주제별영어학습놀이프로그램 T 김도희 박수민 + 김태현 1

PowerPoint Template

Manufacturing6

Microsoft PowerPoint - Java7.pptx

슬라이드 1

DBPIA-NURIMEDIA

OOO Paint

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

13 Who am I? R&D, Product Development Manager / Smart Worker Visualization SW SW KAIST Software Engineering Computer Engineering 3

APOGEE Insight_KR_Base_3P11

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

슬라이드 1

thesis

PowerPoint 프레젠테이션

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft Word - [TP_3][T1]UTP.docx

Ver. 2017SE-POS-SRS-3.0 Software Requirement Analysis for Point Of Sale System Project Team Team 6 Date Team Information 김병식 2016

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Something that can be seen, touched or otherwise sensed

Microsoft PowerPoint - Ieee standard pptx

SW¹é¼Ł-³¯°³Æ÷ÇÔÇ¥Áö2013

No Slide Title

final_thesis

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Remote UI Guide

DW 개요.PDF

Tablespace On-Offline 테이블스페이스 온라인/오프라인

레이아웃 1

2Q SWG Teleweb Business Plan & 1Q Recovery Plan April 2, 2003

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

Oracle Apps Day_SEM

Ver. T3_DWS.UTP-1.0 Unit Testing Plan for Digital Watch System Test Plan Test Design Specification Test Cases Specification Date Team Infor

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

OOO Paint

DBPIA-NURIMEDIA

보고서(겉표지).PDF

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

PowerPoint Presentation

open-api.md 2/14/2019 Deflow Open Api 1. 목록 (GET) /v1/order/list - 주문내역조회 (GET) /v1/order/complete/list - 거래내역조회 (POST) /v1/order/cancel - 주문취소 (GET)

OOO Paint

歯Final-Handout.PDF

정보기술응용학회 발표

03.Agile.key

DBPIA-NURIMEDIA

new_biz

오버라이딩 (Overriding)

new_biz

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

Transcription:

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