1 hotel management system implementation and testing presented by team 1 peter lockwood reita sikka...

32
1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

Upload: zachary-ball

Post on 27-Mar-2015

216 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

1

HOTEL MANAGEMENT SYSTEM

Implementation and Testingpresented by Team 1

Peter Lockwood

Reita Sikka

Pradeep Miglani

Sandra Busik

Susan Le

Kai Zhang

Page 2: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

2

HMS Presentation Agenda Implementation and Testing

•Transferring the HMS UML Design to Java Code•Brief Design Review

•Static Class Diagram•Consolidated Collaboration Diagram•Class Diagram•Information Hiding Class Diagram•Data Relationship Diagram

•Software Implementation•High Level Mapping of HMS Design to Java Classes•Specific Example: Reservation Class

•Unit and Integration Testing•Unit Testing

•Overview of Unit Testing Plan and Results•Example of Unit Test Cases

•Integration Test•Overview of Unit Testing, Integration Testing & Differences Compared to Unit Testing

Page 3: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

3

Brief Design Review

Page 4: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

4

Customer

User Discount

Bill

HMS

Reservation

Room

Login

Room Availability

makes

authenticates

processes

authenticates

has

has

has

uses

Static Diagram

Payment

Page 5: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

5

Static Diagram Attributes

Customer

customerID : int = 0fName : string = ""lName : string = ""mName : string = ""Street : string = ""city : string = ""state : string = ""zip : string = ""zip4 : int = 0Country : type = initvalhomePhoneWorkPhoneEmailPreferencesLastVisitedCCNumCCExpCCExpYrCCHolder

<<entity>>

Payment

paymentID : IntegerpaymentType : StringpaymentTypeDesc : StringCCNumber : StringCCExp : StringCCOwner : StringpaymentAmount : StringpaymentDate : Date

<<entity>>Reservation

reservationID : int = 0customerID : int = 0reservationDate : Date = 0ExpCheckinDt : DateexpCheckoutDt : DateAnticipatedArrTimeNumGuestsToomTypeIDRoomRateSmokingPreferencesGuaranteedCommentsPaymentTypeBedTypeDiscount

<<entity>>User

userID : IntegerloginName : Stringpassword : StringroleID : IntegeruserFirstName : StringuserMName : StringuserLastName : StringuserContactInfo : String

<<entity>>

RoomAvailability

roomAvailabilityID : IntegerroomTypeID : IntegerDate : DateNumAvailable : Integer

<<<<entity>>>>

Discount

discountID : IntegerdiscountName : StringdiscountPercent : StringdiscountExp : DatediscountAmount : Integerdescription : String

<<entity>>

Room

roomID : IntegerroomNumber : IntegerroomType : StringroomStatus : StringroomDesc : StringroomRate : StringnumBeds : StringisAvailable : Boolean

<<entity>>

Report

reportType : string = ""

<<entity>>

Page 6: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

6

: Reservation

<<entity>>

: Bill

<<entity>>

: Scheduler

<<periodic timer>>

: Customer

<<entity>>

: Scheduler (Timer)

: Room

<<entity>>

: CustomerServiceRep

: HMSInterface

<<user interface>>

: Manager

: HMSControl

<<control>>

: Report

<<entity>>

: Payment

<<entity>>

: ReservationControl

<<control>>

: Checkin

<<control>>

: Checkout

<<control>>

: CustRecord

<<control>>

: GenerateReport

<<control>>

:Room Services/Food Subsystem

<<subsystem>>

CONSOLIDATED COLLABORATION DIAGRAM FOR RESERVATION & BOOKING SYSTEM

:RoomAvailabil ity

<<control>:Discount

Cancel non-guaranteed Bill no-show

Bill additional day

Scheduler Ev entsCSR/Manager Ev ents (Transaction Details)

Inf ormation display ed

CSR Input

Display Inf o

Manager Input

Display Inf o 'Reserv ation' selected

Reserv ation display ed

'Checkin' selected

'Checkout' selected

'Customer Record' selected'Generate Report' selected

Update Reserv ation

Reserv ation Inf o

