Versions Compared

Key

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

...

Area / scope to test

Front end

Back end

Model

Notes

Requirement specific constraints

All UI elements as per Jira ticket

N/A

N/A

Role based constraints

N/A

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

  • All copy in users preferred language

  • All units in users preferred system of measure

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

Farm-level defaults / preferences

  • Default irrigation type is checked or unchecked based on previous entries

  • Default measurement checkbox is checked or unchecked based on previous entries

Numerical input constraints

  • Estimated water usage only allows decimal inputs > 0 and < 999,999,999

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

Text input constraints

  • “What type of irrigation?” input should take an input of 0 < length < 100 characters

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

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

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

Timezone driven interactions

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

Interaction / transitioning UI based constraints

  • If the user attempts to input a number greater than 999,999,999 an inline error and “X” are displayed, when the user clicks on the “X” the validation message is dismissed and the input is cleared

  • If the user attempts to input more than 100 characters in the “What type of irrigation?” input an inline error and “X” are displayed, when the user clicks the “X” the validation message changes to required and the input is cleared

  • If the user deletes any input to the “What type of irrigation?” input which is required, an inline error and “X” are displayed, when the user clicks the “X” the validation message is dismissed.

  • Selecting an irrigation type other then “Other” automatically selects Depth/Volume for “How do you measure water use for this irrigation type?” based on entries in the irrigation type table

  • When an irrigation type is input, the continue button becomes enabled

Is the UI transitioning appropriately? Is the API providing da

Flow based constraints

  • When the user clicks “cancel” the standard in flow cancel modal is displayed

  • When a user clicks “<“ they are returned to the previous step in the flow, when the click continue next they are returned to the irrigation details view and all inputs from when they clicked “<“ are persisted

  • Clicking “Calculate water usage” after selecting “Volume” for “How do you measure water use for this irrigation type?” displays the Volume water usage calculator

  • Clicking “Calculate water usage” after selecting “Depth” for “How do you measure water use for this irrigation type?” displays the depth water usage calculator

  • Clicking continue populates the redux store with all the selected values on the irrigation details step

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

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

Time-out / low bandwidth constrains

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

Data transformation correctness

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

Outcome correctness

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

Switching farms

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

Notification constraints

Should a notification be marshalled based on this action?

Cascading effects

Are there logical places

Integration constrains

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?

...