Skip to content

[Performance] Implement more reassure tests  #33229

Description

@mountiny

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:

Functions:

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

Labels

EngineeringInternalRequires API changes or must be handled by Expensify staffNewFeatureSomething to build that is a new item.PlanningChanges still in the thought processReviewingHas a PR in reviewWeeklyKSv2

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions