Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Jira Legacy
serverSystem JIRA
serverId815f41e5-e5fb-3402-8587-82eccc3ffab0
keyLF-3363

...

Area / scope to test

Front end

Back end

Model

Notes

Requirement specific constraints

  • Testing per Jira ticket

  • As someone who is completing a repeating crop plan I want to be able to access that information at a later time

N/A
  • Ensure that the deleted tasks are not cloned

  • All validation must be enforced at the API as well

  • Ensure that in the database all the information is stored correctly

 

Role based constraints

  • Farm workers cannot POST crop plans

N/A

N/A

Does role determine what a user can see or do? Is this enforced uniformly across the front end and back end?

User preferences constraints

Ensure that user or farm preferences doesn’t play role during the creation flow

N/A

N/A

N/A

Is this impacted by user or farm preferences such as language, system of measure, certification status?

Numerical input constraints

N/A

N/A

N/A

Do we appropriately handle negative, very small, very large, or 0 as inputs?

Text input constraints

N/A

N/A

N/A

Do we appropriately handle blank, very small, and very large inputs? Is there a strict format (such as email) that must be followed?

Date based constraints

N/A

N/A

N/A

Are there logical restrictions on what dates can be input? Should a use be able to complete something in the future for example.

Date based assumptions

N/A

N/A

N/A

Are we making valid assumptions about what dates should be allowed?

Timezone driven interactions

N/A

N/A

N/A

If timezones play a role in the data, are they being displayed or converted appropriately?

Interaction / transitioning UI based constraints

Per

UI

user must see the Assignee field (between “Crop plan name” and “Crop plan notes”)Label and input field

:

“Assignee”

  • Pre-populate field with “Unassigned” if more then one user exists.

  • If only one user exists at the farm, pre-populate this field with that user

  • Info text: “All tasks generated as part of this crop plan will be assigned to this individual. You can modify this assignment later” 

    • As the user types into “Assignee”, do a character-by-character match against users first and last names (farm workers get no results other than themselves)

      • User can click matching selection

    • Ensure that the user can Click “Save” to save the state to the store

    None; back-end story

    N/A

    N/A

    Is the UI transitioning appropriately? Is the API providing da

    Flow based constraints

  • Ensure that when the user clicks on the cancel button , the pop up confirmation message is displayed

  • Ensure that when the user clicks on the save button he is redirected to the created crop plan and the tasks are assigned to the user which was selected previously

    The user calls this functionality by…

    • Clicking “Save” button if they have set a repeating schedule.

    • Clicking “Confirm” button

     

    For each crop plan created this way will:

    • All values from the repeated plan should be maintained as is, with the exception of:

      • Dates, which should be recalculated using the existing offset and the new beginning date

      • Fields related to the completion or abandonment of the crop plan should be nulled out

    For each task created this way:

    • All values from the cloned tasks should be maintained as is, with the exception of:

      • Dates, which should be recalculated using the existing offset (from the completed_date if present, otherwise using due_date) and the new beginning date specified for the crop plan

      • Fields related to the completion or abandonment of the task should be nulled out

      • Assignee should be “Unassigned” unless there’s only 1 user at the farm

    N/A

    N/A

    Is state being preserved appropriately in a flow? If I go back and then forth, is it maintained? Is state invalidated when it should be?

    Synchronous / asynchronous constraints

    N/A

    N/A

    N/A

    Is the interaction synchronous, asynchronous, or does it support both? Can you simulate both if so?

    Time-out / low bandwidth constraints

    N/A

    N/A

    N/A

    Does the feature fail gracefully under no bandwidth / low bandwidth environments?

    Data transformation correctness

    N/A

    N/A

    N/A

    Are values appropriately updated when units change? Is it WYSIWYG?

    Outcome correctness

    N/A

    N/A

    N/A

    When inputting known inputs with expected outputs - do you get the results you expect? Have you tested several “cases” of this?

    Switching farms

    N/A

    N/A

    N/A

    Does this feature respond well to switching farms (and returning)?

    Notification constraints

    Ensure
    that the notification is displayed after the user creates the crop plan and assignes created task to anyone.

    N/A

    N/A

    N/A

    Should a notification be marshalled based on this action?

    Cascading effects

  • Ensure that the user can still re - assign the created crop plan tasks to anybody else in the farm

  • Ensure that the user can still complete the created task without making any changes in the task

  • Ensure that the user can still complete the created task with making any changes in the task

  • Ensure that the user can still abandon the created task in the crop plan

  • Ensure that the user can still delete the created task in the crop plan (Except Planting Task)

    N/A

    N/A

    N/A

    Are there logical places

    Integration constrains

    N/A

    N/A

    N/A

    Do we need to ensure state is consistent between LiteFarm and the external service? What failure cases do we need to handle? How do we report back the outcome to the user or external service?

    Concurrency

    N/A

    N/A

    N/A

    How do changes made to records affect other users on the farm? e.g. What happens when a record is soft deleted while another user is viewing said record?