Check av ailabilityUpdate av ailability

Av ailability inf o

Apply /Remov e discount

Set Room Status

Check Av ailabilityUpdate Av ailability

Av ailability inf o

Apply /Remov e discount

Set Room Status

Bill data

Generate Bill

Update Pay ment

Apply /Remov e Discount

Retriev e/Add/Update Cust Record Customer data Report requestReport

Room Serv ices /Food Bill data

Page 7: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

7

: HMSInterface<<user interface>>

: Manager

: Room<<enti ty>>

CONSOLIDATED COLLABORATION DIAGRAM FOR MANAGEMENT SERVICES SYSTEM

: HMSControl<<control>>

: User<<enti ty>>

: Report<<enti ty>>

: GenerateReport<<control>>

: RoomAdmin<<control>>

: UserAdmin<<control>>

Manager Events (Transaction Detai ls)

Information Displayed

Manager Input

Display Info

'Generate Report' selected

'Room Administration' selected

'User Administration' selected

Report RequestReport

Add/Update Room InfoRoom Info

Add/Update/Delete User ProfileUser Profi le Info

Page 8: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

8

Class Diagram (Class Relationships)

HMS Interface<<Control>>

Scheduler<<Timer>>

UserAdmin<<<<control>>>>

User<<Actor/Entity>>

Generate Report<<Control>>

CLIENT<<Utility Methods>>

Search<<Methods>>

Report<<Entity>>

Generate

Reservation<<Entity>>

Reservation Control<<Control>>

ResInfo

Customer<<Actor / Entity>>

CustRecord<<Control>>

CustInfo

Checkout<<Control>>

Payment<<Control>>

Room<<Entity>>

RoomAvailability<<<<Control>>>>

Check

Discount<<Control>>

Checkin<<<<Control>>>>

jdbcConnection<<Database>>

HMS Control<<Control>>

Administer

RoomAdmin<<<<control>>>>Administer

doSearch

Accept Payment

Apply/Remove

doSearch

showAvailable

Apply/RemovedoSearch

Apply/Remove

CheckAvailability

doSearch

Page 9: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

9

Information Hiding ClassesCustomer

customerID : int = 0fName : string = ""lName : string = ""mName : string = ""Street : string = ""city : string = ""state : string = ""zip : string = ""zip4 : int = 0Country : type = initvalhomePhoneWorkPhoneEmailPreferencesLastVisitedCCNumCCExpCCExpYrCCHolder

getFName()getCustomerID()getLastDateVisited()getEmail()getPreferences()getMName()getLName()getStreet()getState()getZip()getZip4()getCountry()getHomePhone()getWorkPhone()getCCNum()getCCExp()getCCxpYr()getCCholder()()setFName()setCustomerID()setLastDateVisited()setEmail()setPreferences()setMName()setLName()setStreet()setState()setZip()setZip4()setCountry()setHomePhone()setWorkPhone()setCCNum()setCCExp()setCCxpYr()setCCholder()

<<entity>>

Checkin

sReservation : String = ""sReservationDate : String = ""sFirstName : String = ""sMI : String = ""sLastName : String = ""sStreet : String = ""sCity : String = ""sState : String = ""sZip : String = ""sHomePhone : String = ""sWorkPhone : String = ""sEmail : String = ""sCheckinDt : String = ""sComments : String = ""sPreferences : String = ""sArrivalTime : String = ""sGuests : String = ""sCheckinDate : String = ""sCheckoutDate : String = ""sRoomRate : String = ""sCCHolder : String = ""sPayment : String = ""sCCNumber : String = ""sExpMonth : String = ""sCheckinID : String = ""sRoomID : String = ""sAmtPaid : String = ""sRoomNumber : String = ""sCheckinID : String = ""sRoomID : String = ""sRoomType : String = ""sRoomTypeID : int = ""sPaymentID : String = ""sPaymentTypeID : Stirng = ""sReservationID : String = ""customerID : intsDiscount : String = ""

