85
Hierarchical Opinion Polling System (HOPS) Validation Test Specification Document Version 1.0 April 3 rd , 2002

CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Embed Size (px)

DESCRIPTION

Our CPSC company:Software R US

Citation preview

Page 1: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Hierarchical Opinion Polling System(HOPS)

Validation Test Specification Document

Version 1.0

April 3rd, 2002

Software R Us

Group 3

Page 2: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

TABLE OF CONTENTS

LIST OF CONTRIBUTORS...............................................................................................4CONTACT INFORMATION...........................................................................................4INTRODUCTION.............................................................................................................5TEST CASE SPECIFICATIONS....................................................................................6

1.00 UNIVERSAL TEST CASES...............................................................................61.0 Server Startup – Normal..................................................................................61.1a Login - Normal................................................................................................71.1b Login - Invalid Username................................................................................71.1c Login - Invalid Password.................................................................................81.2 Logout – Normal..............................................................................................91.3a Add User Profile – Normal..............................................................................91.3b Add User Profile – Missing Information.......................................................101.3c Add User Profile – Existing Username.........................................................11

2.0 ADMINISTRATOR TEST CASES..................................................................122.1a Add User - Normal........................................................................................122.1b Add User – Missing Information...................................................................122.1c Add User – Existing Username.....................................................................132.2a Edit/Delete User - Normal.............................................................................142.2b Edit/Delete User – Missing Information........................................................142.2c Edit/Delete User – Existing Username..........................................................152.2d Edit/Delete User – Deletion...........................................................................162.3a Add Customer – Normal................................................................................162.3b Add Customer – Missing Information...........................................................172.3c Add Customer – Existing Username.............................................................182.4a Edit/Delete Customer – Normal....................................................................192.4b Edit/Delete Customer – Missing Information................................................192.4c Edit/Delete Customer – Existing Username..................................................202.4d Edit/Delete Customer - Deletion...................................................................212.5a Add Question Specialist – Normal................................................................222.5b Add Question Specialist – Missing Information...........................................222.5c Add Question Specialist – Existing Username..............................................232.6a Edit/Delete Question Specialist – Normal.....................................................242.6b Edit/Delete Question Specialist – Missing Information................................252.6c Edit/Delete Question Specialist – Existing Username...................................262.6d Edit/Delete Question Specialist - Reassign Subject Level............................272.6e Edit/Delete Question Specialist – Deletion...................................................282.7a Add Administrator – Normal.........................................................................282.7b Add Administrator – Missing Information....................................................292.7c Add Administrator – Existing Username......................................................302.8a Edit/Delete Administrator – Normal.............................................................302.8b Edit/Delete Administrator – Missing Information.........................................312.8c Edit/Delete Administrator – Existing Username...........................................322.8d Edit/Delete Administrator – Deletion............................................................33

- 2 -

Page 3: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

3.00 QUESTION SPECIALIST TEST CASES........................................................343.1a Add Question – Normal.................................................................................343.1b Add Question – Existing Question................................................................353.1c Add Question – Only One Answer................................................................363.1d Add Question – Missing Information............................................................363.2a Edit/Delete Question – Normal.....................................................................373.2b Edit/Delete Question – Existing Question.....................................................383.2c Edit/Delete Question – Only One Answer.....................................................393.3a Add New Subject Level – Normal.................................................................403.3b Add New Subject Level – Existing Subject Level........................................413.3c Add New Subject Level – No Successor Levels...........................................423.3d Add New Subject Level - Only One Question..............................................433.3e Add New Subject Level – No Hot Hit Questions..........................................443.4a Edit/Delete Subject Level – Normal..............................................................453.4b Edit/Delete Subject Level – No Successor Levels........................................463.4c Edit/Delete Subject Level - Only One Question............................................473.4d Edit/Delete Subject Level – No Hot Hit Questions.......................................483.5a View Question Statistics – Normal................................................................483.5b View Question Statistics – Insufficient Data Collection...............................49

4.00 CUSTOMER TEST CASES..............................................................................504.1a View Question Statistics – Normal................................................................504.1b View Question Statistics – Unavailable Statistics.........................................504.2a Enter Comments – Normal............................................................................514.2b Enter Comments – Missing Information.......................................................51

5.00 USER TEST CASES.........................................................................................525.1a Answer Questions – Normal..........................................................................525.1b Answer Questions – Unanswered Questions.................................................525.1c Answer Questions – No Hot Hit Answers Selected Within Subject Level.. .535.1d Answer Questions – All Subject Levels Answered.......................................545.2a Edit/Delete User Profile – Normal................................................................555.2b Edit/Delete User Profile – Missing Information............................................555.2c Edit/Delete User Profile – Existing Username..............................................565.2d Edit/Delete User Profile - Deletion................................................................57

CONCLUSION..................................................................................................................58

- 3 -

Page 4: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

LIST OF CONTRIBUTORS

Name: Roles:

1. Badawy, Tarek Question Specialist Test Case Specialist

2. Kalaf, Ziad Question Specialist Test Case Specialist

3. Kennedy, Dan Revisions / Editor

4. Punj, Aarti Question Specialist Test Case Specialist

5. Puri, Nitin Project Manager / Administrator Test Case Specialist /Customer Test Case Specialist

6. Rankin, Brad Revisions / Editor

7. Sanghera, Raj Universal User Test Case Specialist

8. Shamim, Iram Administrator Test Case Specialist /Customer Test Case Specialist

9. Singh, Kamal Question Specialist Test Case Specialist

10. Uppal, Paul User Test Case Specialist

CONTACT INFORMATION

Software R Us

Email: [email protected]

Website: http://cpsc.cpu-technologies.com/

- 4 -

Page 5: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

INTRODUCTION

This document is designed to provide validation test specifications of the Hierarchical Opinion Polling System (HOPS), as proposed by Software R Us. This document has been designed as per the requirements from WWKEM, and from previous foundation documentations, which are the Software R Us – HOPS Customer Requirements Document, Version 1.1; and the Software R Us - HOPS Component Design Document, Version 1.0.

This document consists of five major test case sections in order to provide a clear and detailed description of the validation test specifications for the Software R Us HOPS. These five major sections include Universal Test Cases, Administrator Test Cases, Question Specialist Test Cases, Customer Test Cases, and User Test Cases.

The Universal Test Cases section describes all of the Universal test cases, such as login, logout, and add user. We have also included a new test case, 1.0 Server Startup – Normal, which is the server initialization test case, since server initialization would be required in order for the HOPS to be accessible and operational.

The Administrator Test Cases section describes all of the Administrator test cases, such as adding, editing, deleting; for all users. As mentioned in previous documents, these users are the Administrators, Question Specialists, Customers, and Users.

The Question Specialist Test Cases section describes all of the Question Specialist test cases, such as adding, editing, deleting all subject levels and questions. In addition, the Question Specialist has the ability to view questions statistics, and these test cases have also been described within this section.

The Customer Test Cases section describes all of the Customer test cases, which are viewing question statistics, and sending comments to WWKEM.

Finally, the User Test Cases section describes all of the User test cases, which are answering questions, and editing or deleting their own profiles.

The purpose of the Software R Us - HOPS Validation Test Specification Document, Version 1.0, is to provide detailed specifications of the HOPS validation tests, as this final document will be used for the implementation of the Software R Us HOPS.

- 5 -

Page 6: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

TEST CASE SPECIFICATIONS

This section contains all of the test case specifications for the five major test case sections. These five major test case sections include the Universal Test Cases, Administrator Test Cases, Question Specialist Test Cases, Customer Test Cases, and User Test Cases. Each test case contains a unique test case identification number and name, which corresponds to the respective use case, as shown in the Use Cases section of our previous document, Software R Us – HOPS Customer Requirements Document, Version 1.1. Furthermore, each test case also contains a brief test description, along with the initial system state and input values. Finally, specifications regarding the execution sequence and expected results are also provided for each test case.

1.00 UNIVERSAL TEST CASES

1.0 Server Startup – Normal

Use Case: 0.01 - Initial Server Startup

Test Description: The startup of the server will retrieve and instantiate the three global lists, mainUniversalUserList, mainSubjectLevelList, and mainQuestionList, grant Java Remote Method (RMI) access, and finally establish the connection between the client side and the server side.

Initial System State: The client server requirements have been satisfied, as shown in The Client Server Architecture section of our previous document, Software R Us - HOPS Component Design Document, Version 1.0.

Input Values: Request from client side to access and establish connection with server side.

Execution Sequence:

1. Call getMainUniversalUserList() to retrieve and instantiate the mainUniversalUserList on the server

2. Call getMainSubjectLevelList() to retrieve and instantiate the mainSubjectLevelList on the server.

3. Call getMainQuestionList() to retrieve and instantiate the mainQuestionList on the server.

