Versions Compared

Key

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

Italics are prompts to overwrite.

...

Does my role determine what I can see?

  1. If so, should components / interactions be hidden, disabled, display validation errors, or something else?

...

Do my preferences(language, units) affect what i can see?

  1. If so, what about my interaction with the app changes?

...

Does my role determine what I can do via the API?

  1. If so, how should the API inform the user of their insufficient access?

...

Do dates play a role? Should I logically be able to assign a date in…

  1. the past

  2. today

  3. in the future?

...

Are we making any inappropriate assumptions about dates? For example, just because a user is entering data today doesn’t necessarily mean the real world event took place today.

...

What happens if I switch farms while interacting with this feature?

...

What constraints should be placed on inputs?

  1. Should the UI / API restrict large / small inputs?*

  2. Should the UI / API restrict to a particular type of input, e.g. numbers, letters, alphanumeric, etc.?

  3. Are there strict formats that should be enforced, e.g. an email address?

...

Are there any expectations that data will be transformed?

  1. Is the data I input returned in the expected way via the API / UI?

...

Are there any cascading effects of performing a particular test?**

...

Should we be handling this interaction synchronously or asynchronously. If asynchronously…

  1. What does success mean?

  2. Do we allow partial success?

  3. What failure cases do we need to handle?

  4. How do we report back the outcome, e.g. email, notification, or other

...

Area / scope to test

Front end

Back end

Model

These are some oftentimes useful questions you can ask yourself when coming up with test cases. Not all will apply every time, but this is a good list to start thinking:

Notes

Requirement specific constraints

Role based constraints

How should the UI be modified?

How should the API respond?

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

User preferences constraints

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

Localization constraints

N/A

N/A

Should data be displayed differently based on localization, e.g. date format, phone numbers, numbers in currency inputs. Doesn’t include language (which is covered in the section above).

Farm-level defaults / preferences

Are there any farm level defaults or preferences that should be shown or pre-selected?

Numerical input constraints

Are inputs outside expected bounds appropriately shown to the user?

Is the endpoint response actionable?

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

Text input constraints

Are inputs outside expected bounds appropriately shown to the user?

Is the endpoint response actionable?

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 inputs outside expected bounds appropriately shown to the user?

Is the endpoint response actionable?

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

Are timestamps appropriately shown in users timezone?

Are timestamps appropriately converted to users timezone?

Are timestamps stored in UTC?

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

Interaction / transitioning UI based constraints

N/A

N/A

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 user appropriately informed of transitions from synch to asynch and vice versa?

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

Is the data shown as expected post-transformation?

Is the data persisted as expected post-transformation?

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

Outcome correctness

Is it clear whether the outcome was a success of failure? Does it have the “right” visual treatment?

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 constraints

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

...

 

 

 

 

 

  • For example, latitude and longitude can be entered to any number of decimals. However, 6 decimal places defines a location or polygon with 10cm of precision. It’s hard to imagine a situation in LiteFarm where a tool is likely to provide greater precision than 10cm or a user would need greater precision than 10cm. Therefore, it makes a lot of sense to limit these inputs to 6 digits

...

to the user or external service?