Use Cases (With Tests for each Use Case) - 401ChemistryGenealogy/ChemistryGenealogy GitHub Wiki

If you would like to download these cases, we have uploaded a docx file with all of the use cases here:

https://github.com/401ChemistryGenealogy/ChemistryGenealogy/blob/master/doc/Use%20Cases.docx

Note: With regards to tests, there are going to be (1) acceptance tests and (2) unit tests. Unit tests will be denoted with a [u] immediately before the test. Unless there is a [u], the test is an acceptance test.


Registration and Login

1
Use Case Name Register for website
Participating Actors Not Logged In User
Goal Obtain a new personal account for this particular user.
Trigger User chooses to register for a new account from the login dialog box.
Precondition User does not have an account and desires a new one.
Postcondition User's information for a new account is sent to an administrator for approval.
Basic Flow
  1. Website prompts for the user’s first and last name, their email, and a password.
  2. User enters their information.
  3. User submits information.
  4. System creates a new user with the given information.
  5. System sends the information to an administrator for approval.
Exceptions   2. Email is already in use
  2.1. System displays a notification to the user informing them that the email is already taken.
  2.2. System returns to step 1.
Tests
  1. Upon arriving at the login screen, confirm that the prompt is displayed.
  2. Test that the user can input text in (1) first name field (2) last name field (3) email field (4) password field.
  3. Test that the user can successfully submit their information to the System.
  4. [u] Test that the database (1) makes a new user (2) that the new user has the information that the User submitted (3) that this account CAN be accessed with the email and password combination tied to it.
  5. Test that the information is sent to an administrator's notifications
2
Use Case Name Log into website
Participating Actors Not Logged In User
Goal Obtain logged in status on website with a registered account.
Trigger User desires to be logged into the website.
Precondition User is not logged into the website.
Postcondition User is logged into the website.
Basic Flow
  1. System prompts for email and password entry.
  2. User supplies the email and password.
  3. User confirms submission.
  4. System logs in the User with the credentials provided.
Exceptions   3. Incorrect email and password combination.
  3.1. System displays a notification to the user stating that they entered incorrect email or password.
  3.2. System returns to step 1.
Tests
  1. Test that the System displays the prompt for email and password entry.
  2. Test that the User can input their email and password.
  3. Test that the User can submit their entered email and password combination to the System.
  4. [u] Test that the System successfully logs in the user with the supplied credentials.
3
Use Case Name Ability to Log Out
Participating Actors Logged In Users
Goal User is logged out of the System.
Trigger User opens the login dialog box.
Precondition User is logged into the System.
Postcondition User is logged out of the System.
Basic Flow
  1. User hits the log out button.
  2. System logs the User out.
  3. System returns User to the default entry page of the website.
Tests
  1. Test that Users are logged into the System.
  2. Test that the System displays a method to the User to log out of the System.
  3. Test that the method displayed to log out of the System is functional.
  4. Test that the method, once pressed, will inform the server to log the User out of the system.
  5. Test that the User is properly logged out (such as reloading the page won’t log them in).
  6. Test that upon being logged out that the User is brought to the main entry page of the System.

###General User Functions

|4|| |---|---|  |Use Case Name|Visualization| |Participating Actors|Users| |Goal|Display a visual representation of the database data.| |Trigger|User desires to see a visual representation of the website’s data.| |Precondition|The user doesn’t see a visual representation of the data.| |Postcondition|The user now sees a visual representation of the data.| |Basic Flow|

  1. User searches for a person in the search bar from the homepage.
  2. System searches for the person and displays the results.
  3. User has the information displayed for a particular person where visualizations of relationships that the person has, represented by the node-vertex relationship, are presented on the page the user is currently on.
| |Tests|
  1. Test if the method can be interacted with by the User.
  2. Test if the User is taken to the Visualization page.
  3. Test if the Visualizations and search options are displayed.
|
5
Use Case Name Search
Participating Actors Users
Goal To search for a particular person on the website and obtain the results.
Trigger User wants to find someone through the search page.
Precondition User does not see the person through the search.
Postcondition User is presented with the data of the search.
Basic Flow
  1. User navigates to the home page where the search option is in.
  2. User types in the person they want to search for into the box and initiates the search.
  3. The System takes in the supplied entry and then searches the database for related results.
  4. The System presents the results from the query to the User.
Exceptions 4. The field desired to be searched for does not exist.
  4.1. Proceed to the same final search page (step 4) however (refer to 4.2):
  4.2. System displays a notification displaying to the User their search query had no results.
Tests
  1. Test that the User has a method to navigate to the page.
  2. Test that the User can select search fields.
  3. Test that the User can type input data into the search tool.
  4. [u] Test that the System searches the database for the related results.
  5. [u] Test that if the query has no results, the User is informed of it.
  6. Test that incorrect field and query information can still work and proceeds as if normal.
