Use Cases - CMPUT301F12T01/classproject GitHub Wiki
1
Use Case Name: DefineTask
Participating Actors: TaskMaker
Goal: Create a new task
Trigger: TaskMaker selects a create task option on the main view
Precondition: User knows the task they want to define
Postcondition: A correctly defined task is stored appropriately and the main screen is displayed
Basic Flow
- user selects “define task” button
- user defines all task attributes (including scope)
- user selects “submit” button
Exceptions
3.0 input error (Please try again)
3.1 File I/O Error
3.2 Server side error (exit)
Qualities
Constraints
Includes
User story 15 (As a user creating a task I want some tasks to be local only to myself)
User story 2 (As a user, I want to share tasks)
Extends
Related Artifacts
Notes
Open Issues
Test Cases
- Fill out a task will all fields completed and attempt to submit it. RETURN: This should result in returning to the main page with a view of your tasks including the new task.
- Fill out task without a summary. RETURN: This should raise an error.
- Fill out task without a request. RETURN: This should raise an error.
- Fill out task without a description. RETURN: This should result in returning to the main page with a view of your tasks including the new task, the task will show no description when selected.
- Fill out task without a shared setting. RETURN: This should raise an error.
- Try to submit a new Task with none of the fields filled in. RETURN: This should raise an error.
2
Use Case Name: User Shares Task (Make task global)
Participating Actors: TaskMaker and Server
Goal: Share a task
Trigger: Clicking the global option local/global control in the make task view
Precondition: TaskMaker is in the process of creating a task
Postcondition: Task is uploaded to server, main screen displayed
Basic Flow
- user checks to share the task
- user clicks submit task
- task is uploaded to server
- main screen is displayed
Exceptions
2.1 The system will not create a new task until it's scope is identified 3.1 server upload error
Qualities
Constraints
Includes
Extends
Related Artifacts
Notes
Open Issues
Test Cases
- Submit a new task with global visibility. RETURN: This task should now be visible in the global list and should be visible to others.
3
Use Case Name: FulfillTask
Participating Actors: TaskFulfiller
Goal: Fulfill an already created task (some or all requests of the task).
Trigger: TaskFulfiller chooses to fulfill a task that they have selected.
Precondition: TaskFulfiller has chosen an already existing task.
Postcondition: On success, a relationship is established between the task and its report.
Basic Flow
- TaskFulfiller selects to fulfill a pre-selected task.
- TaskFulfiller fulfills at least one request that composes task.
- Fill out the fields of the request.
- The TaskFulfiller confirms that they are satisfied with the requests they have fulfilled.
Exceptions
2.1 Task fulfillment error.
2.2 User wants to redo a request or fulfill multiple requests. Goes back to step 2.
Qualities
Constraints
Includes
Extends
Related Artifacts
Notes
Open Issues
Test Cases
- Complete a report with audio, text and pictures for a task that requires them. RETURN: A new report should be visible and associated with the correct task.
- Complete a report with one request being fulfilled. RETURN: A new report should be visible and associated with the correct task having a single response. This Should be done for text audio and photo
- Complete a report with multiple request being fulfilled. RETURN: A new report should be visible and associated with the correct task having multiple responses.
- Complete a report without filling any requests. RETURN: This should raise an error
- Complete a global report for a global task. RETURN: The report should be globally visible to everyone
- Complete a report for a global task but make the report only visible to the owner. RESULT: Both the user who filled out the report and the owner of the task will be able to see the report
- Complete a report with local settings. RETURN: Only the TaskFulfiller can see the report
4
Use Case Name: RequirePhoto
Participating Actors: TaskMaker
Goal: Create a Task that requires photos
Trigger: TaskMaker, during task creation, selects "photo required" option
Precondition: Is in the process of creating a task; knows they want photo responses
Postcondition: Task contains a request for photos
Basic Flow
- System promts user to enter how many photos
- TaskCreator enters the amount requested (if it is made explicit)
- System adds photo request with the specified amount
Exceptions
Qualities
Constraints
Includes
Extends
Related Artifacts
Notes
Open Issues
Test Cases
- When creating a task select that a photo is required and nothing else. RETURN: any report made for that task will have an option to attach a photo and will have to have a photo attached to be submitted
- When creating a task select that a photo is required among other requests. RETURN: A report for that task will have a field to attach a photo but may be submitted if any request is fulfilled (photo or not).
5
Use Case Name: TakePhoto
Participating Actors: TaskFulfiller
Goal: Take and attach a photo to a report
Trigger: Selecting to add a photo to the current report
Precondition: TaskFulfiller has selected to respond to a task
Postcondition: Photos are attached to the report and the current report is displayed again
Basic Flow
- System displays the camera's view and prompt to take a photo
- TaskFulfiller selects to take the shot
- System displays an option to retake the photo
- TaskFulfiller accepts the photo
Exceptions
Qualities
Constraints
Includes
RetakePhoto
Extends
FulfillTask
Related Artifacts
Notes
Open Issues
Test Cases
- Take a photo and accept it. RETURN: A new photo should be associated with the report.
- Take photo and do not accept it. RETURN: nothing should be attached to the report
6
Use Case Name: ReceiveSharedTaskFulfillment
Participating Actors: TaskCreator
Goal: Receive the results of users fulfilling a task.
Trigger: A TaskFulfiller shares a task they have fulfilled with at least the TaskCreator.
Precondition: A task has been fulfilled by some TaskFulfiller.
Postcondition: The TaskCreator is notified that their task has been fulfilled.
Basic Flow
- System shows that the Task has been fulfilled
Exceptions
Qualities
Constraints
Includes
Extends
Related Artifacts
Notes
Open Issues
Test Cases
- Post a global task and have another user fulfill it with either a global report or a user specific report. RETURN: The report should be visible to the user who posted the task.
7
Use Case Name: FulfillOwnTask
Participating Actors: User
Goal: TaskCreator fulfills own task.
Trigger: TaskCreator selects to fulfill their own task, thereby becoming a TaskFulfiller.
Precondition: User has created a task.
Postcondition: User fulfills their own task.
Basic Flow
- User selects a task that they have created as a TaskCreator.
- User fulfills task.
Exceptions
Qualities
Constraints
Includes
FulfillTask
Extends
Related Artifacts
Notes
Open Issues
Test Cases
This test is an extension of FulfillTask use case
- Complete tests 1,2,3 and 6
8
Use Case Name: TaskFulfillmentTimestamp
Participating Actors: TaskFulfiller
Goal: Task report is associated with a timestamp.
Trigger: A TaskFulfiller creates a report.
Precondition: The TaskFulfiller confirms that the report is complete.
Postcondition: Report contains a timestamp.
Basic Flow
- System attaches a timestamp to the task fulfillment report.
Exceptions
Qualities
Constraints
Includes
Extends
FulfillTask
Related Artifacts
Notes
Open Issues
Test Cases
- Create a report. RETURN: when viewed (based on visibility) the report should have a correct timestamp
9
Use Case Name: Store Global Task Locally
Participating Actors: User
Goal: Store a global task locally
Trigger: User selects "Store locally" button in the menu when viewing a global task
Precondition: User is viewing a global task
Postcondition: Task is cached on device
Basic Flow
- user selects "Store Locally"
- task is written to device storage
- View of task is returned
Exceptions
1.1 file i/o error
Qualities
Constraints
Includes
Extends
FulfillTask
Related Artifacts
Notes
Open Issues
Test Cases
- A global task is selected to be stored locally. RETURN: After disconnecting the device from the network you can still view the those global tasks that have been saved locally.
10
Use Case Name: TextResponse
Participating Actors: TaskFulfiller
Goal: respond to a request that requires text
Trigger: Selecting to respond to a task that requires text
Precondition: TaskFulfiller has navigated to the global tasks
Postcondition: System associates the text with the response
Basic Flow
- System displays a prompt for text
- TaskFulfiller enters text
- TaskFulfiller submits the response
Exceptions
3.1 Input error (ex. blank fields)
Qualities
Constraints
Includes
Extends
FulfillTask
Related Artifacts
Notes
Open Issues
Test Cases
- Complete a report that requires text. RETURN: Report has the text response visible
11
Use Case Name: TakeAudio
Participating Actors: TaskFulfiller
Goal: Record and attach an audio clip to a report
Trigger: Selecting to add audio to the current report
Precondition: TaskFulfiller has selected to respond to a task
Postcondition: Audio attached to the report and the current report is displayed again
Basic Flow
- System displays the tools to record audio
- TaskFulfiller records audio
- TaskFulfiller sumbits the audio
Exceptions
3.1 Submission error
Qualities
Constraints
Includes
Extends
FulfillTask
Related Artifacts
Notes
Open Issues
Test Cases
- Record an audio clip in a report then submit that report. RETURN: A user should be able to find that audio clip associated with the correct report and play it.
12
Use Case Name: RetakePhoto
Participating Actors: TaskFulfiller
Goal: Retake a photo
Trigger: TaskFulfiller has selected to retake the photo
Precondition: TaskFulfiller has taken a photo
Postcondition: The photo is replaced
Basic Flow
- System displays the camera's view and prompt to take a photo
- TaskFulfiller selects to take the shot
- System displays an option to retake the photo
- TaskFulfiller accepts the photo
Exceptions
Qualities
Constraints
Includes
Extends
FulfillTask
Related Artifacts
Notes
Open Issues
Test Cases
- Select to retake a photo. RETURN: the system should discard the current photo that was taken and take the user back to the photo taking view.
13
Use Case Name: View Global Tasks
Participating Actors: User and Server
Goal: View tasks on server
Trigger: User selects tab to view global tasks
Precondition:
Postcondition: User is presented with tasks from the server
Basic Flow
- Server presents all global tasks
Exceptions
1.1 server access error
Qualities
Constraints
Includes
Extends
Related Artifacts
Notes
Open Issues
Test Cases
- Select to view global tasks from the main screen when there are many global tasks. RETURN: you are able to view the global tasks
- Select to view global tasks from the main screen when there are no global tasks. RETURN: No global tasks will be seen
- Select to view global tasks from the main screen when there is one global task. RETURN: There will be one global task visible.
14
Use Case Name: SendFulfilledReport
Participating Actors: TaskFulfiller
Goal: Make report visible to the TaskMaker and TaskFulfiller
Trigger: User Selects the scope of the report
Precondition: TaskFulfiller is completing a report
Postcondition: System associates the task with the report and shows the report
Basic Flow
- TaskFulfiller selects to make the report visible TaskMaker.
- TaskFulfiller submits report.
- System makes the report visible only to the TaskFulfiller and the TaskMaker
Exceptions
2.1 Incorrect submission
Qualities
Constraints
Includes
Extends
FulfillTask
Related Artifacts
Notes
Open Issues
- Complete a report with the scope set so that it is only visible to the TaskFulfiller and the TaskMaker. RETURN: This task should not be globally visible but locally visible both by the the TaskMaker and the TaskFulfiller
15
Use Case Name: MakeTaskLocal
Participating Actors: TaskMaker
Goal: Make a task local
Trigger: User selects task to be local
Precondition: User has initiated the “DefineTask” user story
Postcondition: Task is visible in the list of local tasks
Basic Flow
- User selects “submit task” button when task is complete
- Task is written to device storage
- Main screen is displayed with all the local tasks visible
Exceptions
1.1 Input error (Please try again)
2.2 File i/o error
Qualities
Constraints
Includes
Extends
FulfillTask
Related Artifacts
Notes
Open Issues
Test Cases
- Create a local task. RETURN: The task is now persistent and is visible only in the set of local tasks
16
Use Case Name: EditTask
Participating Actors: TaskMaker
Goal: The TaskMaker can edit their own task
Trigger: TaskMaker selects the edit task option when viewing your OWN task
Precondition: User knows what they want to change in the task
Postcondition: The old task is replaced by the edited task's information.
Basic Flow
- User selects “edit” button when viewing their own task
- User can re-defines all task attributes (including scope)
- User selects “submit” button
Exceptions
3.0 input error (Please try again)
3.1 File I/O Error
3.2 Server side error (exit)
Qualities
Constraints
Includes
Extends
Related Artifacts
Notes
Open Issues
Test Cases
- Fill out a task will all fields completed and attempt to submit it. RETURN: This should result in the user seeing their task details with the updated information.
- Delete the summary information and then submit it. RETURN: This should raise an error.
- Change the task to have no request. RETURN: This should raise an error.
- Submit the change with a task without a description. RETURN: This should result in returning to the viewing your task information with no description.
- Try to submit then edited Task with none of the fields filled in. RETURN: This should raise an error.
17
Use Case Name: RequireAudio
Participating Actors: TaskMaker
Goal: Create a Task that requires audio
Trigger: TaskMaker, during task creation, selects "audio required" option
Precondition: Is in the process of creating a task; knows they want audio type responses
Postcondition: Task contains a request for audio
Basic Flow
- System prompts user to select what media type for the response they want.
- TaskCreator selects the audio button.
- When the task creation information is submitted, system creates a task with an audio request.
Exceptions
Qualities
Constraints
Includes
Extends
Related Artifacts
Notes
Open Issues
Test Cases
- When creating a task select that a audio is required and nothing else. RETURN: any report made for that task will have an option to record an audio clip and will have to have an audio clip attached to be submitted
- When creating a task selects audio as one of required requests among other types of requests. RETURN: A report for that task will have a field to attach an audio clip but may be submitted if any request is fulfilled (audio or not).
18 ViewRandomTask
Participating Actors: User
Goal: View a random task
Trigger: User selects the option "Random" when browsing the list of global tasks
Precondition: User is able to connect to the server to view global tasks and wants to view a task at random.
Postcondition: The screen displays the details of a random task.
Basic Flow
- System selects a random global task and displays the task's details to the User
Exceptions
1.0 Server I/O error
Qualities
Constraints
Includes
Extends
Related Artifacts
Notes
Open Issues
Test Cases
- When there are no global tasks, select "Random" when viewing the empty listing of global tasks. RETURN: The screen should not change to any task detail screen. Instead a dialog/toast message should inform the User that there are no (global) tasks available.
- When there are global tasks, select "Random" when viewing the list of global tasks. RETURN: The User should be able to see the details of that random global task.