clearAll()populateCombos()CheckOut()jbInit()btnDiscount_actionPerformed()btnClear_actionPerformed()btnClose_actionPerformed()btnRetrieve_actionPerformed()insertReservation()checkFrontEndValidations()btnCheckIn_actionPerformed()btnRoomNbr_actionPerformed()insertCustomer()updateReservation()getData()PopulateRecord()

<<<<control>>>>Checkout

sReservation : String = ""sReservationDate : String = ""sFirstName : String = ""sMI : String = ""sLastName : String = ""sStreet : String = ""sCity : String = ""sState : String = ""sZip : String = ""sHomePhone : String = ""sWorkPhone : String = ""sEmail : String = ""sCheckinDt : String = ""sComments : String = ""sPreferences : String = ""sArrivalTime : String = ""sGuests : String = ""sCheckinDate : String = ""sCheckoutDate : String = ""sRoomRate : String = ""sCCHolder : String = ""sPayment : String = ""sCCNumber : String = ""sExpMonth : String = ""sCheckinID : String = ""sRoomID : String = ""sAmtPaid : String = ""sRoomNumber : String = ""sCheckoutID : String = ""sDiscount : String = ""nBillID : intnBillSum : intsHtlBal : intnBillItemAmt : int

clearAll()populateCombos()CheckOut()jbInit()btnDiscount_actionPerformed()btnClear_actionPerformed()btnClose_actionPerformed()btnRetrieve_actionPerformed()checkFrontEndValidations()btnPayment_actionPerformed()btnCheckout_actionPerformed()checkFrontEndValidation()getData()PopulateRecord()

<<<<control>>>>

Page 10: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

10

Information Hiding Classes (continued)CustRecord

sReservation : String = ""sReservationDate : String = ""sFirstName : String = ""sMI : String = ""sLastName : String = ""sStreet : String = ""sCity : String = ""sState : String = ""sZip : String = ""sHomePhone : String = ""sWorkPhone : String = ""sEmail : String = ""sCheckinDt : String = ""sPreferences : String = ""sDiscount : String = ""

clearAll()populateCombos()CheckOut()jbInit()insertCustomer()checkFrontEndValidations()btnSave_actionPerformed()btnClear_actionPerformed()btnClose_actionPerformed()btnRetrieve_actionPerformed()

<<<<control>>>>GenerateReport

btnCancel : JButtonbtnClear : JButtonbtnExceptions : JButtonbtnOccupancy : JButtonbtnPending : JButtonbtnPendingCO : JButtonbtnRevenue : JButtontxtBeginDate : StringtxtEndDate : String

btnCancel_actionPerformed()btnClear_actionPerformed()btnExceptions_actionPerformed()btnOccupancy_actionPerformed()btnPendingCO_actionPerformed()btnRevenue_actionPerformed()verifyBeginEndDate()verifyDate()

<<<<control>>>>ReservationControl

sReservationDate : StringsFName : StringsMI : StringsLName : StringsStreet : StringsCity : StringsState : StringsZip : typesZip4 : StringsHomePhone : StringsWorkPhone : StringsEmail : StringsCheckinDt : StringsCheckoutDt : StringnRoomType : intsArrivalTime : StringsGuests : StringsRoomRate : StringsPaymentType : StringsBedType : StringsCCHolderName : StringsSmoking : StringsCCNumber : StringsCCExpMo : StringsCCExpYr : StringsComments : StringsPreferences : StringsGuaranteed : StringsDiscount : StringisNewCust : boolean

jbInit()populateCombos()btnClose_actionPerformed()getDate()btnSave_actionPerformed()btnRetrieve_actionPerformed()insertCustomer()updateCustomer()insertReservation()updateReservation()populateRecord()btnClear_actionPerformed()btnDiscount_actionPerformed()btnCancel_actionPerformed()cmbRoomType_actionPerformed()opname()

<<<<control>>>>

Page 11: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

11

Information Hiding Classes (continued)

CLIENT

HMSControl ParentFrame : static

showMessage()Debug()Confirm()sqlEncode()getStatus()validateAlphaNumeric()getRoomTypeID()getRoomType()VerifyDate()getDate()replaceString()convertSQLQuotesToNull()populateStateCombo()getINIParam()SetParent()SetStatus()SetStatusReady()OpenDialog()executeQuery()executeupdate()SetMouseCursor()

