LF- 2801 Test plan

Water use calculator https://lite-farm.atlassian.net/browse/LF-2801

Area / scope to test

Front end

Back end

Model

Notes

Area / scope to test

Front end

Back end

Model

Notes

Requirement specific constraints

  • Ensure all UI elements exist as per Jira ticket for both depth and water usage calculator

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

  • Ensure all copy is displayed in the user’s preferred language

  • Ensure all unit display inputs display units in the user’s preferred system of measurement

 

 

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

Farm-level defaults / preferences

 

 

 

 

Numerical input constraints

  • Estimated application depth input is optional takes decimals between 0.0 and 999.9 and valid unit values are “mm” or “in”

  • % of location to be irrigated is optional and takes decimal values >0 and <=100

  • Estimated flow rate is optional takes decimals inputs between 0.0 and 999,999.99 and has valid units l/m, l/h, g/m, g/h

  • Estimated duration is optional takes decimals between 0.0 and 999.9 and valid unit values are h and m

 

 

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

Text input constraints

 

 

 

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

  • When any inputs or units are changed on the volume water usage calculator, total water usage must be recalculated as “Estimated flow rate” x “Estimated duration” and displayed in the read only label

  • When any inputs or units are changed on the depth water usage calculator, total water usage must be recalculated as “Estimated application depth” x “irrigated area” and displayed in the read only label

  • Clicking on the information “i” displays help text as per the Jira ticket

  • Clicking cancel or outside the modal dismisses it

 

 

Is the UI transitioning appropriately? Is the API providing da

Flow based constraints

  • Clicking save dismisses the water usage calculator and displays the total water usage value in the estimated water usage input on the irrigation task attributes screen

  • If “set as default flow rate for this location” is checked the local state should store the flow rate as the “default flow rate” for the current location after clicking “Save”

  • If set as default application depth for this location is checked the local state should store the “estimated application depth” as the default application depth for the current location after clicking “Save”

 

 

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?