Skip to content
This repository has been archived by the owner on Sep 29, 2021. It is now read-only.

Animal Transport Record Related System Test Procedures

Kelly Holtzman edited this page Jan 14, 2021 · 5 revisions

These test cases do not have to do with modifying particular ATR information like Toc, vehicle information, number animals, etc. These types of changes are related to how the ATR editing widget should behave and so are more fit to unit tests.

These test cases focus on several system component interactions involving ATRs.


Template for Individual System Test Cases

Test Description and Status: "A one-line description" (✅ if completed)

Steps:

  1. ...

Note: These procedures do not have implementation details, but your implemented tests should follow them. Tests may insinuate using mocked or the real external systems.


Generic ATR save actions (no focus on ATR content)

Test Name and Status: "Successfully save existing, then completed ATR"

Steps:

  1. Complete entirely an existing ATR
  2. Save the ATR as complete
  3. Verify the ATR exists and is complete in the local database
  4. Verify the previous, partial ATR does not exist in the local database
  5. Verify the ATR exists and is complete in the remote database
  6. Verify the Transporter is not notified of expected success
  7. Verify the ATR cannot be modified further

Test Name and Status: "Successfully save a new and complete ATR"

Steps:

  1. Start and complete an ATR in the "same sitting"
  2. Save the ATR as complete
  3. Verify the ATR exists and is complete in the local database
  4. Verify the ATR exists and is complete in the remote database
  5. Verify the Transporter is not notified of expected success
  6. Verify the ATR cannot be modified further

Test Name and Status: "Successfully save partial ATR to local"

Steps:

  1. Start a partially completed ATR
  2. Save the ATR as in-progress
  3. Verify the partial ATR exists in the local database
  4. Verify the remote database is not contacted to save partial ATR
  5. Verify the ATR can still be modified further

Test Name and Status: "Successfully save complete, but partial ATR"

Steps:

  1. Complete a partial ATR
  2. Save the ATR as complete (for example, if some event cuts transport short, a partially completed form could be applicable and so the action allowable)
  3. Verify the partial, complete ATR exists in the local database
  4. Verify the partial, complete ATR exists in the remote database
  5. Verify the Transporter is not notified of expected success
  6. Verify the ATR cannot be modified further

Test Name and Status: "Successfully save a similar ATR to existing"

Steps:

  1. Start an ATR similar to an existing ATR
  2. Save the ATR as in-progress
  3. Verify the partial ATR exists in the local database
  4. Verify the other, existing ATR also exists in the local database
  5. Verify the remote database is not contacted to save partial ATR
  6. Verify the duplicate ATR can still be modified further

Test Name and Status: "Failed save ATR to remote notifies Transporter, retries"

Steps:

  1. Set up any remote database connection/query/save action to fail
  2. Save any ATR as complete
  3. Verify the ATR exists and is complete in the local database
  4. Verify the Transporter is notified of failed connection/query/save action
  5. Set up any remote database connection/query/save action to succeed
  6. Verify the remote is retried within test interval
  7. Verify the ATR exists and is complete in the remote database
  8. Verify the Transport is notified of eventual success (because it had failed before)

Test Name and Status: "Failed save ATR to local notifies Transporter, retries"

Steps:

  1. Set up any local database connection/query/save action to fail
  2. Save any ATR as in-progress
  3. Verify the ATR was not saved to local database
  4. Verify the Transporter is notified of failed connection/query/save action
  5. Set up any local database connection/query/save action to succeed
  6. Verify the local is retried within test interval
  7. Verify the ATR exists and is complete in the local database
  8. Verify the Transporter is notified of eventual success (because it had failed before)