<<Utilities>>jdbcConnection

userName : Stringpassword : StringdatabaseName : String

getData()setData()commit()rollback()

<<Database>>HMSControl

ParentFrameMenuBarToolBar

<<<<control>>>>HMS Interface

openFrame()doLogin()Init()

<<User Interface>>

Scheduler

customerID : int = 0reservationID : int = 0roomRate : int = 0chargeRoom : boolean = FalsetimeChargeForNoShow : string = ""timeChargeForAdditionalDay : string = ""timeChargeForGuaranteedRoom : string = ""

cancelNonGuarRes()billGuarRoom()billAddtlDay()billNoShows()

<<control>>

Page 12: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

12

Information Hiding Classes (continued)Room

roomID : IntegerroomNumber : IntegerroomType : StringroomStatus : StringroomDesc : StringroomRate : StringnumBeds : StringisAvailable : Boolean

getRoomNumber()getRoomType()getRoomStatus()getRoomDesc()getNumBeds()isAvailable()setRoomNumber()setRoomStatus()setRoomRate()setRoomDesc()setNumBeds()makeAvailable()

<<entity>>

Report

reportType : string = ""

generateReport()

<<entity>>

Payment

paymentID : IntegerpaymentType : StringpaymentTypeDesc : StringCCNumber : StringCCExp : StringCCOwner : StringpaymentAmount : StringpaymentDate : Date

getPaymentType()getPaymentTypeDesc()getCCNumber()getCCExp()getCCOwner()getPaymentAmount()getPaymentDate()setPaymentType()setPaymentTypeDesc()setCCNumber()setCCExp()setCCOwner()setPaymentAmount()setPaymentDate()

<<entity>>Reservation

reservationID : int = 0customerID : int = 0reservationDate : Date = 0ExpCheckinDt : DateexpCheckoutDt : DateAnticipatedArrTimeNumGuestsToomTypeIDRoomRateSmokingPreferencesGuaranteedCommentsPaymentTypeBedTypeDiscount

getReservationID()getCustomerID()getReservationDt()getExpCheckinDt()getExpCheckoutDt()getAnticipatedArrTime()getNumGuests()getRoomTypeID()getRoomRate()getSmoking()getPreferences()getComments()getPaymentType()getBedType()getDiscount()setReservationID()setCustomerID()setReservationDt()setExpCheckinDt()setExpCheckoutDt()setAnticipatedArrTime()setNumGuests()setRoomTypeID()setRoomRate()setSmoking()setPreferences()setComments()setPaymentType()setBedType()setDiscount()

<<entity>>User

userID : IntegerloginName : Stringpassword : StringroleID : IntegeruserFirstName : StringuserMName : StringuserLastName : StringuserContactInfo : String

getUserID()getLoginName()getPassword()getRoleID()getUserFirstName()getUserMName()getUserLastName()getUserContactInfo()setUserID()setLoginName()setPassword()setRoleID()setUserFirstName()setUserMName()setUserLastName()setUserContactInfo()

<<entity>>

Page 13: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

13

SearchResults

aReservationControl : ReservationControlaCheckin : CheckinaCustRecord : CustRecordaPayment : Payment

SearchResults()SearchResults()SearchResults()SearchResults()SearchResults()jbInit()btnCancel_actionPerformed()btnSelect_actionPerformed()

<<<<control>>>>RoomAvailability

myCheckin : CheckinroomAvailabilityID : IntegerroomTypeID : IntegerDate : DateNumAvailable : Integer

RoomAvailability()RoomAvailability()jbInit()populateRoomType()btnClose_actionPerformed()btnSearch_actionPerformed()doSearch()validateInput()btnClear_actionPerformed()checkAvailability()showAvailability()decrementRoom()IncrementRoom()makeOccupied()makeAvailable()btnOK_actionPerformed()

<<<<control>>>>

Discount