6
Use Case Name Detail Information
Participating Actors Users
Goal To obtain information of a particular person.
Trigger User desires to learn more about a particular person.
Precondition User does not know information about the other person.
Postcondition Information of the person is displayed to the User.
Basic Flow
  1. User navigates through the search results on the side of the visualization box and chooses a person to view more information on.
  2. The System presents the User with the person's information.
Tests
  1. Test that there is a method for Users to select to view the information of a person.
  2. Test that the method is something a User can successfully interact with. (Is it functional?)
  3. Test that upon utilizing the method, that the User is successfully shown the information.
  4. [u] Test that the User is viewing the correct information.

Information Handling

7
Use Case Name Submit Information
Participating Actors Logged In User
Goal User submits new information.
Trigger User would like to submit information.
Precondition User knows what information they would like to submit.
Postcondition Submitted information is sent to an administrator for approval.
Basic Flow
  1. User chooses the option to submit information.
  2. System displays the page for submitting new information about a person.
  3. User enters the new information.
  4. User confirms the new information they would like to add.
  5. System creates a new save object of the data.
  6. System sends the new information to an administrator for approval.
Tests
  1. Test that the submit button is present on the page.
  2. Test that the submit button is functional.
  3. Test that the page presents to the User the submit information page.
  4. Test that the User can successfully confirm the way they wish to submit the page’s information.
  5. Test that the User has a method to input the data.
  6. [u] Test that the User has a method to confirm the information, and that this commits them.
  7. [u] Test that the System creates a new save object of data.
  8. Test that the information is sent to an administrator’s notifications.
8
Use Case Name Edit Information
Participating Actors Logged In User
Goal User chooses to edit information.
Trigger User desires to edit information.
Precondition User knows what information they would like to edit.
Postcondition Information is changed in the system.
Basic Flow
  1. User is viewing the details of a person and chooses to edit the entry.
  2. <liSystem displays the pre-existing information about the person in fields that can be edited.
  3. User makes changes to the person’s information.
  4. User confirms that they want these changes made to the page.
  5. System creates a new save object of the edited data and stores it for audits.
Tests
  1. Test that data is present on the page, as is the edit button.
  2. Test that the edit button is functional.
  3. Test that the page presents to the User the ways to edit the data on the page.
  4. Test that the User can successfully confirm the way they wish to edit the page’s information.
  5. Test that the User has a method to input the data modifications.
  6. [u] Test that the User has a method to confirm their modifications, and that this commits them.
  7. [u] Test that when the User confirms their commit that the System accepts the modifications.
  8. [u] Test that the System accepts the changes that the System creates a new save object of data.
  9. [u] Test that the System successfully maintains this new save object of data in the database.
9
Use Case Name View Audit Trail of Edits
Participating Actors Administrator
Goal Administrator can see the edits made to the information.
Trigger Administrator would like to view edits made
Precondition Edited information exists in the system.
Postcondition System displays a log of edits to the Administrator.
Basic Flow
  1. Administrator navigates to the admin panel.
  2. Administrator clicks the view edits button.
  3. System displays the log of edits for all information.
Tests
  1. Test that there is a method for Administrators to select to view the log of information about a person.
  2. Test that the method is something the Administrator can successfully interact with.
  3. Test that the Administrator is shown the correct information.
10
Use Case Name Notifications
Participating Actors Administrator
Goal Administrator views notifications for new user and data information.
Trigger Administrator would like to view their notifications.
Precondition A new user or data entry is submitted to the system.
Postcondition The System displays the Administrator's new notifications.
Basic Flow
  1. Administrator navigates to the admin panel page.
  2. System displays the notifications that require approval.
Tests
  1. [u] Test that all Administrator accounts receive a notification from the System.
  2. Test that the Administrators can view these messages.
11
Use Case Name Information Verification
Participating Actors Administrator
Goal Administrator approves new information coming into the System.
Trigger Administrator would like to approve or disapprove new information while checking their notifications.
Precondition A new user or data entry is submitted to the system and the Administrators are notified.
Postcondition The System is modified depending on the Administrator's decision.
Basic Flow   1. Administrator chooses the information they would like to approve or disapprove.
  2. If the Administrator decides to approve the modification.
  2.1. Administrator confirms the data modification.
  2.2. The System makes the changes to the database and the webpage. If the change is a new user, then the user is notified that their account has been approved.
  3. If the Administrator decides to disapprove the modification.
  3.1. Administrator denies the data modification.
  3.2. The System drops any modifications that could have been made to the System.
Tests
  1. Test that the Administrators have a functional method to confirm or deny changes.
  2. [u] Test that the confirmation or denial of changes is committed by the System.
⚠️ **GitHub.com Fallback** ⚠️