For the above test case, there is a possibility that with such catastrophic failure it is sufficient to warn the transporter about what blew up :( .

Generic ATR management actions (no focus on ATR content)

Test Name and Status: "Successful deletion of in-progress ATR(s)"

Steps:

  1. Fill the local database with cached ATRs
  2. Delete in-progress ATR(s)
  3. Verify Transporter is asked if they really want to delete in-progress ATR(s)
  4. Verify the ATR(s) no longer exist in the local database (upon accepting above ask)

Test Name and Status: "Failed deletion of in-progress ATR(s) notifies Transporter"

Steps:

  1. Fill the local database with cached ATRs
  2. Set up any local database connection/query/delete action to fail
  3. Delete in-progress ATR(s)
  4. Verify Transporter is asked if they really want to delete in-progress ATR(s)
  5. Verify the Transporter is notified of failed connection/query/delete action
  6. Set up any local database connection/query/delete action to succeed
  7. Delete in-progress ATR(S)
  8. Verify Transporter is asked again if they really want to delete in-progress ATR(s) (deleting ATRs is too important to queue deletes as a background task, unlike saving)
  9. Verify the ATR(s) no longer exist in the local database (upon accepting above ask)

No need to notify/check that Transporter is notified of successful delete because we do not retry deletion in the background.

Test Name and Status: "Successful save of ATR causes local to remove oldest saved ATR"

Steps:

  1. Fill the local database with maximum cached ATRs
  2. Start an ATR
  3. Save the ATR as in-progress or complete
  4. Verify the ATR exists in the local database
  5. Verify the oldest ATR was removed from the local database

Test Name and Status: "Failed save ATR when local is full notifies Transporter"

Steps:

  1. Fill the local database with maximum cached ATRs (all in-progress, the local database should only remove ATRs which are confirmed also in remote)
  2. Try to start another ATR
  3. Verify the Transporter is notified that local is full of too many in-progress ATRs to start a new one

Test Name and Status: "Successfully email ATR(s)"

Steps:

  1. Select and choose the email action for existing ATR(s)
  2. Verify the PDF preview of the ATR(s) are shown before email is sent
  3. Verify that an email was indeed sent through the email API we've chosen
  4. Verify the email is received with all intended attachments as expected

This test may have a manual component due to the fact we cannot programatically check that an email was received.

Test Name and Status: "Successfully retrieve ATR(s) from remote for specific Transporter"

Steps:

  1. Set up the remote database with existing ATRs, for this Transporter and others
  2. Clear the local database cache
  3. Verify the remote database is queried for recent ATRs for this Transporter
  4. Verify the local database receives the recent ATRs for this Transporter

Test Name and Status: "Failure to retrieve ATR(s) from remote notifies Transporter, retries"

Steps:

  1. Set up any remote database connection/query/retrieve action to fail
  2. Clear the local database cache
  3. Verify the Transporter is notified of failed connection/query/retrieve action
  4. Set up any remote database connection/query/retrieve action to succeed
  5. Verify the remote database is retried within test interval
  6. Verify the local database receives the recent ATRs for this Transporter

Deliverables pages (see website)

Client meeting minutes pages:

  1. Progress Update and Project Requirement Questions Oct 5, 2020
  2. Progress Update Meeting Oct 29, 2020
  3. Progress Update Meeting and USM-related questions Nov 11, 2020
  4. Mentor Progress Update Meeting Nov 25, 2020
  5. Livestock Services Saskatchewan Project Meeting Dec 3, 2020
  6. Team and Instructor, Mentor, and Faculty Meeting Minutes

Team meeting minutes pages:

  1. Sprint 0
  2. Sprint 1
  3. Sprint 1 Retrospective
  4. Sprint 2
  5. Sprint 2 Retrospective
  6. Sprint 3
  7. Sprint 3 Retrospective
  8. Sprint 4
  9. Sprint 4 Retrospective
  10. Sprint 5
  11. Sprint 5 Retrospective
  12. Sprint 6
  13. Sprint 6 Retrospective
  14. Sprint 7
  15. Sprint 8
  16. Sprint 7/8 Retrospective
  17. Sprint 9
  18. Sprint 10

Requirements-related pages:

  1. About Project Charter
  2. About Project Requirements

Specification-related pages:

  1. Animal Record Transport Template Breakdown
  2. Transfer of Care Document Breakdown
  3. FWR Document Breakdown
  4. Contingency Plan Breakdown

User Story Mapping-related pages:

  1. User Story Mapping Guide

Design-related pages:

  1. C4-Model for Client-Server Architecture
  2. Data Modelling Design Process
  3. Guide to GUI Prototyping Structure

System Test Procedure pages:

  1. Animal Transport Record-related Test Cases
  2. Transporter Account-related Test Cases
  3. System Settings-related Test Cases

Investigation pages:

  1. Adobe XD vs Figma
  2. Client-Server Architecture Tools
  3. Firebase vs. AWS Amplify

Project Setup/FAQ pages:

  1. Cloning Humane Transport
  2. Set up Pre-Commit
  3. IDE Useful Settings
  4. Testing Workflow
  5. Useful Git Commands
  6. Must Know Flutter Concepts
Clone this wiki locally