customerID : int = 0reservationID : int = 0discountType : string = ""discountAmount : int = 0discountID : IntegerdiscountPercent : StringdiscountExp : DatediscountAmount : Integerdescription : String

applyDiscount()removeDiscount()

<<<<control>>>>

UserAdmin

userID : IntegerloginName : Stringpassword : StringroleID : IntegeruserFirstName : StringuserMName : StringuserLastName : StringuserContactInfo : StringaUser : User

findUser()updateUserInfo()addUser()deleteUser()

<<<<control>>>>RoomAdmin

roomID : IntegerroomNumber : IntegerroomTypeID : IntegerroomStatusID : Integerdescription : Stringsmoking : StringroomRate : DoublenumberOfBeds : Integer

findRoom()updateRoomInfo()addRoom()deleteRoom()updateRoomTypeInfo()

<<<<control>>>>

Information Hiding Classes (continued)

Page 14: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

14

HMS Data Relationship Model

Page 15: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

15

Software Implementation

Page 16: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

16

Reservation

reservationID : int = 0customerID : int = 0reservationDate : Date = 0ExpCheckinDt : DateexpCheckoutDt : DateAnticipatedArrTimeNumGuestsRoomTypeIDRoomRatesmokingPreferencesGuaranteedCommentsPaymentTypeBedTypeDiscount

getReservationID()getCustomerID()getReservationDt()getExpCheckinDt()getExpCheckoutDt()getAnticipatedArrTime()getNumGuests()getRoomTypeID()getRoomRate()getSmoking()getPreferences()getComments()getPaymentType()getBedType()getDiscount()setReservationID()setCustomerID()setReservationDt()setExpCheckinDt()setExpCheckoutDt()setAnticipatedArrTime()setNumGuests()setRoomTypeID()setRoomRate()setSmoking()setPreferences()setComments()setPaymentType()setBedType()setDiscount()

<<entity>> public class Reservation { private int ReservationID = 0; private int CustomerID = 0; private String ReservationDate = null; private String ExpCheckinDt = null; private String ExpCheckoutDt = null ; private String anticipdateArrTime = ""; private int NumGuests = 0; private int RoomTypeID = 0; private double RoomRate = 0; private String smoking = "N"; private String Preferences = ""; private String Guaranteed = "N"; private String Comments = ""; private String PaymentType = ""; private String BedType = ""; private String Discount = "";

public int getReservationID() { } public int getCustomerID() { } public String getReservationDate() { } public String getExpCheckinDt() { } public String getExpCheckoutDt() { } public String getAnticipdateArrTime() { } public int getNumGuests() { } public int getRoomTypeID() { } public double getRoomRate() { } public String getSmoking() { } public String getPreferences() { } public String getGuaranteed() { } public String getComments() { } public String getPaymentType() { } public String getBedType() { } public String getDiscount() { } public void setReservationID(int resID) { } public void setCustomerID(int CustID) { } public void setReservationDate(String resDate) { } public void setExpCheckinDt(String expcheckinDt) { } public void setExpCheckoutDt(String expcheckoutDt) { } public void setAnticipdateArrTime(String antArrTm) { } public void setNumGuests(int num) { } public void setRoomTypeID(int roomType) { } public void setRoomRate(double roomRt) { } public void setSmoking(String smkng) { } public void setPreferences(String pref) { } public void setGuaranteed(String guar) { } public void setComments(String com) { } public void setPaymentType(String paymentType) { } public void setBedType(String bedType) { } public void setDiscount(String discount) { }}

Page 17: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

17

ReservationControl

sReservationDate : StringsFName : StringsMI : StringsLName : StringsStreet : StringsCity : StringsState : StringsZip : typesZip4 : StringsHomePhone : StringsWorkPhone : StringsEmail : StringsCheckinDt : StringsCheckoutDt : StringnRoomType : intsArrivalTime : StringsGuests : StringsRoomRate : StringsPaymentType : StringsBedType : StringsCCHolderName : StringsSmoking : StringsCCNumber : StringsCCExpMo : StringsCCExpYr : StringsComments : StringsPreferences : StringsGuaranteed : StringsDiscount : StringisNewCust : boolean

