Repository navigation
Description
Problem
In the first phase of the Reassure implementation, we focused on creating performance tests to ensure that important part of the app were working properly. We looked at the LHN (SidebarLinks), ReportScreen and Composer to monitor any potential regressions in the app. We also added performance tests using measureFunction API to the methods from SidebarUtils, ReportActionsUtils and ReportUtils .
Now we can also test other parts of the application as our overall goal is to have a robust system for checking for regression issues.
Solution
As part of our solution for regression monitoring, we are actively identifying the additional components and methods to add to our tracking list. This involves adding them to Reassure tests, which will allow us to monitor their performance and catch any potential issues early on.
Here is the updated list of components and functions to export to the community:
Components:
- components/OptionsList/BaseOptionsList - [HOLD for payment 2024-04-03] [PAY March 27][$250] [Reassure] Add reassure test for BaseOptionsList #38168
- components/InvertedFlatList/BaseInvertedFlatList
- components/Attachments/AttachmentCarousel
- components/EmojiPicker/EmojiPickerMenu
- components/Composer
- pages/workspaces/WorkspacesListPage
- pages/settings/Wallet/PaymentMethodList
Functions:
- getOptions(OptionsListUtils) - [HOLD for payment 2024-03-26] [Reassure] Add measureFunction test for getOptions #38165 @OlimpiaZurek
- formatSectionsFromSearchTerm(OptionsListUtils) - [HOLD for payment 2024-04-25] [$250] [Reassure] Add measureFunction test for formatSectionsFromSearchTerm #38166
- getMemberAccountIDsForWorkspace(PolicyUtils) - [HOLD for payment 2024-03-26] [$250] [Reassure] Add measureFunction test for getMemberAccountIDsForWorkspace #38167
- getAvatarsForAccountIDs (OptionsListUtils)
- getPersonalDetailsForAccountIDs(OptionsListUtils)
- getLastMessageTextForReport(OptionsListUtils)
- createOption(OptionsListUtils)
- getActivePolicies(PolicyUtils)
- getIneligibleInvitees(PolicyUtils)
- getPersonalDetailsByIDs (PersonalDetailsUtils)
- getAccountIDsByLogins(PersonalDetailsUtils)
- getLoginsByAccountIDs(PersonalDetailsUtils)
- getNewPersonalDetailsOnyxData(PersonalDetailsUtils)
Next components for which we want to add Reassure tests:
- SignInPage
- SearchPage
- NewChatPage
- MoneyRequestConfirmationList
- TaskAssignSelectorModal
- ReportParticipantPage
- RoomInvitePage
- RoomMembersPage
- EmojiPicker
The main scope of testing above components:
- rendering lists with multiple items (we try to add as much data as possible to get a more reliable result when it comes to potential regressions)
- scrolling performance
- onPress/onSelect action list item
- interactions with text input
- pressing the button
Additionally we'll use the measureFunction API to test and track the performance of methods from:
- EmojiPickerUtils
- OptionsListUtils
- PaymentUtils
- PersonalDetailsUtils
- PolicyUtils
Our goal is to focus on functions from the above list that contain heavy computations and are frequently used in the application.
We will continuously expand this tracking list by adding new components and methods that we identify during our daily work. This proactive approach allows us to catch any performance regressions early on, maintaining a fast and efficient user experience.
If you have any suggestions for further components/scope that we want to add performance tests for, or if you have already identified methods involving heavy calculations that are worth adding to the list, please feel free to contribute.
We should prioritize the list components first
Upwork Automation - Do Not Edit
- Upwork Job URL: https://www.upwork.com/jobs/~010343afd21b08bf6e
- Upwork Job ID: 1736750358470123520
- Last Price Increase: 2023-12-18
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
melvin-bot commentedon Dec 18, 2023
Triggered auto assignment to @sakluger (
NewFeature), see https://stackoverflowteams.com/c/expensify/questions/14418#:~:text=BugZero%20process%20steps%20for%20feature%20requests for more details.melvin-bot commentedon Dec 18, 2023
Job added to Upwork: https://www.upwork.com/jobs/~010343afd21b08bf6e
melvin-bot commentedon Dec 18, 2023
Triggered auto assignment to Contributor Plus for review of internal employee PR - @s77rt (
Internal)148 remaining items
mountiny commentedon Apr 2, 2024
I will create more issues
mountiny commentedon Apr 16, 2024
We are still looking into some flakiness which is being worked on here #39913 so we would only create new tests after that is resolved.
mountiny commentedon Apr 24, 2024
Lets close this one for now and I will look into creating more issues for functions in future