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?
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.
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.
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) |
---|---|---|
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:
Animal Creation:
Creating a single animal.
Creating a batch of animals.
Animal Management:
Editing animal details (e.g., name, breed, health status, etc.).
Deleting animals (individual and batch).
Data Validation and Interactions:
Ensure accurate data entry and validation across forms.
Verify that updates are correctly reflected in the UI
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).
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
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).
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
Task Display:
Confirm that the Tasks page displays all tasks related to the user’s farm.
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.
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
Filter Accuracy:
Test various filter combinations to ensure they return the correct results.
KPI Animal Card Updates:
Confirm that KPI animal cards update accurately as new animals are added to the farm.
KPI Card Filtering:
Verify that clicking a KPI animal card correctly filters the results displayed in the animal table.
Account Permissions
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.
Farm Worker Account Restrictions:
Ensure that Farm Worker accounts cannot:
Create movement tasks.
Delete or create new animals.
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
Completing Tasks:
During Movement Task creation, verify that users can assign the task to themselves and mark it as completed.
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.
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.
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? |
---|---|---|---|
E.g.: @Anto Sgarlatta | E.g.: The “+” add button is too large | E.g.: Repro steps
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
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
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 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
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
Expected There is now an expense Actual No such expense Screenshots/videos | ?: Actually had the same opinion. @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
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
Expected A way to select all animals or deselect all animals Actual Not present
Screenshots/videos | Will look into this |
@Duncan Brain | Accidental click outside checkbox goes to details view and loses check progress | Repro steps
Expected Checkbox clicked or nothing happens Actual Redirected to animal details Screenshots/videos | @Joyce Sato-Reinhold OMG YES I WAS JUST MAKING A VIDEO
@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
Expected
Actual
Screenshots/videos
|
|
@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
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
| @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
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
Expected Given that the uploaded content can have various formats, the options displayed should be: Actual The options displayed are: Screenshots/videos
|
|
@Joyce Sato-Reinhold | “Mobile” view extends to 1200px for all animal inventory-related views
Mobile view has:
IMO it is not appropriate for 800px-1200px. | Repro steps
Expected
Actual
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). |
@Larisse Cavalcante | Support: attachment window defaults to "image files" only. | Repro steps
Expected The window should display files of all supported formats by default. Actual The window displays only image files by default. Screenshots/videos
|
|
@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
Expected
Actual
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
Expected
Actual
Screenshots/videos “Left-heavy” Desktop inventory
|
|
@Joyce Sato-Reinhold | Image uploader should be hidden when empty in readonly mode [Duplicate now with table entry below] | Repro steps
Expected
Actual
Screenshots/videos
|
|
@Sayaka Ono | Animals are deselected when returning from the task creation flow | Repro steps
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. |
|
@Sayaka Ono | Animal type and breed filters include types and breeds that don’t exist on the farm | Repro steps
|