Bug Bash 2024-11-29 Animals

Bug Bash 2024-11-29 Animals

Bug Bash Fundamentals

What is a bug bash?

It’s a collaborative event where the whole team, no matter what their role is, comes together to try to “break” the application in creative ways ahead of a release. The goal is to find as many bugs as possible in a short period of time, and since every person in the team will have their own unique perspective and use the application in different ways, there are better chances of uncovering issues, defining how severe they are and if needed fixing them ahead of the release. It’s also a great opportunity for people to spend some time familiarizing themselves with the application and putting themselves in the shoes of one of our users. And last but not least, breaking things can actually be fun! By doing bug bashes often, we’re cultivating a blame-free culture where we take bugs as a chance to bond as a team, learn and improve.

How do I participate?

  1. If you’re willing to collaborate with this bug bash, please write your name down in the Participants section. If possible add details about what language(s) you’re using when testing the app, as well as which user role(s) you’re logging in as. This will help us know if there are any languages or roles not currently being covered by anyone.

  2. Read through the scope of what we’re testing in the Scope section. The scope will usually be defined based on what kind of changes we are pushing out on the upcoming release and it’s a guidance on which are the main things to keep an eye on. That being said, if you do find any bugs that are unrelated to the scope, feel free to report them anyway.

  3. If the bug bash is done synchronously, there’ll be a meeting where we all come together and test at the same time with a time box. If it’s done asynchronously, we’ll aim to have the session open for enough time that people in different timezones are able to participate. In that case, feel free to participate whenever you can and have the time and to time box depending on what your schedule looks like. Everything helps, so even if you only have limited time to test, you might discover something that nobody else has found before. Information on the timing of the meeting or asynchronous session can be found in the Session details section

What do I do if I find a bug?

First off, congratulations on finding it! To report the bug, head over to the Bugs section and add a new row in the table. The row should include your name and a brief description of the bug, on the Details field please add as much information as possible. Please provide reproduction steps and expected/actual behavior, and if you have the time, screenshots or video recordings of what you encountered will be extremely helpful. You don’t need to fill out the Pre-existing, Priority or Blocker fields as those will be filled out once the session is over.

If you spot a bug and you see someone else has already reported it and it’s on the table, you can go ahead and just add your name to the “Also seen by” column to mark that the bug is encountered frequently, without having to write down all the details again.

What happens after the bug bash?

Once the bug bash session is over, the team will go over the list of bugs that were found and prioritize them. For each issue, we’ll try to answer these three questions:

  • Was this bug caused by the change we’re aiming to push out on this release, or does it currently exist in production?

  • How severe and how frequent is this bug, or in other words, what’s the priority for fixing it?

  • Should this bug block the upcoming release?

No matter the result, if the issue found is something we’d like to fix eventually, we’ll create the corresponding ticket in Jira and add it to the Backlog. If we come to the conclusion that one or more bugs are actually blocking the upcoming release, we’ll add those tickets to the current sprint and give them the highest priority. If no bugs are found that are blocking, we’ll proceed with the release process as normal and work on the reported issues in future sprints depending on their priority.

Participants

Name

Language(s)

User role(s)

Name

Language(s)

User role(s)

E.g.: @Anto Sgarlatta

E.g.: Spanish, English

E.g.: Farm Owner, Farm Worker

@Riddhi Battu

English

Farm Owner

@Joyce Sato-Reinhold

English, Punjabi

Farm Manager, Farm Worker

@Sayaka Ono

English, Japanese

Farm Owner

@Larisse Cavalcante

Portuguese, English

Farm Manager

@Denis Dovganyuk

English, French

Farm Owner and Farm Worker

@David Trapp (Unlicensed)

Spanish

Farm manager

 

 

 

 

 

 

 

 

 

Scope

This bug bash will concentrate on testing the features introduced in the patch which introduces powerful new functionality, enabling users to create and manage animals within LiteFarm. With this update, users can efficiently plan and document animal management processes, ensuring proper execution by the assigned staff. If you would like to learn more about the specific changes, find additional details here: https://lite-farm.atlassian.net/projects/LF/versions/10019/tab/release-report-all-issues