4. The RMI access is allowed to the server side methods.5. Establish connection between client side and server side.

- 6 -

Page 7: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Expected Results:

1. –2. –3. –4. Clients are now connected by the RMI access to the server side

methods.5. The connection between the client side and server side is now

established.

1.1a Login - Normal

Use Case: 1.1 - Login

Test Description: Validate users login

Initial System State: Client program has been started. The UniversalUserList exists and is waiting to validate a user.

Input Values: userName = the name of a user that exists. pass = the specified users password.

Execution Sequence:

1. Call getmainUniversalUserList() – to retrieve Universal User List from server.

2. Call validLogin(userName, pass) – to validate the User.3. Brings up menu GUI window according to user type.

Expected Results:

1. mainUniversalUserList is returned.2. Finds username, verify password, method returns non-zero value.3. GUI menu window is shown.

1.1b Login - Invalid Username

Use Case: 1.1 – Login

Test Description: Tests invalid login.

Initial System State: Client program has been started. The UniversalUserList exists and is waiting to validate a user.

Input Values: userName = the name of a user that exists.

- 7 -

Page 8: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

pass = the specified users password.

Execution Sequence:

1. Call getmainUniversalUserList() – to retrieve Universal User List from server.

2. Call validLogin(userName, pass) – to validate the User.

Expected Results:

1. mainUniversalUserList is returned.2. Does not find username, method returns a zero value,

InvalidLoginException is thrown.

1.1c Login - Invalid Password

Use Case: 1.1 - Login

Test Description: Tests invalid login

Initial System State: Client program has been started. The UniversalUserList exists and is waiting to validate a user.

Input Values: userName = the name of a user that exists. pass = the specified users password.

Execution Sequence:

1. Call getmainUniversalUserList() – to retrieve Universal User List from server.

2. Call validLogin(userName, pass) – to validate the User.

Expected Results:

1. mainUniversalUserList is returned.2. Finds username, passwords do not match, method returns a zero value,

InvalidLoginException is thrown.

1.1d Login – Missing Information

Use Case: 1.1 - Login

Test Description: Tests when username field is empty.

- 8 -

Page 9: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Initial System State: Client program has been started. The UniversalUserList exists and is waiting to validate a user.

Input Values: userName = the name of a user that exists. pass = the specified users password.

Execution Sequence:

1. Call getmainUniversalUserList() – to retrieve Universal User List from server.

2. Call validLogin(userName, pass) – to validate the User.

Expected Results:

1. mainUniversalUserList is returned.2. Does not find username, method returns a zero value,

InvalidLoginException is thrown.

1.2 Logout – Normal

Use Case: 1.2 – Logout

Test Description: Successfully disconnect from server.

Initial System State: User is logged into server.

Input Values: none.

Execution Sequence:

1. Displays logout GUI.

Expected Results:

1. User can no longer interact with server.

1.3a Add User Profile – Normal

Use Case: 1.3 – Add User Profile

Test Description: Successfully adding a new User profile.

Initial System State: User is at the login window and selects create user. The mainUniversalUserList exists on the server.

- 9 -

Page 10: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Input Values: userName = the username of the user firstName = the first name of the user lastName = the last name of the user

pass = the password of the user

Execution Sequence:

1. Prompt user to enter information2. Create a new User object.3. Call setUserName(userName), setFirstName(firstName),

setLastName(lastName), setPassword(pass) on User object.4. Call addUser() on the mainUniversalUserList.

Expected Results:

1. New User form GUI displayed.2. –3. –4. A User profile is added to the mainUniversalUserList.

1.3b Add User Profile – Missing Information

Use Case: 1.3 – Add User ProfileTest Description: A new user profile is to be created, but there is missing information.

Initial System State: User is at the login window and selects create user. The mainUniversalUserList exists on the server.

Input Values: userName = the username of the user firstName = the first name of the user lastName = the last name of the user

pass = the password of the user

Execution Sequence:

1. Prompt user to enter information2. Check for any empty fields.3. Throw MissingInformationException.

Expected Results:

1. New User form GUI displayed.2. –3. Missing information window is displayed and the user is prompted to

re-enter the missing information.

- 10 -

Page 11: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

1.3c Add User Profile – Existing Username

Use Case: 1.3 – Add User Profile

Test Description: A new user profile is to be created, but the username already exists.

Initial System State: User is at the login window and selects create user. The mainUniversalUserList exists on the server.

Input Values: userName = the username of the user firstName = the first name of the user lastName = the last name of the user

pass = the password of the user

Execution Sequence:

1. Prompt user to enter information2. Call searchUser(), searchAdministrator, searchQuestionSpecialist(),

searchCustomer().3. If object returned, throw ExistingUsernameException.

Expected Results:

1. New user form GUI displayed.2. An object is returned from one of the search methods.3. The Username Warning is shown and the user is prompted to re-enter

their information.

- 11 -

Page 12: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

2.0 ADMINISTRATOR TEST CASES

2.1a Add User - Normal

Use Case: 2.1 – Add User

Test Description: Successfully add a new User profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is ready to be populated with a new User profile.

Input Values: firstName = the first name of the new UserlastName = the last name of the new UseruserName = the username of the new Userpass = the password of the new User

Execution Sequence:

1. Prompt Adminstrator to enter information2. Create a new User object.3. Call setUserName(userName), setFirstName(firstName),

setLastName(lastName), setPassword(pass) on User object.4. Call addUser() on the mainUniversalUserList.

Expected Results:

1. New User form GUI displayed.2. –3. –4. A User profile is added to the mainUniversalUserList.

2.1b Add User – Missing Information

Use Case: 2.1 – Add User

Test Description: Check for missing information when adding a new User profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is ready to be populated with a new User profile, but there is missing information.

Input Values: firstName = the first name of the new UserlastName = the last name of the new UseruserName = the username of the new User

- 12 -

Page 13: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

pass = the password of the new User

Execution Sequence:

1. Prompt Administrator to enter information2. Check for any empty fields.3. Throw MissingInformationException.

Expected Results:

1. New User form GUI displayed.2. –3. Missing information window is displayed and the Adminstrator is

prompted to re-enter the missing information.

2.1c Add User – Existing Username

Use Case: 2.1 – Add User

Test Description: Check for existing username when adding a new User profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is ready to be populated with a new User profile, but the username already exists.

Input Values: firstName = the first name of the new UserlastName = the last name of the new UseruserName = the username of the new Userpass = the password of the new User

Execution Sequence:

1. Prompt Administrator to enter information2. Call searchUser(), searchAdministrator, searchQuestionSpecialist(),

searchCustomer().3. If object returned, throw ExistingUsernameException.

Expected Results:

1. New user form GUI displayed.2. An object is returned from one of the search methods.3. The Username Warning is shown and the Administrator is prompted to

re-enter the information.

- 13 -

Page 14: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

2.2a Edit/Delete User - Normal

Use Case: 2.2 – Edit/Delete User

Test Description: Successfully edit an existing User profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is already populated with the selected User profile.

Input Values: firstName = the first name of the new UserlastName = the last name of the new UseruserName = the username of the new Userpass = the password of the new User

Execution Sequence:

1. Call getUserUsernames() to retrieve list of User objects.2. Call searchUser() to search for the selected User profile.3. Call getUserName(), getPassword(), getFirstName(), getLastName().4. Display all current information prompt Administrator to edit.5. Call setUserName(), setFirstName(), setLastName(), setPassword().6. Call editUser() to edit selected User object.

Expected Results:

1. -2. Return selected User profile.3. -4. -5. -6. User information has been changed.

2.2b Edit/Delete User – Missing Information

Use Case: 2.2 – Edit/Delete User

Test Description: Check for missing information when editing an existing User profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is already populated with the selected User profile, but after the editing there is missing information.

Input Values: firstName = the first name of the new User

- 14 -

Page 15: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

lastName = the last name of the new UseruserName = the username of the new Userpass = the password of the new User

Execution Sequence:

1. Call getUserUsernames() to retrieve list of User objects.2. Call searchUser() to search for the selected User profile.3. Call getUserName(), getPassword(), getFirstName(), getLastName().4. Display all current information prompt Administrator to edit.5. Check for empty fields.6. Throw MissingInformationException.

Expected Results:

1. -2. -3. -4. -5. -6. Missing information window is displayed and the Adminstrator is prompted to re-enter the missing information.

2.2c Edit/Delete User – Existing Username

Use Case: 2.2 – Edit/Delete User

Test Description: Check for existing username when editing an existing User profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is already populated with the selected User profile, but the edited username already exists.

Input Values: firstName = the first name of the new UserlastName = the last name of the new UseruserName = the username of the new Userpass = the password of the new User

Execution Sequence:

1. Call getUserUsernames() to retrieve list of User objects.2. Call searchUser() to search for the selected User profile.3. Call getUserName(), getPassword(), getFirstName(), getLastName().4. Display all current information prompt Administrator to edit.