jbInit() : voidpopulateCombos() : voidbtnClose_actionPerformed(ActionEvent e) : voidgetData() : voidbtnSave_actionPerformed(ActionEvent e) : voidbtnRetrieve_actionPerformed(ActionEvent e) : voidinsertCustomer(Customer newCustomer) : booleanupdateCustomer(Customer newCustomer) : booleaninsertReservation(Reservation aReservation) : booleanupdateReservation(Reservation aReservation) : booleanpopulateRecord(int nCustomerID, int nReservationID) : voidbtnClear_actionPerformed(ActionEvent e) : voidbtnDiscount_actionPerformed(ActionEvent e) : voidbtnCancel_actionPerformed(ActionEvent e) : voidcmbRoomType_actionPerformed(ActionEvent e) : voidopname(argname) : return

<<<<control>>>> public class ReservationControl extends JPanel { String sReservationDate = ""; String sFName = ""; String sMI = ""; String sLName = ""; String sStreet = ""; String sCity = ""; String sState = ""; String sZip = ""; String sZip4 = ""; String sHomePhone = ""; String sWorkPhone = ""; String sEmail = ""; String sCheckinDt = ""; String sCheckoutDt = ""; int nRoomType = 0; String sArrivalTime = ""; String sGuests = ""; String sRoomRate = ""; String sPaymentType = ""; String sBedType = ""; String sCCHolderName = ""; String sSmoking = ""; String sCCNumber = ""; String sCCExpMo = ""; String sCCExpYr = ""; String sComments = ""; String sPreferences = ""; String sGuaranteed = "N"; String sDiscount = ""; boolean isNewCust = false;

public boolean insertCustomer(Customer newCustomer) { }public boolean insertReservation(Reservation aReservation) { }public boolean updateCustomer(Customer newCustomer) { }public boolean updateReservation(Reservation aReservation) { }void btnCancel_actionPerformed(ActionEvent e) { }void btnClear_actionPerformed(ActionEvent e) { }void btnClose_actionPerformed(ActionEvent e) { }void btnDiscount_actionPerformed(ActionEvent e) { }void btnRetrieve_actionPerformed(ActionEvent e) { }void btnSave_actionPerformed(ActionEvent e) { }void cmbRoomType_actionPerformed(ActionEvent e) { }void getData() { }void jbInit() throws Exception { }void populateCombos() { }void populateRecord(int nCustomerID, int nReservationID) { }boolean verifyData() { }}

Page 18: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

18

Reservation.javapackage HMS;

/**

* Title: SWE 626 Project

* Description:

* Copyright: Copyright (c) 2002

* Company: GMU Students

* @author 626 Team 2 for Spring 02

* @version 1.0

*/

public class Reservation