Purpose of the Patch:

The update aims to empower users with the ability to create and manage animals within LiteFarm. To ensure this functionality is working as expected, thorough testing will be required across all related features.

Key Areas to Test:

  1. Animal Creation:

    • Creating a single animal.

    • Creating a batch of animals.

  2. Animal Management:

    • Editing animal details (e.g., name, breed, health status, etc.).

    • Deleting animals (individual and batch).

  3. Data Validation and Interactions:

    • Ensure accurate data entry and validation across forms.

    • Verify that updates are correctly reflected in the UI

  4. Usability and Edge Cases:

    • Verify the user interface and experience during the creation, editing, and deletion processes.

    • Test edge cases (e.g., invalid input, large batch sizes, and boundary conditions).

  5. Performance and Load:

    • Assess system performance when managing large numbers of animals.

    • Ensure batch operations execute efficiently.

Deliverables:

  • Confirm that all features related to animal management function as intended.

  • Identify and document any bugs, inconsistencies, or areas of improvement.

  • Provide feedback on usability and overall experience.

Thank you for your attention to detail during this critical testing phase! Your insights will be invaluable in ensuring a smooth rollout of these new features.

User Stories

As a (potential) LiteFarm user of any role:

Animal Management Guidelines

Viewing and Adding Animals

  1. Viewing Animals:

    • Ensure that accessing the Animals page displays all previously created animals.

    • Verify that the option to create new animals is visible, except for Farm Worker accounts (who should not see the create option).

  2. Adding New Animals:

    • Starting the Creation Process:

      • Confirm that clicking the “+” button in the bottom-left corner of the app initiates the process to add new animals to the farm.

    • Required Fields Validation:

      • Ensure that the creation process cannot be completed without filling in all required fields.

    • Adding Multiple Animal Types:

      • Verify that users can create two or more animal types during the same process by clicking the “+ Add More Animals” button.

    • Individual and Batch Creation:

      • Ensure users can create both individual animal profiles and animal batches seamlessly.

    • Adding Custom Animal Types and Breeds:

      • Confirm that users can add custom animal types and custom breeds by typing a name that does not already exist on their farm.

    • Preventing Duplicate Custom Entries:

      • Verify that users cannot create a custom animal type or custom breed if it already exists on their farm.

    • Removing Animals During Creation:

      • Ensure users can remove animals during the creation process by clicking the “Remove” button on the corresponding animal card.

    • Handling Page Reload or Cancel:

      • Check that reloading the page or clicking the “Cancel” button triggers an informative pop-up message warning users that their progress will be discarded.

Animal Movement Task

  1. Task Display:

    • Confirm that the Tasks page displays all tasks related to the user’s farm.

  2. Creating a Movement Task:

    • Verify that clicking the “+” button allows the user to select “Movement Task.”

    • Ensure that users can select multiple animals or batches during the creation process.

  3. Location Selection:

    • Confirm that during the creation of an Animal Movement task, users can choose from the following locations:

      • Barn, Field, Garden, Greenhouse Area, Natural Area, Surface Water, and Buffer Zone.

    • Ensure that the following locations cannot be selected:

      • Ceremonial Area, Residence, Watercourse, Gate, Fence, Farm Boundary, and Water Valve.

Custom Task Type Creation

  • Creating a New Custom Task Type:
    Verify that users can successfully create a new custom task type without issues.

  • Duplicate Prevention:
    Ensure that the system prevents the creation of duplicate custom task types (i.e., task types with the same name as an existing one).

  • Deleting a Custom Task Type:
    Confirm that users can delete a custom task type after it has been created.

Creating a Custom Task

  • Animal-Related Tasks:
    Verify that users can create custom tasks specifically related to animals (e.g., cleaning, feeding, animal health check or movement tasks).

  • General Tasks:
    Ensure that users can create custom tasks that are not related to animals, allowing for flexibility in task creation.