- 15 -

Page 16: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

5. Call searchUser(), searchCustomer(), searchQuestionSpecialist(), searchAdministrator().

6. If object returned, throw ExistingUsernameException

Expected Results:

1. -2. -3. -4. - 5. An object is returned from one of the search methods6. The Username Warning is shown and the Administrator is prompted to

re-enter the information.

2.2d Edit/Delete User – Deletion

Use Case: 2.2 – Edit/Delete User

Test Description: Successfully delete an existing User profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is ready to remove the selected User profile.

Input Values: none

Execution Sequence:

1. Call getUserUsernames() to retrieve list of User objects.2. Call deleteUser() to delete User object.

Expected Results:

1. -2. User object is deleted, and removed from the mainUniversalUserList list.

2.3a Add Customer – Normal

Use Case: 2.3 – Add Customer

Test Description: Successfully add a new Customer profile.

- 16 -

Page 17: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, ready to populate the existing mainUniversalUserList with a new Customer profile.

Input Values: firstName = the first name of the new CustomerlastName = the last name of the new CustomeruserName = the username of the new Customerpass = the password of the new CustomerpaidQuestion = the paid questions of the new Customer

Execution Sequence:

1. Prompt Administrator to enter information.2. Create a new Customer object.3. Call setFirstName(firstName), setLastName(), setUserName(),

setPassword().4. Call addPaidQuestion(newQuestionId) to add paid question(s).5. Call addCustomer(newCustomer) to create a new Customer object.

Expected Results:

1. New Customer form GUI is displayed.2. –3. –4. –5. A Customer profile is added to the mainUniversalUserList.

2.3b Add Customer – Missing Information

Use Case: 2.3 – Add Customer

Test Description: Check for missing information when adding a new Customer profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, ready to populate the existing mainUniversalUserList with a new Customer profile, but there is missing information.

Input Values: firstName = the first name of the new CustomerlastName = the last name of the new CustomeruserName = the username of the new Customerpass = the password of the new CustomerpaidQuestion = the paid questions of the new Customer

- 17 -

Page 18: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Execution Sequence:

1. Prompt Administrator to enter information.2. Check for empty fields.3. Throw MissingInformationException()

Expected Results:

1. New Customer form GUI displayed.2. –3. Missing information window is displayed and the Adminstrator is

prompted to re-enter the missing information.

2.3c Add Customer – Existing Username

Use Case: 2.3 – Add Customer

Test Description: Check for existing username when adding a new Customer profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, ready to populate the existing mainUniversalUserList with a new Customer profile, but the username already exists.

Input Values: firstName = the first name of the new CustomerlastName = the last name of the new CustomeruserName = the username of the new Customerpass = the password of the new CustomerpaidQuestion = the paid questions of the new Customer

Execution Sequence:

1. Prompt Administrator to enter information2. Call searchUser(), searchAdministrator,

searchQuestionSpecialist(), searchCustomer().3. If object returned, throw ExistingUsernameException.

Expected Results:

1. New Customer form GUI displayed.2. An object is returned from one of the search methods.3. The Username Warning is shown and the Administrator is

prompted to re-enter the information.

- 18 -

Page 19: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

2.4a Edit/Delete Customer – Normal

Use Case: 2.4 – Edit/Delete Customer

Test Description: Successfully edit an existing Customer profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, and the mainUniversalUserList is already populated with the selected Customer profile.

Input Values: firstName = the first name of the new CustomerlastName = the last name of the new CustomeruserName = the username of the new Customerpass = the password of the new CustomerpaidQuestion = the paid questions of the new Customer

Execution Sequence:

1. Call getCustomerUsernames() to retrieve list of Customer objects.2. Call searchCustomer() to search for the selected Customer profile.3. Call getUserName(), getPassword(), getFirstName(),

getLastName(), etPaidQuestions().4. Display all current information prompt Administrator to edit.5. Call setUserName(), setFirstName(), setLastName(),

setPassword(), addPaidQuestion(), deletePaidQuestion().6. Call editCustomer() to edit selected Customer object.

Expected Results:

1. - 2. Return selected Customer profile. 3. - 4. - 5. - 6. Customer information has been changed.

2.4b Edit/Delete Customer – Missing Information

Use Case: 2.4 – Edit/Delete Customer

Test Description: Check for missing information when editing an existing Customer profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, and the

- 19 -

Page 20: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

mainUniversalUserList is already populated with the selected Customer profile, but after the editing there is missing information.

Input Values: firstName = the first name of the new CustomerlastName = the last name of the new CustomeruserName = the username of the new Customerpass = the password of the new CustomerpaidQuestion = the paid questions of the new Customer

Execution Sequence:

1. Call getCustomerUsernames() to retrieve list of Customer objects.2. Call searchCustomer() to search for the selected Customer profile.3. Call getUserName(), getPassword(), getFirstName(),

getLastName(), etPaidQuestions().4. Display all current information prompt Administrator to edit.5. Search for empty fields.6. Throw MissingInformationException().

Expected Results:

1. -2. Return selected Customer profile.3. -4. -5. -6. Missing information window is displayed and the Adminstrator is prompted to re-enter the missing information.

2.4c Edit/Delete Customer – Existing Username

Use Case: 2.4 – Edit/Delete Customer

Test Description: Check for existing username when editing an existing Customer profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, and the mainUniversalUserList is already populated with the selected Customer profile, but the edited username already exists.

Input Values: firstName = the first name of the new CustomerlastName = the last name of the new CustomeruserName = the username of the new Customer

- 20 -

Page 21: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

pass = the password of the new CustomerpaidQuestion = the paid questions of the new Customer

Execution Sequence:

1. Call getCustomerUsernames() to retrieve list of Customer objects.2. Call searchCustomer() to search for the selected Customer profile.3. Call getUserName(), getPassword(), getFirstName(),

getLastName().4. Display all current information prompt Administrator to edit.5. Call searchUser(), searchCustomer(), searchQuestionSpecialist(),

searchAdministrator().6. If object returned, throw ExistingUsernameException

Expected Results:

1. -2. -3. -4. - 5. An object is returned from one of the search methods6. The Username Warning is shown and the Administrator is

prompted to re-enter the information.

2.4d Edit/Delete Customer - Deletion

Use Case: 2.4 – Edit/Delete Customer

Test Description: Successfully delete an existing Customer profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList, mainSubjectLevelList, and mainQuestionList lists all exist, and are ready to remove the selected Customer profile from the mainUniversalUserList.

Input Values: none

Execution Sequence:

1. Call getCustomerUsernames() to retrieve list of Customer objects.2. Call deleteCustomer() to delete Customer object.

Expected Results:

1. –

- 21 -

Page 22: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

2. Customer object is deleted, and removed from the mainUniversalUserList list.

2.5a Add Question Specialist – Normal

Use Case: 2.5 – Add Question Specialist

Test Description: Successfully add a new Question Specialist profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, ready to populate the existing mainUniversalUserList with a new Question Specialist profile.

Input Values: firstName = the first name of the new Question SpecialistlastName = the last name of the new Question SpecialistuserName = the username of the new Question Specialistpass = the password of the new Question SpecialistassignedSubjectLevelList = the assigned subject level(s) of the new Question SpecialistassignedCustomerList = the assigned customer(s) of the new

Question Specialist

Execution Sequence:

1. Create new QuestionSpecialist object.2. Call setFirstName(firstName), setLastName(lastName),

setUserName(userName), setPassword(pass), addAssignedSubjectLevel(), addCustomer().

3. Call addQuestionSpecialist(newQuestionSpecialist) to add a Question Specialist to the mainUniversalUserList.

Expected Results:

1. - 2. - 3. New Question Specialist profile has been added.

2.5b Add Question Specialist – Missing Information

Use Case: 2.5 – Add Question Specialist

Test Description: Check for missing information when adding a new Question Specialist profile.

- 22 -

Page 23: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, ready to populate the existing mainUniversalUserList with a new Question Specialist profile, but there is missing information.

Input Values: firstName = the first name of the new Question SpecialistlastName = the last name of the new Question SpecialistuserName = the username of the new Question Specialistpass = the password of the new Question SpecialistassignedSubjectLevelList = the assigned subject level(s) of the new Question SpecialistassignedCustomerList = the assigned customer(s) of the new Question Specialist

Execution Sequence:

1. Create new QuestionSpecialist object.2. Check for empty fields.3. Throw MissingInformationException().

Expected Results:

1. – 2. – 3. The missing information message is diplayed and the

Administrator is prompted to re-enter missing information.

2.5c Add Question Specialist – Existing Username

Use Case: 2.5 – Add Question Specialist

Test Description: Check for existing username when adding a new Question Specialist profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, ready to populate the existing mainUniversalUserList with a new Question Specialist profile, but the username already exists.