{

private int ReservationID = 0;

private int CustomerID = 0;

private String ReservationDate = null;

private String ExpCheckinDt = null;

private String ExpCheckoutDt = null ;

private String anticipdateArrTime = "";

private int NumGuests = 0;

private int RoomTypeID = 0;

private double RoomRate = 0;

private String smoking = "N";

private String Preferences = "";

private String Guaranteed = "N";

private String Comments = "";

private String PaymentType = "";

private String BedType = "";

private String Discount = "";

public Reservation()

{

}

public int getReservationID()

{

return ReservationID;

}

public int getCustomerID()

{

return CustomerID;

}

public String getReservationDate()

{

return ReservationDate;

}

public String getExpCheckinDt()

{

return ExpCheckinDt;

}

public String getExpCheckoutDt()

{

return ExpCheckoutDt;

}

public String getAnticipdateArrTime()

{

return anticipdateArrTime;

}

public int getNumGuests()

{

return NumGuests;

}

Page 19: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

19

Reservation.java - Continued

public int getNumGuests()

{

return NumGuests;

}

public int getRoomTypeID()

{

return RoomTypeID;

}

public double getRoomRate()

{

return RoomRate;

}

public String getSmoking()

{

return smoking;

}

public String getPreferences()

{

return Preferences;

}

public String getGuaranteed()

{

return Guaranteed;

}

public String getComments()

{

return Comments;

}

public String getPaymentType()

{

return PaymentType;

}

public String getBedType()

{

return BedType;

}

public String getDiscount()

{

return Discount;

}

public void setReservationID(int resID)

{

this.ReservationID = resID;

}

public void setCustomerID(int CustID)

{

this.CustomerID = CustID;

}

public void setReservationDate(String resDate)

{

this.ReservationDate = resDate;

}

public void setExpCheckinDt(String expcheckinDt)

{

this.ExpCheckinDt = expcheckinDt;

}

Page 20: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

20

Reservation.java – Continued 2

public void setExpCheckoutDt(String expcheckoutDt)

{

this.ExpCheckoutDt = expcheckoutDt;

}

public void setAnticipdateArrTime(String antArrTm)

{

this.anticipdateArrTime = antArrTm;

}

public void setNumGuests(int num)

{

this.NumGuests = num;

}

public void setRoomTypeID(int roomType)

{

this.RoomTypeID = roomType;

}

public void setRoomRate(double roomRt)

{

this.RoomRate = roomRt;

}

public void setSmoking(String smkng)

{

this.smoking = smkng;

}

public void setPreferences(String pref)

{

this.Preferences = pref;

}

public void setGuaranteed(String guar)

{

this.Guaranteed = guar;

}

public void setComments(String com)

{

this.Comments = com;

}

public void setPaymentType(String paymentType)

{

this.PaymentType = paymentType;

}

public void setBedType(String bedType)

{

this.BedType = bedType;

}

public void setDiscount(String discount)

{

this.Discount = discount;

}

}

Page 21: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

21

ReservationControl.java

ReservationControl.java Code

Page 22: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

22

Unit Testing

Page 23: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

23

• This unit is concerned with knowledge about testing a program unit, typically developed by a single individual, to determine that it is free of data, logic, or standards errors.

• This unit includes knowledge of dynamic analysis (equivalent partitioning, boundary value analysis, cause-effect graphing, logic-based testing, random testing, and syntax testing) and static analysis (complete path testing, decision testing, condition testing, and data-flow testing).

Reference: IEEE 90

Unit Testing

Page 24: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

24

Overview of Unit Testing Plan• Excel Spreadsheet with several specific, detailed individual tests. Each test was implemented on the application and the results were recorded. If the test failed, the coding corrections were recorded and the application was retested. • An example of one test:

Test Cycle: 1.0 Manager only (not CSR)

generates a report on hotel occupancy

Test Objective: Generate a report on hotel occupancy

Specific Testing goals Input Data Expected Results Actual Results Expected Results -

Errors

Actual Results -

Errors

Tester

Initials

Date Tested Status

(Pass, Failed,

Pending, Deferred)

1.0 Manager enters Begin

Date, does not enter End Date, and then clicks the Hotel Occupancy Button

BeginDate:

04/01/02

If an End Date is not

entered, the follow ing message is displayed, "Enter correctly formatted date"

Message displayed If an End Date is not

entered, the follow ing message is displayed, "Enter correctly formatted date"

Message displayed PL 4/21/2002 Pass

Page 25: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

25

Test Use Case Derivation Test ResultA.Reports

1. Generate a Report on Hotel Occupancy Generate a Report Use Case Passed2. Generate a Report on Hotel Revenue Generate a Report Use Case Passed3. Generate a Report on Default Price Exceptions Generate a Report Use Case Passed4. Generate a Report on Pending Check Outs Generate Pending CheckOut Report Use Case Passed

B.User Administration Passed1. Find a User Administer User Profile Use Case Passed2. Add a New User Administer User Profile Use Case Passed3. Update a Users Information Administer User Profile Use Case Passed4. Clear information in Text Field Administer User Profile Use Case Passed5. Delete a User Administer User Profile Use Case Passed6. View Updated List of Users Administer User Profile Use Case Passed

C.Room Administration Passed1. Find a Room Administer Hotel System Use Case Passed2. Add a Room Administer Hotel System Use Case Passed3. Update a Room Administer Hotel System Use Case Passed4. Clear the Text Information Administer Hotel System Use Case Passed5. Update Room Rate and Number of Beds Administer Hotel System Use Case Passed6. Clear Text Field Information Administer Hotel System Use Case Passed