Custom Task Management

  • Deleting Custom Task Types:
    Confirm that users can delete a custom task type, ensuring it is removed from the system while maintaining the integrity of existing tasks.

  • Completing or Abandoning Custom Tasks:
    Verify that users can complete or abandon a custom task once it has been created.

  • Modifying Tasks During Completion:
    Ensure that users can make necessary changes to a custom task (e.g., updating due dates or assignees) while the task is still in progress.

Additional Considerations:

  • Test edge cases such as invalid input (e.g., empty task type names) and boundary conditions (e.g., maximum character limits for names).

  • Assess the usability and performance when managing a large number of custom task types or tasks.

  • Confirm that permissions for creating and managing custom tasks align with user roles (e.g., Farm Worker restrictions).

Task Management Testing Guidelines

  • Completing Tasks:
    Verify that users can successfully complete the Animal Movement Task and that it is marked as completed in the system.

  • Post-Completion Restrictions:
    Ensure that once the task is marked as completed, no further changes can be made to its details, and attempts to modify values are prevented.

  • Editing Task Details:
    Confirm that users can update the “Due Date” and “Assignee” for tasks that are still active (not completed).

  • Farm Worker Permissions:

    • Task Creation Restriction: Verify that Farm Worker accounts cannot create an Animal Movement Task.

    • Task Completion Permission: Ensure that Farm Workers can complete Movement Tasks assigned to them.

    • Assignee Modification Restriction: Confirm that Farm Workers cannot change the assignee if the task is already assigned to someone else.

  • Task Deletion or Abandonment:
    Ensure that users retain the ability to delete or abandon an Animal Movement Task as needed, provided it is not marked as completed.

 

Filters Functionality

  1. Filter Accuracy:

    • Test various filter combinations to ensure they return the correct results.

  2. KPI Animal Card Updates:

    • Confirm that KPI animal cards update accurately as new animals are added to the farm.

  3. KPI Card Filtering:

    • Verify that clicking a KPI animal card correctly filters the results displayed in the animal table.

Account Permissions

  1. FO/FM/EO Account Permissions:

    • Confirm that Farm Owner (FO), Farm Manager (FM), and Extension Officer (EO) accounts can:

      • Create movement tasks.

      • Manage animals, including creating, editing, and deleting profiles or batches.

  2. Farm Worker Account Restrictions:

    • Ensure that Farm Worker accounts cannot:

      • Create movement tasks.

      • Delete or create new animals.

  3. Farm Worker Access:

    • Verify that Farm Worker accounts can:

      • Access and view the Animals Inventory page.

      • Complete movement tasks assigned to them.

Movement Task Creation Process

  1. Completing Tasks:

    • During Movement Task creation, verify that users can assign the task to themselves and mark it as completed.

  2. Cancelling Task Creation:

    • Ensure that clicking the “Cancel” button displays a confirmation pop-up:

      • Clicking “No” allows users to continue the process.

      • Clicking “Yes” aborts the process and redirects users to the Tasks page.

  3. Post-Creation Verification:

    • After creating a task, confirm that task details are accurate and visible in view-only mode on the Tasks page.

    • Ensure that notifications are triggered for assignees when tasks are created, completed, abandoned, or deleted.

  4. Task Management:

    • Verify that users can delete or abandon tasks after they are created.

    • Confirm that navigating back and forth during the task creation flow retains previously entered information.

Finance Documentation

  • Ensure that upon completing or abandoning a movement task or a custom task, the labor expense is calculated correctly and reflected on the Finances page.

Support requests or feedback

  • Ensure that you are able to send the support request to a LiteFarm support team. ( We changed the position of that button, now you may find it in the top right corner of the app.)

  • Ensure that all the information is visible and translated correctly.

  • Ensure that you are not able to send it without filling all the required information

Adding Usability Suggestions

To ensure a user-friendly experience, we encourage testers to share their insights and feedback regarding usability improvements. You can submit your suggestions directly in the testing document under a dedicated section titled "Usability Suggestions."

  • Be specific about the feature or area of the application your suggestion pertains to.

  • Provide clear descriptions of your observations or proposed changes to help the team understand and address your feedback effectively.