Input Values: firstName = the first name of the new Question SpecialistlastName = the last name of the new Question SpecialistuserName = the username of the new Question Specialistpass = the password of the new Question SpecialistassignedSubjectLevelList = the assigned subject level(s) of the new Question Specialist

- 23 -

Page 24: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

assignedCustomerList = the assigned customer(s) of the new Question Specialist

Execution Sequence:

1. Prompt Administrator to enter information2. Call searchUser(), searchAdministrator,

searchQuestionSpecialist(), searchCustomer().3. If object returned, throw ExistingUsernameException.

Expected Results:

1. New QuestionSpecialist form GUI displayed.2. An object is returned from one of the search methods.3. The Username Warning is shown and the Administrator is

prompted to re-enter the information.

2.6a Edit/Delete Question Specialist – Normal

Use Case: 2.6 - Edit/Delete Question Specialist

Test Description: Successfully edit an existing Question Specialist profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, and the mainUniversalUserList is already populated with the selected Question Specialist profile.

Input Values: firstName = the first name of the new Question SpecialistlastName = the last name of the new Question SpecialistuserName = the username of the new Question Specialistpass = the password of the new Question SpecialistassignedSubjectLevelList = the assigned subject level(s) of the new Question SpecialistassignedCustomerList = the assigned customer(s) of the new Question Specialist

Execution Sequence:

1. Call getQuestionSpecialistUsernames() to retrieve list of QuestionSpecialist objects.

2. Call searchQuestionSpecialist() to search for the selected QuestionSpecialist profile.

- 24 -

Page 25: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

3. Call getUserName(), getPassword(), getFirstName(), getLastName(), getAssignedSubjectLevelList(), getCustomerList().

4. Display all current information prompt Administrator to edit.5. Call setUserName(), setFirstName(), setLastName(),

setPassword(), addCustomer(), deleteCustomer(), addAssignedSubjectLevel(), deleteAssignedSubjectLevel().

6. Call editQuestionSpecialist() to edit selected QuestionSpecialist object.

Expected Results:

1. -2. Return selected QuestionSpecialist profile.3. -4. -5. -6. QuestionSpecialist information has been changed.

2.6b Edit/Delete Question Specialist – Missing Information

Use Case: 2.6 - Edit/Delete Question Specialist

Test Description: Check for missing information when editing an existing Question Specialist profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, and the mainUniversalUserList is already populated with the selected Question Specialist profile, but after the editing there is missing information.

Input Values: firstName = the first name of the new Question SpecialistlastName = the last name of the new Question SpecialistuserName = the username of the new Question Specialistpass = the password of the new Question SpecialistassignedSubjectLevelList = the assigned subject level(s) of the new Question SpecialistassignedCustomerList = the assigned customer(s) of the new

Question Specialist

Execution Sequence:

1. Call getQuestionSpecialistUsernames() to retrieve list of QuestionSpecialist objects.

2. Call searchQuestionSpecialist() to search for the selected QuestionSpecialist profile.

- 25 -

Page 26: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

3. Call getUserName(), getPassword(), getFirstName(), getLastName(), getCustomerList(), getAssignedSubjectLevelList().

4. Display all current information prompt Administrator to edit.5. Search for empty fields.6. Throw MissingInformationException().

Expected Results:

1. -2. Return selected Question Specialist profile.3. -4. -5. -6. Missing information window is displayed and the Adminstrator is prompted to re-enter the missing information.

2.6c Edit/Delete Question Specialist – Existing Username

Use Case: 2.6 - Edit/Delete Question Specialist

Test Description: Check for existing username when editing an existing Question Specialist profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, and the mainUniversalUserList is already populated with the selected Question Specialist profile, but the edited username already exists.

Input Values: firstName = the first name of the new Question SpecialistlastName = the last name of the new Question SpecialistuserName = the username of the new Question Specialistpass = the password of the new Question SpecialistassignedSubjectLevelList = the assigned subject level(s) of the new Question SpecialistassignedCustomerList = the assigned customer(s) of the new Question Specialist

Execution Sequence:

1. Call getQuestionSpecialistUsernames() to retrieve list of Question Specialist objects.

2. Call searchQuestionSpecialist() to search for the selected Question Specialist profile.

- 26 -

Page 27: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

3. Call getUserName(), getPassword(), getFirstName(), getLastName(), getAssignedSubjectLevelList(), getCustomerList().

4. Display all current information prompt Administrator to edit.5. Call searchUser(), searchCustomer(),

searchQuestionSpecialist(), searchAdministrator().6. If object returned, throw ExistingUsernameException

Expected Results:

1. -2. -3. -4. - 5. An object is returned from one of the search methods6. The Username Warning is shown and the Administrator is

prompted to re-enter the information.

2.6d Edit/Delete Question Specialist - Reassign Subject Level

Use Case: 2.6 – Edit/Delete Question Specialist

Test Description: Check for reassignment of existing subject levels when editing an existing Question Specialist profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainSubjectLevelList, and mainQuestionList lists already exist, ready to populate the existing mainUniversalUserList with the edited Question Specialist profile, but the assigned subject level(s) of the edited Question Specialist profile have to be reassigned to other existing Question Specialist(s).

Input Values: firstName = the first name of the new Question SpecialistlastName = the last name of the new Question SpecialistuserName = the username of the new Question Specialistpass = the password of the new Question SpecialistassignedSubjectLevelList = the assigned subject level(s) of the new Question SpecialistassignedCustomerList = the assigned customer(s) of the new Question Specialist

Execution Sequence:

1. Call getQuestionSpecialistUsernames() to retrieve list of Question Specialist objects.

2. Call getAssignedSubjectLevelList().3. Call deleteSubjectLevel().

- 27 -

Page 28: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

4. Call addAssignedSubjectLevel().

Expected Results:

1. -2. -3. Delete from the Assigned Subject Level List of the selected Question Specialist.4. Add to the Assigned Subject Level List of the other Question Specialist.

2.6e Edit/Delete Question Specialist – Deletion

Use Case: 2.6 - Edit/Delete Question Specialist

Test Description: Successfully delete an existing Question Specialist profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList, mainSubjectLevelList, and mainQuestionList lists all exist, and are ready to remove the selected Question Specialist profile from the mainUniversalUserList.

Input Values: none

Execution Sequence:

1. Call getQuestionSpecialistUsernames() to retrieve list of Question Specialist objects.2. Run test case 2.6d3. Call deleteQuestionSpecialist() to delete Question Specialist object.

Expected Results:

1. -2. -3. Question Specialist object is deleted, and removed from the mainUniversalUserList list.

2.7a Add Administrator – Normal

Use Case: 2.7 – Add Administrator

Test Description: Successfully add a new Administrator profile.

- 28 -

Page 29: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is ready to be populated with a new Administrator profile.

Input Values: firstName = the first name of the new AdministratorlastName = the last name of the new AdministratoruserName = the username of the new Administratorpass = the password of the new Administrator

Execution Sequence:

1. Prompt Adminstrator to enter information2. Create a new Administrator object.3. Call setUserName(userName), setFirstName(firstName),

setLastName(lastName), setPassword(pass) on Administrator object.

4. Call addAdministrator() on the mainUniversalUserList.

Expected Results:

1. New Administrator form GUI displayed.2. –3. –4. An Administrator profile is added to the

mainUniversalUserList

2.7b Add Administrator – Missing Information

Use Case: 2.7 – Add Administrator

Test Description: Check for missing information when adding a new Administrator profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is ready to be populated with a new Administrator profile, but there is missing information.

Input Values: firstName = the first name of the new AdministratorlastName = the last name of the new AdministratoruserName = the username of the new Administratorpass = the password of the new Administrator

Execution Sequence:

1. Prompt Administrator to enter information2. Check for any empty fields.

- 29 -

Page 30: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

3. Throw MissingInformationException.

Expected Results:

1. New Administrator form GUI displayed.2. –3. Missing information window is displayed and the Adminstrator is

prompted to re-enter the missing information.

2.7c Add Administrator – Existing Username

Use Case: 2.7 – Add Administrator

Test Description: Check for existing username when adding a new Administrator profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is ready to be populated with a new Administrator profile, but the username already exists.

Input Values: firstName = the first name of the new AdministratorlastName = the last name of the new AdministratoruserName = the username of the new Administratorpass = the password of the new Administrator

Execution Sequence:

1. Prompt Administrator to enter information2. Call searchUser(), searchAdministrator, searchQuestionSpecialist(),

searchCustomer().3. If object returned, throw ExistingUsernameException.

Expected Results:

1. New Administrator form GUI displayed.2. An object is returned from one of the search methods.3. The Username Warning is shown and the Administrator is prompted to

re-enter the information.

