LF -2072 Test plan

Augment crop_type creation flow https://lite-farm.atlassian.net/browse/LF-2072

Area / scope to test

Front end

Back end

Model

Notes

Area / scope to test

Front end

Back end

Model

Notes

Requirement specific constraints

New UI elements as described by the Jira ticket

Additional properties in POST request:

  • Custom image

  • Species

  • Genus

  • Nominate for inclusion in crop catalogue

New properties are updated in the database when values are input.

Nomination is created if the nomination checkbox is checked

 

Role based constraints

FW cannot add new crop view UI, or directly via URL

Ensure only FO/FM/EO can successfully post to this end point

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 is in users preferred language

 

 

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

Farm-level defaults / preferences

 

 

 

 

Numerical input constraints

 

 

 

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

Text input constraints

  • Genus is alpha-numeric inputs between 0 and 200 characters in length

  • Species is alpha-numeric inputs between 0 and 200 characters in length

  • Genus is alpha-numeric inputs between 0 and 200 characters in length

  • Species is alpha-numeric inputs between 0 and 200 characters in length

 

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

 

 

Base attributes on nomination table are correctly given the timezone attribute

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

Interaction / transitioning UI based constraints

  • Nominate checkbox Disabled until “New crop name”, “Genus”, “Species”, and “Crop group” are populated

  • Validation error below genus if input isn’t alpha-numeric inputs between 0 and 200 characters in length

  • Validation error below species if input isn’t alpha-numeric inputs between 0 and 200 characters in length

 

 

 

Is the UI transitioning appropriately? Is the API providing da

Flow based constraints

 

 

 

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

 

 

  • On the nomination table, nomination type is crop nomination

  • Nomination workflow status should be nominated

 

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

Outcome correctness

A custom image is displayed for a new crop when one is supplied during crop creation

 

 

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

  • You can still create a crop without new fields

  • Can 2 crops with the same genus and species exist on the same farm and across farms

  • You can still create a crop without new fields

  • You can still create a crop without new fields

  • Can 2 crops with the same genus and species exist on the same farm and across farms

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?