Your input is invaluable in enhancing the LiteFarm experience!



 

 

Usability Suggestions:

Reporter

Description

Details

Have the same opinion?

Reporter

Description

Details

Have the same opinion?

E.g.: @Anto Sgarlatta

E.g.: The “+” add button is too large

E.g.:

Repro steps

  1. Access LiteFarm logged out

  2. Click on the Google SSO button

Expected

Should navigate to the Google page to choose an account

Actual

Nothing happens

Screenshots/videos

 

E.g. @Joyce Sato-Reinhold

 

 

 

 

@Duncan Brain

Some way to pre-fill more of the animal creation data

Repro steps

  1. Go to create animal

  2. Create 100 animals, choosing “create individual profiles”

  3. Click next

  4. Add breed image to all 100 animals individually, or add supplier to all animals individually, or etc …

 

Expected

Either able to specify more/most fields on the previous screen, or some other mechanism

Actual

Must add details to each individual animal.

Screenshots/videos

I have started some designs solving this particular issue, it’s a good feature to add in the future. Also I would think we would tackle the CSV animal upload before that, as I’d argue if you have 100 individuals animals to add, it’s not the right UI for that.

@Duncan Brain

Sire & Dam, and Supplier should should be linked to animals and suppliers respectively

Repro steps

  1. In create/edit animals -- Fill out Sire + Dam + Supplier

  2. It is a text field

  3.  

Expected

It is a search/select field

Actual

Reconciling duplicates when we do this will be fun

Screenshots/videos

@Anto Sgarlatta the reason we went for a text field was to reduce complexity since sire/dam could be animals not in the farm (related to item below, but it’s possible the user wouldn’t want to track animals not in their farm)

@Duncan Brain Just thinking we don’t want this data until we have thought though lineage and related expenses. (better to have less bad data than more data to fix in the future)

 

@Duncan Brain my concerns about reconciling future data specifically with regards to expenses are helped by @Loic Sans point that we should never ever try to convert these into expenses, the user may bypass our lack of linking and create the expense themselves while we develop that feature. But also abandoning/deperecating table data in the future kind of stinks. Sire and dam can be converted in the future with less issues.

@Duncan Brain

A third option to “Born here”, “Brought in” might be “Breed Lineage” or “Not on farm”

Repro steps

  1. Go to edit/create animals

  2. Add a Dam or sire from another farm to store lineage

  3. It is a text field, with a limit of 255 characters

Expected

It is linked to animals, and the animal does not have to exist on farm

Actual

No such option

Screenshots/videos

 

@Duncan Brain

If I enter cost and supplier I expect an expense to be made.

Repro steps

  1. Go to edit/create animals

  2. Enter a supplier and cost and brought in date

  3. Go to finances

Expected

There is now an expense

Actual

No such expense

Screenshots/videos

?: Actually had the same opinion.
But thought that this will be added in the future.
DB: Yes my understanding too but in the meantime should we hide it to not make bad data to reconcile in future?

@Duncan Brain Just thinking we don’t want this data until we have thought though lineage and related expenses. (better to have less bad data than more data to fix in the future

@Duncan Brain my concerns about reconciling future data specifically with regards to expenses are helped by @Loic Sans point that we should never ever try to convert these into expenses, the user may bypass our lack of linking and create the expense themselves while we develop that feature. But also abandoning/deperecating table data in the future kind of stinks. Sire and dam can be converted in the future with less issues.

@Duncan Brain

I expect profile options to be furthest top right corner

Repro steps

  1. Go to logout

  2. Click message

  3. Oops – now click profile

Expected

This might be subjective but I thought profile normally in top right corner

Actual

Feedback message is there

Screenshots/videos

Let’s monitor this and see if we get the same feedback.

@Duncan Brain

A way to deselect/select all in mobile view in tasks

Repro steps

  1. Create task flow in mobile

  2. On animal inventory screen

Expected

A way to select all animals or deselect all animals

Actual

Not present

  • in regular inventory this is on action bar

  • on desktop this is in table header

Screenshots/videos

Will look into this

@Duncan Brain

Accidental click outside checkbox goes to details view and loses check progress

Repro steps

  1. Go to animal inventory

  2. Start selecting several animals fast

  3. Accidentally click just outside checkbox

Expected

Checkbox clicked or nothing happens

Actual

Redirected to animal details

Screenshots/videos

Screen Recording 2024-12-06 at 12.21.49 PM.mov

@Joyce Sato-Reinhold OMG YES I WAS JUST MAKING A VIDEO

So frustrating when you have a large selection going. Checkbox hitbox should be much larger, and at the very least should extend to the left edge of the row

 

@Anto Sgarlatta a better UX patern would be a way to get in/out of selection mode. Nested clickable areas are also really bad for accessibility https://gitnation.com/contents/nested-interactive-elements-an-nightmare-in-accessibility

@Joyce Sato-Reinhold

System keyboard obscures “Set” (save) button on SexDetails popup (mobile, android)

Repro steps

  1. Add a new animal on mobile (Android device tested)

  2. Try to add the sex details

  3. Modal pops up. When clicking plus button, keyboard pops up

  4. Keyboard obscures save (“Set”). If modal is closed without hitting set, information just entered is lost

Expected

  • Either information is saved without hitting save -OR-

  • Save button is not obscured (either because no keyboard pops up or save button is placed differently)

Actual

  • Save button is hidden, and at first I thought it was a bug because each time I exited the modal my sex details were not saved (I had not seen the save button).

  • Also on Desktop there is no need to hit save

Screenshots/videos

Screenshot_20241206-095220.png

 

a258d0d6-a50f-47f1-97c0-74260fc35271.JPEG

 



 

@Denis Dovganyuk

Once the user creates an animal it may be not quite clear where you will be redirected once you will click on the “Add more details to your animals” button

Repro steps

  1. Login with your account

  2. Navigate to the Animals Inventory page.

  3. Create a batch of animals

  4. Click on the “Add more details to your animals” button

Expected

Actually for me it was expected that I will be redirected to the animal detail page of the batch that I have just created.

Actual

I am redirected to the Animals inventory page.

Screenshots/videos

 

image-20241206-180201.png

 

@Joyce Sato-Reinhold I was thinking about this again when we watched Divya add new animals and the new entry popped up in the middle of the table and was therefore hard to locate.

Was navigating to the inventory a placeholder before the details view was created?

@Sayaka Ono

No reason for abandoning options for animal tasks

Repro steps

  1. Create a movement task

  2. Go to the read-only view of the task

  3. Click “Abandon”

  4. Click “Reason for abandoning” select

Expected

It would be nice if we could add expected reasons for animal tasks in the future

Actual

No options for animal tasks

Screenshots/videos

 

@Larisse Cavalcante

Support: Display ‘file’ instead of ‘image’

Repro steps

  1. Click on the support button

  2. Upload a file

Expected

Given that the uploaded content can have various formats, the options displayed should be:
Change ‘file’
Remove ‘file’

Actual

The options displayed are:
Change ‘image’
Remove ‘image’

Screenshots/videos

Support wording.png

 

 

@Joyce Sato-Reinhold

“Mobile” view extends to 1200px for all animal inventory-related views

 

Mobile view has:

  • no padding

  • centered full-width elements

 

IMO it is not appropriate for 800px-1200px.

Repro steps

  1. View animal inventory on animal page or through tasks

  2. Size your screen at more than 1200px to view the desktop view, and then start decreasing your screen size to observe the responsive design breakpoints

Expected

  • Desktop view extends until ~600px, the normal breakpoint for our mobile views

Actual

  • Mobile view kicks in right at 1200px, and looks “off” (no padding, way too much white space, animal count badge is extremely long)

Screenshots/videos

 



@Duncan Brain Agreed, although we have said we don't want to design for tablet a better understanding of touch elements would help as as its normally convenient to keep consistent one way or another but tablet kind of needs both (floating action button I like for touch but not desktop a long way to go for mouse)

 

@Joyce Sato-Reinhold I just take issue with the idea that 1024+ is still “tablet” (or should be designed for tablet); if 900-1200 or even 1024-1200 were restored to desktop it would make more sense (it’s basically the full width of my laptop).

I guess it’s not exactly standardized but this example from mui is as good as any:

breakpoints: {
values: {
mobile: 0,
tablet: 640,
laptop: 1024,
desktop: 1200,
},

@Duncan Brain agreed!

@Larisse Cavalcante

Support: attachment window defaults to "image files" only.

Repro steps

  1. Click the support button

  2. Click on the ‘+ Click to upload’

Expected

The window should display files of all supported formats by default.

Actual

The window displays only image files by default.

Screenshots/videos

image-20241206-192941.png

 

 

@Joyce Sato-Reinhold

I am not able to move my chinchillas, house ducks, or other companion animals to my FARMHOUSE/RESIDENCE)

 

(I am contesting the idea that “Residence” should not be a valid destination for animal movement)

Repro steps

  1. Use a farm with a residence-type location

  2. Create some animals with purpose “Companionship” that reside in your residence

  3. Try to move them there using the movement task

Expected

  • Residence is selectable so I can assign my animals to that location

Actual

  • I cannot select my residence, so can only indicate a location like “field” where they do not reside, or have to keep them location “unknown”

Note: this is one of the situations that could prompt what Prabjot described below when he said “cannot specify a location for a movement task” and we assumed he had no movement-compatible locations. Residence is a particularly problematic exclusion because it is an AREA LOCATION, not a point or line location like the other excluded locations (gate, water valve, sensor, boundary, etc) and there is no indication to the user why it is not appearing on the map as a selectable location.

Screenshots/videos

 

 

@Joyce Sato-Reinhold

Desktop animal inventory is displeasingly proportioned

(I do not think our implementation is correct according to the original Figma. As this is the main view of our new feature, I really would like to see it correct and as attractive as possible).

Repro steps

  1. Create some animals and batches with descriptive names

  2. View your inventory at Desktop (1200px +) width

Expected

  • Names readable in their entirety, and “type, breed, and location” allocated less space

    • Since breed is an optional field, it is also very likely to be left blank; it does not need a lot of space

    • To me it looks like the Figma Design does allocate more space to name and less to the other fields

Actual

  • Names are truncated and squished next to type (a required field)

  • Optional fields breed and location (defaulting to “unknown”) fill half of inventory

  • Lots of space between location name and right-pointing caret

  • (Small issue) batch count badge padding is off; truncates on the right when name is truncated (not otherwise)

Screenshots/videos

“Left-heavy” Desktop inventory

 

 

@Joyce Sato-Reinhold

Image uploader should be hidden when empty in readonly mode

(This is my fault, I forgot to implement it! )

[Duplicate now with table entry below]

Repro steps

  1. Create an animal or batch without uploading an image

  2. View that animal’s details page

 

Expected

  • No image section because there isn’t one and you arrive to a “readonly” view

Actual

  • “Click to upload” link that you can’t actually use until you switch to “editing…” mode

Screenshots/videos

 

 

@Sayaka Ono

Animals are deselected when returning from the task creation flow

Repro steps

  1. Select animals on inventory

  2. Click “Create a task”

  3. Click “<“ to go back

 

Expected

The animals you selected are still selected.

Actual

The animals are deselected.

Screenshots/videos

 

 

@Denis Dovganyuk

Add the possibility to filter by retired locations.

Description:

Currently when we are on the tasks page, and our farm has some retired locations the tasks that are associated with that retired location and were previously completed or abandoned, will not be displayed on the Tasks page.
So I believe if we will show those areas in the filters, with the tag( Retired) those tasks will be visible again.
Actually today while testing , Movement tasks were not displayed for some period of time, and I mentioned that in the Filters this option was also not available.
And once it was added back to filters. Those tasks became visible again.

 

@Sayaka Ono

Animal type and breed filters include types and breeds that don’t exist on the farm

Repro steps

  1. Open the animal’s filter