2.8a Edit/Delete Administrator – Normal

Use Case: 2.8 – Edit/Delete Administrator

Test Description: Successfully edit an existing Administrator profile.

- 30 -

Page 31: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is already populated with the selected Administrator profile.

Input Values: firstName = the first name of the new AdministratorlastName = the last name of the new AdministratoruserName = the username of the new Administratorpass = the password of the new Administrator

Execution Sequence:

1. Call getAdministratorUsernames() to retrieve list of Administrator objects.

2. Call searchAdministrator() to search for the selected Administrator profile.

3. Call getUserName(), getPassword(), getFirstName(), getLastName().4. Display all current information prompt Administrator to edit.5. Call setUserName(), setFirstName(), setLastName(), setPassword().6. Call editAdministrator() to edit selected Administrator object.

Expected Results:

1. -2. Return selected Administrator profile.3. -4. -5. -6. Administrator information has been changed.

2.8b Edit/Delete Administrator – Missing Information

Use Case: 2.8 – Edit/Delete Administrator

Test Description: Check for missing information when editing an existing Administrator profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is already populated with the selected Administrator profile, but after the editing there is missing information.

Input Values: firstName = the first name of the new AdministratorlastName = the last name of the new AdministratoruserName = the username of the new Administratorpass = the password of the new Administrator

- 31 -

Page 32: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Execution Sequence:

1. Call getAdministratorUsernames() to retrieve list of Administrator objects.

2. Call searchAdministrator() to search for the selected Administrator profile.

3. Call getUserName(), getPassword(), getFirstName(), getLastName().4. Display all current information prompt Administrator to edit.5. Check for empty fields.6. Throw MissingInformationException.

Expected Results:

1. -2. -3. -4. -5. -6. Missing information window is displayed and the Adminstrator is prompted to re-enter the missing information.

2.8c Edit/Delete Administrator – Existing Username

Use Case: 2.8 – Edit/Delete Administrator

Test Description: Check for existing username when editing an existing Administrator profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is already populated with the selected Administrator profile, but the edited username already exists.

Input Values: firstName = the first name of the new AdministratorlastName = the last name of the new AdministratoruserName = the username of the new Administratorpass = the password of the new Administrator

Execution Sequence:

1. Call getAdministratorUsernames() to retrieve list of Administrator objects.

2. Call searchAdministrator() to search for the selected Administrator profile.

3. Call getUserName(), getPassword(), getFirstName(), getLastName().4. Display all current information prompt Administrator to edit.

- 32 -

Page 33: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

5. Call searchAdministrator(), searchCustomer(), searchQuestionSpecialist(), searchAdministrator().

6. If object returned, throw ExistingUsernameException

Expected Results:

1. -2. -3. -4. - 5. An object is returned from one of the search methods6. The Username Warning is shown and the Administrator is prompted to

re-enter the information.

2.8d Edit/Delete Administrator – Deletion

Use Case: 2.8 – Edit/Delete Administrator

Test Description: Successfully delete an existing Administrator profile.

Initial System State: The Administrator is successfully logged on the HOPS, and the mainUniversalUserList list exists, and is ready to remove the selected Administrator profile.

Input Values: none

Execution Sequence:

1. Call getAdministratorUsernames() to retrieve list of Administrator objects.2. Call deleteAdministrator() to delete Administrator object.

Expected Results:

1. -2. Administrator object is deleted, and removed from the mainUniversalUserList list.

- 33 -

Page 34: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

3.00 QUESTION SPECIALIST TEST CASES

3.1a Add Question – Normal

Use Case: 3.1 – Add Question

Test Description: Successfully add a question to a Subject Level.

Initial System State: Universal User is logged in as a Question Specialist and has selected the Add Question option on their specific menu. At least one Subject Level exists on the server, to which the Question is to be added to, and at least one Question Specialist exists on the server to whom the above mentioned Subject Level is assigned to.

Input Values: questionText = the text of the Question added answerText = the text of the Answer to be added to the

Answer List of the Question added hotHit = indicate if Answer is a hot hit answerList = list of answers to the Question added ques = Question object to be created

Execution Sequence:

1. Create a Question object using ques.setQuestionText(questionText), ques.setQuestionID(questionID). Create Answer objects and append to the Answer List for each Question using ques.answerList.addAnswer(answerText, hotHit).

2. Call ques.checkAnswerList() to ensure there is more than one Answer object in the Answer List of the Question being added.

3. Call getQuestionList() of the Subject Level that Question is to be added to. Iterate through the returned list to ensure that Question does not already exist using string compare on the Question text of each Question object in the Question List.

4. Call addQuestion(ques) to add the Question object to the Question List of the Subject Level object.

Expected Results:

1. Question object is successfully created.2. The return value indicates that more than one Answer object exists in

the Answer List of the Question object.3. The return value indicates that the Question does not already exist in

the Question List.

- 34 -

Page 35: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

4. The Question now exists in the Question List of the Subject Level object.

3.1b Add Question – Existing Question

Use Case: 3.1 – Add Question

Test Description: Check if Question already exists. If so, addition is unsuccessful.

Initial System State: At least one Question already exists in the Question Pool. (Also see Test Case 3.1a)

Input Values: questionText = the text of the Question addedanswerText = the text of the Answer to be added to the Answer List of the Question addedhotHit = indicate if Answer is a hot hitanswerList = list of answers to the Question addedques = Question object to be created

Execution Sequence:

1. Create a Question object using ques.setQuestionText(questionText), ques.setQuestionID(questionID). Create Answer objects and append to the Answer List for each Question using ques.answerList.addAnswer(answerText, hotHit).

2. Call ques.checkAnswerList() to ensure there is more than one Answer object in the Answer List of the Question being added.

3. Call getQuestionList() of the Subject Level that Question is to be added to. Iterate through the returned list to ensure that Question does not already exist using string compare on the Question text of each Question object in the Question List.

4. Call addQuestion(ques) to add the Question object to the Question List of the Subject Level object

Expected Results:

1. Question object is successfully created.2. The return value indicates that more than one Answer object exists in

the Answer List of the Question object.3. The return value indicates that the Question object already exists in the

Question List.4. The ExistingQuestionException is thrown by the addQuestion(ques)

call.

- 35 -

Page 36: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

3.1c Add Question – Only One Answer

Use Case: 3.1 – Add Question Test Description: Checks to see that Question has more than one answer. If not, addition is unsuccessful.

Initial System State: See Test Case 3.1a

Input Values: questionText = the text of the Question added answerText = the text of the Answer to be added to the

Answer List of the Question added hotHit = indicate if Answer is a hot hit answerList = list of answers to the Question added ques = Question object to be created

Execution Sequence:

1. Create a Question object using ques.setQuestionText(questionText), ques.setQuestionID(questionID). Create Answer objects and append to the Answer List for each Question using ques.answerList.addAnswer(answerText, hotHit) using.

2. Call ques.checkAnswerList() to ensure there is more than one Answer object in the Answer List of the Question being added.

3. Call getQuestion List() of the Subject Level that Question is to be added to. Iterate through the returned list to ensure that Question does not already exist using string compare on the Question text of each Question object in the Question List.

4. Call addQuestion(ques) to add the Question object to the Question List of the Subject Level object

Expected Results:

1. Question object is successfully created.2. The IncompleteQuestionException is thrown by checkAnswerList()

call.3. – 4. –

3.1d Add Question – Missing Information

Use Case: 3.1 – Add Question

Test Description: Check if Question object is missing any information. Ifso, addition is unsuccessful.

- 36 -

Page 37: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Initial System State: See Test Case 3.1a.

Input Values: questionText = the text of the Question addedanswerText = the text of the Answer to be added to the Answer List of the Question addedhotHit = indicate if Answer is a hot hitanswerList = list of answers to the Question addedques = Question object to be created

Execution Sequence:

1. Create a Question object using ques.setQuestionText(questionText), ques.setQuestionID(questionID). Create Answer objects and append to the Answer List for each Question using ques.answerList.addAnswer(answerText, hotHit) using.

2. Call ques.checkAnswerList() to ensure there is more than one Answer object in the Answer List of the Question being added.

3. Call getQuestion List() of the Subject Level that Question is to be added to. Iterate through the returned list to ensure that Question does not already exist using string compare on the Question text of each Question object in the Question List.

4. Call addQuestion(ques) to add the Question object to the Question List of the Subject Level object.

Expected Results:

1. Question object is not successfully created.2. –3. –4. The MissingInformationException is thrown by the addQuestion(ques)

call.

3.2a Edit/Delete Question – Normal

Use Case: 3.2 – Edit/Delete Question

Test Description: Check if Question is successfully edited or deleted.

Initial System State: At least one Question and Question Specialist exist on the server. The Question must be within the Subject Level assigned to that Question Specialist. (Also see Test Case 3.1a)