D.Reservations Passed1. Make a Reservation Make a Reservation Use case Passed2. Apply a Room Rate Discount Adjust Default Room Rate Extention Use Case Passed3. Remove Room Rate Discount Adjust Default Room Rate Extention Use Case Passed4. Cancel Room Rate Discount Adjust Default Room Rate Extention Use Case Passed5. Clear the Reservation Screen Make a Reservation Use case Passed6. Retrieve a Reservation Retrieve Reservation Use Case Passed7. Cancel a Reservation Make a Reservation Use case Passed

Unit Test Summary and Results

Page 26: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

26

Unit Test Summary and Results (continued)Test Use Case Derivation Test Result Corrections

E.Room Availability 1. Check Room Availability Room Use Case Passed2. Clear Information in Text Field Room Use Case Passed

F.Customer Record Passed1. Retrieve a customer Record Customer Record Use Case Passed2. Clear the Customer Record Screen Customer Record Use Case Passed3. Save Newly Entered Customer Record Customer Record Use Case Passed

G.Check In Passed1. Check In a Customer With No Reservation Check In Use Case Failed Passed correct parameters2. Apply a Discount at Check In Check In Use Case Passed3. Remove Discount at Check In Check In Use Case Passed4. Cancel Discount Information at Check In Check In Use Case Passed5. Pay at Check In Check In Use Case Passed6. Check In a Customer With a Reservation Check In Use Case Passed7. Clear the Check In Screen Check In Use Case Passed

H.Check Out Passed1. Make a Payment at Check out Check Out Use Case Passed2. Retrieve a Customer at Check Out Check Out Use Case Passed3. Clear the Check Out Screen Check Out Use Case Passed

I.Payment Passed1. Generate Bill Make Payment Use Case Passed2. Retrieve Payment Information Make Payment Use Case Passed3. Clear the Payment Screen Make Payment Use Case Passed

Page 27: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

27

Unit Test Scenario Example

Page 28: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

28

Integration Testing

Page 29: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

29

Integration Testing•Testing in which software components, hardware components, or both are combined and tested to evaluate the interaction between them.

• This unit is concerned with knowledge about validating that software components, which have been unit tested separately, interact correctly when they are put together to perform a higher order function.

• This unit also includes knowledge about dependency checking for calls, data, and processes, and about interface checking in terms of range, type compatibility, representation, number and order of parameters, and method of transfer.

Reference: IEEE 90

Page 30: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

30

• Integration Testing encompasses the entire system and consists of testing all of the components and modules of the system

• A very important task where many bugs in the system become apparent

• Frustrating – more difficult to determine the cause of the errors

• Important to test multiple times to ensure for consistency checking

• Begin to understand more about the different components and how they interact

• Unit Testing is much more simple – testing your own module is a much more simple task than integration testing

Testing Experience

Page 31: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

31

Test Use Case Derivation Test Result Corrections1 Make a Reservation, Check In at

Appropriate Time and Check Out at Appropriate Time

Make a Reservation Use Case, Check in Use Case, Check Out Use Case

Passed

2 Availability of Rooms Room Use Case Passed3 Check In and Check Out a

Customer Without a ReservationCheck in Use Case, Check Out Use Case

Passed

4 Manager Views Reports on Hotel Occupancy

Generate Report Use Case Passed

5 CSR or Manager Views Report on Pending Check Outs

Generate Pending Check Out Report Use Case

Passed

6 Manager Performs User Administration for the System

Administer User Profile Use Case Passed

7 Manager Performs Room Availability

Room Use Case Passed

8 View a Particular Customer Record

Customer Record Use Case Passed

Integration Test Summary

Page 32: 1 HOTEL MANAGEMENT SYSTEM Implementation and Testing presented by Team 1 Peter Lockwood Reita Sikka Pradeep Miglani Sandra Busik Susan Le Kai Zhang

32

Team 1

Thank you