Input Values: questionText = the text of the Question added answerText = the text of the Answer to be edited in the

Answer List of the Question.

- 37 -

Page 38: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

hotHit = indicate if Answer is a hot hit answerList = list of answers to the Question added ques = Question object to be edited

Execution Sequence:

1. Call ques.setQuestionText(questionText) to modify question text, or ques.setQuestionID(questionID) is used to modify question ID. Create any new Answer objects and append to the Answer List for each Question using ques.answerList.addAnswer(answerText, hotHit). Delete any Answer objects no longer needed by calling deleteAnswer(answerText).

2. Call ques.checkAnswerList() to ensure there is more than one Answer object in the Answer List of the Question being added.

3. Call getQuestionList() of the Subject Level that Question is to be added to. Iterate through the returned list to ensure that Question does not already exist using string compare on the Question text of each Question object in the Question List.

4. Call editQuestion(ques, questionID) to replace the original Question object in the Question List of the Subject Level object with the edited version.If the Question object is to be deleted from the Question List, call deleteQuestion(questionID).

Expected Results:

1. –2. The return value indicates that more than one Answer object exists in

the Answer List of the Question object.3. The return value indicates that the Question does not already exist in

the Question List.4. If the original question was edited, the edited Question successfully

replaces the original Question in the Question List of the Subject Level object.If the Question object was deleted, the Question is successfully removed from the Question List of the Subject Level object.

3.2b Edit/Delete Question – Existing Question

Use Case: 3.2 – Edit/Delete Question

Test Description: Check if edited version of the Question already exists. If so, addition is unsuccessful.

Initial System State: At least one Question already exists in the Question Pool. (Also see Test Case 3.1a)

- 38 -

Page 39: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Input Values: questionText = the text of the Question addedanswerText = the text of the Answer to be added to the Answer List of the Question addedhotHit = indicate if Answer is a hot hitanswerList = list of answers to the Question addedques = Question object to be created

Execution Sequence:

1. Call ques.setQuestionText(questionText) to modify question text, or ques.setQuestionID(questionID) is used to modify question ID. Create any new Answer objects and append to the Answer List for each Question using ques.answerList.addAnswer(answerText, hotHit). Delete any Answer objects no longer needed by calling deleteAnswer(answerText).

2. Call ques.checkAnswerList() to ensure there is more than one Answer object in the Answer List of the Question being added.

3. Call getQuestionList() of the Subject Level that Question is to be added to. Iterate through the returned list to ensure that Question does not already exist using string compare on the Question text of each Question object in the Question List.

4. Call editQuestion(ques, questionID) to replace the original Question object in the Question List of the Subject Level object with the edited version.If the Question object is to be deleted from the Question List, call deleteQuestion(questionID).

Expected Results:

1. –2. The return value indicates that more than one Answer object exists in

the Answer List of the Question object.3. The return value indicates that the Question object already exists in the

Question List.4. The ExistingQuestionException is thrown by the addQuestion(ques)

call.

3.2c Edit/Delete Question – Only One Answer

Use Case: 3.2 – Edit/Delete Question

Test Description: Checks to see the edited Question has more than one answer. If not, addition is unsuccessful.

- 39 -

Page 40: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Initial System State: At least one Question and Question Specialist exist on the server. The Question must be within the Subject Level assigned to that Question Specialist. (Also see Test Case 3.1a)

Input Values: questionText = the text of the Question added answerText = the text of the Answer to be edited in the

Answer List of the Question. hotHit = indicate if Answer is a hot hit answerList = list of answers to the Question added ques = Question object to be edited

Execution Sequence

1. Call ques.setQuestionText(questionText) to modify question text, or ques.setQuestionID(questionID) is used to modify question ID. Create any new Answer objects and append to the Answer List for each Question using ques.answerList.addAnswer(answerText, hotHit). Delete any Answer objects no longer needed by calling deleteAnswer(answerText).

2. Call ques.checkAnswerList() to ensure there is more than one Answer object in the Answer List of the Question being added.

3. Call getQuestion List() of the Subject Level that Question is to be added to. Iterate through the returned list to ensure that Question does not already exist using string compare on the Question text of each Question object in the Question List.

4. Call editQuestion(ques, questionID) to replace the original Question object in the Question List of the Subject Level object with the edited version.

Expected Results:

1. –2. The IncompleteQuestionException is thrown by checkAnswerList()

call.3. –4. –

3.3a Add New Subject Level – Normal

Use Case: 3.3 – Add New Subject Level

Test Description: Check if Subject Level is successfully added.

Initial System State: At least two Questions and a Question Specialist exist on the server. The Questions are to be assigned to the new Subject Level and the Subject Level is to be assigned to the Question Specialist.

- 40 -

Page 41: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Input Values: questionIDList = list of all identification numbers of all Questions to be added to the new Subject LevelsuccessorLevelIDList = list of all identification numbers of the Successor Levels of the new Subject Levelsublev = new Subject Level object

Execution Sequence:

1. Execute 3.1a using sublev as the Subject Level object for every Question object to be added to the new Subject Level. Append the Question ID numbers of the Question objects to the questionIDList of sublev.

2. Call successorLevelIDList.addSuccessorLevel(newSubjectLevelID) to append a successor level to the Successor Level List of sublev.

3. Call setSubjectLevelID(subjectLevelID) to assign an identification number to sublev.

4. Call checkNumQuestions() to ensure that there is more than one Question object and at least one Hot-Hit in sublev.

5. Call addSubjectLevel(sublev) to add the new Subject Level object to the Subject Level List in the Subject Level Pool.

Expected Results:

1. Test Case 3.1a executes correctly.2. –3. –4. The return value indicates more than one Question object exists in the

Question List of the new Subject Level object, and there is at least one Hot-Hit in the Subject Level.

5. The Subject Level now exists in the Subject Level List in the Subject Level Pool.

3.3b Add New Subject Level – Existing Subject Level

Use Case: 3.3 – Add New Subject Level

Test Description: Subject Level to be added already exists, so addition is unsuccessful.

Initial System State: At least one Subject Level already exists in the Subject Level Pool. (Also see Test Case 3.3a)

Input Values: questionIDList = list of all identification numbers of all Questions to be added to the new Subject Level

- 41 -

Page 42: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

successorLevelIDList = list of all identification numbers of the Successor Levels of the new Subject Levelsublev = new Subject Level object

Execution Sequence:

1. Execute 3.1a using sublev as the Subject Level object for every Question object to be added to the new Subject Level. Append the Question ID numbers of the Question objects to the questionIDList of sublev.

2. Call successorLevelIDList.addSuccessorLevel(newSubjectLevelID) to append a successor level to the Successor Level List of sublev.

3. Call setSubjectLevelID(subjectLevelID) to assign an identification number to sublev.

4. Call checkNumQuestions() to ensure that there is more than one Question object and at least one Hot-Hit in sublev.

5. Call addSubjectLevel(sublev) to add the new Subject Level object to the Subject Level List in the Subject Level Pool.

Expected Results:

1. Test Case 3.1a executes correctly.2. –3. –4. The return value indicates more than one Question object exists in the

Question List of the new Subject Level object, and there is at least one Hot-Hit in the Subject Level.

5. The ExistingSubjectLevelException is thrown by addSubjectLevel(sublev) call.

3.3c Add New Subject Level – No Successor Levels

Use Case: 3.3 – Add New Subject Level

Test Description: Subject Level has no successor levels and addition is unsuccessful.

Initial System State: At least four Questions, two Subject Levels, and a Question Specialist exist on the server. The Questions must be assigned to the Subject Levels and the Subject Levels are assigned to Question Specialist(s).

Input Values: questionIDList = list of all identification numbers of all Questions to be added to the new Subject LevelsuccessorLevelIDList = list of all identification numbers of the Successor Levels of the new Subject Levelsublev = new Subject Level object

- 42 -

Page 43: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Execution Sequence:

1. Execute 3.1a using sublev as the Subject Level object for every Question object to be added to the new Subject Level. Append the Question ID numbers of the Question objects to the questionIDList of sublev.

2. Call successorLevelIDList.addSuccessorLevel(newSubjectLevelID) to append a successor level to the Successor Level List of sublev.

3. Call setSubjectLevelID(subjectLevelID) to assign an identification number to sublev.

4. Call checkNumQuestions() to ensure that there is more than one Question object and at least one Hot-Hit in sublev.

5. Call addSubjectLevel(sublev) to add the new Subject Level object to the Subject Level List in the Subject Level Pool.

Expected Results:

1. Test Case 3.1a executes correctly.2. –3. –4. The IncompleteSubjectLevelException is thrown by

addSubjectLevel() call.5. –

3.3d Add New Subject Level - Only One Question

Use Case: 3.3 – Add New Subject Level

Test Description: Subject Level has only one Question and addition is unsuccessful.

Initial System State: At least one Question and a Question Specialist exist on the server. The Question is assigned to the new Subject Level and the Subject Level is assigned to the Question Specialist

Input Values: questionIDList = list of all identification numbers of all Questions to be added to the new Subject LevelsuccessorLevelIDList = list of all identification numbers of the Successor Levels of the new Subject Levelsublev = new Subject Level object

Execution Sequence:

1. Execute 3.1a using sublev as the Subject Level object for every Question object to be added to the new Subject Level. Append the

- 43 -

Page 44: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Question ID numbers of the Question objects to the questionIDList of sublev.

2. Call successorLevelIDList.addSuccessorLevel(newSubjectLevelID) to append a successor level to the Successor Level List of sublev.

3. Call setSubjectLevelID(subjectLevelID) to assign an identification number to sublev.

4. Call checkNumQuestions() to ensure that there is more than one Question object and at least one Hot-Hit in sublev.

5. Call addSubjectLevel(sublev) to add the new Subject Level object to the Subject Level List in the Subject Level Pool.

Expected Results:

1. Test Case 3.1a executes correctly.2. –3. –4. The IncompleteSubjectLevelException is thrown by

checkNumQuestions() call.5. –

3.3e Add New Subject Level – No Hot Hit Questions

Use Case: 3.3 – Add New Subject Level

Test Description: Check to see that Subject Level contains Hot-hits.

Initial System State: At least two Questions and a Question Specialist exist on the server. The Questions are assigned to the Subject Level and the Subject Level is assigned to the Question Specialist

Input Values: questionIDList = list of all identification numbers of all Questions to be added to the new Subject LevelsuccessorLevelIDList = list of all identification numbers of the Successor Levels of the new Subject Levelsublev = new Subject Level object

Execution Sequence:

1. Execute 3.1a using sublev as the Subject Level object for every Question object to be added to the new Subject Level. Append the Question ID numbers of the Question objects to the questionIDList of sublev.

2. Call successorLevelIDList.addSuccessorLevel(newSubjectLevelID) to append a successor level to the Successor Level List of sublev.

3. Call setSubjectLevelID(subjectLevelID) to assign an identification number to sublev.

- 44 -

Page 45: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

4. Call checkNumQuestions() to ensure that there is more than one Question object and at least one Hot-Hit in sublev.

5. Call addSubjectLevel(sublev) to add the new Subject Level object to the Subject Level List in the Subject Level Pool.

Expected Results:

1. Test Case 3.1a executes correctly.2. –3. –4. The MissingHot-hitsException is thrown by checkNumQuestions()

call.5. –

3.4a Edit/Delete Subject Level – Normal

Use Case: 3.4 - Edit/Delete Subject Level

Test Description: Successfully edit or delete a subject level

Initial System State: At least two questions in the question pool, two subject levels and one Question Specialist are on the server. The two questions should be assigned to a subject level and that subject level is assigned to the Question Specialist. In addition the subject level must have a successor.

Input Values: questionIDList = list of all identification numbers of all Questions to be added to the new Subject LevelsuccessorLevelIDList = list of all identification numbers of the Successor Levels of the new Subject Levelsublev = new Subject Level object

Execution Sequence:

1. Call getSubjectLevelId().2. Call successorLevelIDList.addSuccessorLevel(newSubjectLevelID) to

append a successor level to the Successor Level List of sublev.3. Call setSubjectLevelID(subjectLevelID) to assign an identification

number to sublev.4. Call checkNumQuestions() to ensure that there is more than one

Question object and at least one Hot-Hit in sublev.5. Call editSubjectLevel(sublev) to add the new Subject Level object to

the Subject Level List in the Subject Level Pool.

Expected Results:

- 45 -

Page 46: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

1. Edit Test Case 3.4a executes correctly.2. –3. –4. The return value indicates more than one Question object exists in

the Question List of the new Subject Level object, and there is at least one Hot-Hit in the Subject Level.

5. The edited Subject Level has been replaced

3.4b Edit/Delete Subject Level – No Successor Levels

Use Case: 3.4 - Edit/Delete Subject Level

Test Description: Checks to see if there are successor levels, edit Subject Level is unsuccessful if there are no successor levels.

Initial System State: At least two questions in the question pool, two subject levels and one Question Specialist are on the server. The two questions should be assigned to a subject level and that subject level is assigned to the Question Specialist. In addition the subject level must have a successor.

Input Values: questionIDList = list of all identification numbers of all Questions to be added to the new Subject LevelsuccessorLevelIDList = list of all identification numbers of the Successor Levels of the new Subject Levelsublev = new Subject Level object

Execution Sequence:

1. Call successorLevelIDList.addSuccessorLevel(newSubjectLevelID) to append a successor level to the Successor Level List of sublev.

2. Call setSubjectLevelID(subjectLevelID) to assign an identification number to sublev.

3. Call checkNumQuestions() to ensure that there is more than one Question object and at least one Hot-Hit in sublev.

4. Call addSubjectLevel(sublev) to add the new Subject Level object to the Subject Level List in the Subject Level Pool.

Expected Results:

1. Test Case 3.4a executes correctly.2. –3. –4. The IncompleteSubjectLevelException is thrown by

addSubjectLevel() call.

- 46 -

Page 47: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

3.4c Edit/Delete Subject Level - Only One Question

Use Case: 3.4 - Edit/Delete Subject Level

Test Description: Checks to see if there are two or more questions in a subject level. Edit / delete subject level is unsuccessful if subject level has less than two questions.

Initial System State: At least two questions in the question pool, two subject levels and one Question Specialist are on the server. The two questions should be assigned to a subject level and that subject level is assigned to the Question Specialist. In addition the subject level must have a successor

Input Values: questionIDList = list of all identification numbers of all Questions to be added to the new Subject LevelsuccessorLevelIDList = list of all identification numbers of the Successor Levels of the new Subject Levelsublev = new Subject Level object

Execution Sequence:

1. Call successorLevelIDList.addSuccessorLevel(newSubjectLevelID) to append a successor level to the Successor Level List of sublev.

2. Call setSubjectLevelID(subjectLevelID) to assign an identification number to sublev.

3. Call checkNumQuestions() to ensure that there is more than one Question object and at least one Hot-Hit in sublev.

4. Call addSubjectLevel(sublev) to add the new Subject Level object to the Subject Level List in the Subject Level Pool.

Expected Results:

1. Test Case 3.4a executes correctly.2. –3. –4. The IncompleteSubjectLevelException is thrown by

checkNumQuestions() call.

- 47 -

Page 48: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

3.4d Edit/Delete Subject Level – No Hot Hit Questions

Use Case: 3.4 - Edit/Delete Subject Level

Test Description: Checks to see if there exists answeres that are specified as hot-hits in the given subject level.

Initial System State: At least two questions in the question pool, two subject levels and one Question Specialist are on the server. The two questions should be assigned to a subject level and that subject level is assigned to the Question Specialist. In addition the subject level must have a successor

Input Values: questionIDList = list of all identification numbers of all Questions to be added to the new Subject LevelsuccessorLevelIDList = list of all identification numbers of the Successor Levels of the new Subject Levelsublev = new Subject Level object

Execution Sequence:

1. Call successorLevelIDList.addSuccessorLevel(newSubjectLevelID) to append a successor level to the Successor Level List of sublev.

2. Call setSubjectLevelID(subjectLevelID) to assign an identification number to sublev.

3. Call checkNumQuestions() to ensure that there is more than one Question object and at least one Hot-Hit in sublev.

4. Call addSubjectLevel(sublev) to add the new Subject Level object to the Subject Level List in the Subject Level Pool.

Expected Results:

1. Test Case 3.4a executes correctly.2. –3. –4. The MissingHot-hitsException is thrown by checkNumQuestions() call.

3.5a View Question Statistics – Normal

Use Case: 3.5 - View Question Statistics

Test Description: Successfully view question statistics.

- 48 -

Page 49: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Initial System State: Universal User is logged in as a Question Specialist, Customer or Administrator and at least one question exists in the question pool

Input Values: none

Execution Sequence:

1. Call getQuestionId()2. Call getAnswerList()3. Call getcount()4. Generate statistics

Expected Results:

1. –2. –3. –4. The selected question statistics are displayed.

3.5b View Question Statistics – Insufficient Data Collection

Use Case: 3.5 - View Question Statistics

Test Description: Attempting to display question statistics when insufficient data has been collected.

Initial System State: Universal User is logged in as a Question Specialist and at

least one question exists in the question pool.

Input Values: none

Execution Sequence:

1. Call getQuestionId()2. Call getAnswerList()3. Call getcount()

Expected Results:

1. – 2. –3. The counts are equal to zero so InsufficientDataException is thrown.

- 49 -

Page 50: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

4.00 CUSTOMER TEST CASES

4.1a View Question Statistics – Normal

Use Case: 4.1 – View Question Statistics

Test Description: Successfully view question statistics for selected question.

Initial System State: The Customer is successfully logged into HOPS, and the mainUniversalUserList, mainSubjectLevelList, and mainQuestionList lists all exist and are populated accordingly to the Customer’s profile.

Input Values: questionID = the question selected by the Customer

Execution Sequence:

1. Call getmainQuestionList() to retrieve the list of all questions.2. Call findQuestion(int questionId) to find the selected question in the main question list.

Expected Results:

1. -2. The selected question is found and statistics are generated within the GUI.

4.1b View Question Statistics – Unavailable Statistics

Use Case: 4.1 – View Question Statistics

Test Description: Check for unavailable statistics for selected question.

Initial System State: The Customer is successfully logged into HOPS, and the mainUniversalUserList, mainSubjectLevelList, and mainQuestionList lists all exist and are populated accordingly to the Customer’s profile, but the statistics for the selected question are currently unavailable.

Input Values: questionID = the question selected by the Customer

Execution Sequence:

1. Call getmainQuestionList() to retrieve the list of questions.2. Call findQuestion(int questionId) to find the selected question.

- 50 -

Page 51: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Expected Results:

1. -2. The selected question is found, but there is not enough data to generate statistics so the UnavailableStatisticsException is thrown.

4.2a Enter Comments – Normal

Use Case: 4.2 – Enter Comments

Test Description: Successfully enter comments to be sent to WWKEM.

Initial System State: The Customer is successfully logged into HOPS, and the mainUniversalUserList, mainSubjectLevelList, and mainQuestionList lists all exist and are populated accordingly to the Customer’s profile.

Input Values: commentList = string storing the Customer’s comments Execution Sequence:

1. Call addComment(string comment) to add a comment.

Expected Results:

1. The Customer’s comment is successfully added to their profile.

4.2b Enter Comments – Missing Information

Use Case: 4.2 – Enter Comments

Test Description: Check to see if blank comments are being sent WWKEM.

Initial System State: The Customer is successfully logged into HOPS, and the mainUniversalUserList, mainSubjectLevelList, and mainQuestionList lists all exist and are populated accordingly to the Customer’s profile, but the Customer is attempting to send WWKEM a blank comment.

Input Values: none

Execution Sequence:

1. Call addComment(string comment) to add a comment.Expected Results:

1. The comment is empty, the MissingInformationException is thrown.

- 51 -

Page 52: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

5.00 USER TEST CASES

5.1a Answer Questions – Normal

Use Case: 5.1 – Answer Questions

Test Description: Successfully answering questions.

Initial System State: User is logged in and Subject Level determined and at least two questions exist in the current Subject Level.

Input Values: none

Execution Sequence:

1. Call getcurrentSubjectLevel()2. Call getQuestionList()3. Call getQuestionText()4. Call getAnswerList()5. Call increment() method when answer is selected.6. Check Hot-Hits7. Determines users new successor subject levels and sets Users profile to

reflect this.8. Access to requested service granted.

Expected Results:

1. –2. –3. –4. –5. Increments the answer counts when and answer is selected by the

User.6. –7. Users profile is updated with new successor subject levels.8. User is granted access to requested service.

5.1b Answer Questions – Unanswered Questions

Use Case: 5.1 – Answer Questions

Test Description: Answering of Questions by the user

Initial System State: User is logged in and Subject Level determined and at least two questions exist in the current Subject Level.

- 52 -

Page 53: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Input Values: none

Execution Sequence:

1. Call getcurrentSubjectLevel()2. Call getQuestionList()3. Call getQuestionText()4. Call getAnswerList()5. Check for unanswered questions.

Expected Results:

1. –2. –3. –4. –5. Throw MissingInformationException, and prompt user to answer

question again.

5.1c Answer Questions – No Hot Hit Answers Selected Within Subject Level

Use Case: 5.1 – Answer Questions

Test Description: Answering of Questions by the user

Initial System State: User is logged in and Subject Level determined and at least two questions exist in the current Subject Level.

Input Values: none

Execution Sequence:

1. Call getcurrentSubjectLevel()2. Call getQuestionList()3. Call getQuestionText()4. Call getAnswerList()5. Call increment() method when answer is selected.6. Check Hot-Hits7. Access to requested service granted.

- 53 -

Page 54: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Expected Results:

1. –2. –3. –4. –5. Increments the answer counts when and answer is selected by the User.6. Users profile is not updated with new successor subject levels.7. User is granted access to requested service.

5.1d Answer Questions – All Subject Levels Answered

Use Case: 5.1 – Answer Questions

Test Description: Answering of Questions by the user

Initial System State: User is logged in and Subject Level determined and at least two questions exist in the current Subject Level.

Input Values: none

Execution Sequence:

1. Randomly selects a subject level from the completedSubjectLevelList.2. Call getQuestionList()3. Call getQuestionText()4. Call getAnswerList()5. Call increment() method when answer is selected.6. Check Hot-Hits7. Determines users new successor subject levels and sets Users profile to

reflect this.8. Access to requested service granted.

Expected Results:

1. -2. –3. –4. –5. Increments the answer counts when and answer is selected by the

User.6. –7. Users profile is updated with new successor subject levels.8. User is granted access to requested service.

- 54 -

Page 55: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

5.2a Edit/Delete User Profile – Normal

Use Case: 5.2 – Edit/Delete User Profile

Test Description: Editing a user’s personal information or deleting their profile

Initial System State: The User is Logged into system, at least one user in the user list exists on the mainUniversalUserList

Input Values: firstName = the first name of the new UserlastName = the last name of the new UseruserName = the username of the new Userpass = the password of the new User

Execution Sequence:

1. Call getUserName(), getPassword(), getFirstName(), getLastName().2. Display all current information prompt User to edit.3. Call setUserName(), setFirstName(), setLastName(), setPassword().4. Call editUser() to edit selected User object.

Expected Results:

1. -2. Return selected User profile.3. -4. User information has been changed.

5.2b Edit/Delete User Profile – Missing Information

Use Case: 5.2 – Edit/Delete User Profile

Test Description: Editing a user’s personal information or deleting their profile

Initial System State: The User is Logged into system, their profile exists on the UniversalUserListInterface

Input Values: firstName = the first name of the new UserlastName = the last name of the new UseruserName = the username of the new Userpass = the password of the new User

- 55 -

Page 56: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

Execution Sequence:

1. Call getUserName(), getPassword(), getFirstName(), getLastName().2. Display all current information prompt User to edit.3. Check for empty fields.4. Throw MissingInformationException.

Expected Results:

1. - 2. –3. - 4. Missing information window is displayed and the User is prompted to

re-enter the missing information.

5.2c Edit/Delete User Profile – Existing Username

Use Case: 5.2 – Edit/Delete User Profile

Test Description: Editing a user’s personal information or deleting their profile

Initial System State: The User is Logged into system, their profile exists on the UniversalUserListInterface

Input Values: firstName = the first name of the new UserlastName = the last name of the new UseruserName = the username of the new Userpass = the password of the new User

Execution Sequence:

1. Call getUserName(), getPassword(), getFirstName(), getLastName().2. Display all current information prompt User to edit.3. Call searchUser(), searchCustomer(), searchQuestionSpecialist(),

searchAdministrator().4. If object returned, throw ExistingUsernameException

Expected Results:

1. -2. - 3. An object is returned from one of the search methods4. The Username Warning is shown and the User is prompted to re-enter

the information.

- 56 -

Page 57: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

5.2d Edit/Delete User Profile - Deletion

Use Case: 5.2 – Edit/Delete User Profile

Test Description: Editing a user’s personal information or deleting their profile

Initial System State: The User is Logged into system, their profile exists on the UniversalUserListInterface

Input Values: none

Execution Sequence:

1. Call deleteUser() to delete User object.

Expected Results:

1. User object is deleted, and removed from the mainUniversalUserList list.

- 57 -

Page 58: CPSC 333 - Software Engineering - Hierarchical Opinion Polling System (HOPS)

Software R Us – HOPS Validation Test Specification Document Version 1.0

CONCLUSION

The purpose of the Software R Us – HOPS Validation Test Specification Document, Version 1.0, was to provide a detailed specifications of our validation tests. This document has been created according to our previous specifications as outlined in Software R Us – HOPS Customer Requirements Document, Version 1.1; and the Software R Us - HOPS Component Design Document, Version 1.0. Accordingly, this document will be used for the implementation of the Software R Us HOPS.

Once again, on behalf of all of the specialists in our software team, we would like to take this time to thank you for awarding our company, Software R Us, the contract to create your software solution. Software R Us guarantees to create the validation tests in the HOPS as described in this validation test specification document efficiently and within the time given. Thank you for choosing Software R Us.

- 58 -