Skip to content

[Performance] Implement more reassure tests  #33229

Closed

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

Activity

  1. added
    InternalRequires API changes or must be handled by Expensify staff
    NewFeatureSomething to build that is a new item.
    on Dec 18, 2023
  2. self-assigned this
    on Dec 18, 2023
  3. melvin-bot commented on Dec 18, 2023

    @melvin-bot
  4. melvin-bot commented on Dec 18, 2023

    @melvin-bot
  5. melvin-bot commented on Dec 18, 2023

    @melvin-bot

    Triggered auto assignment to Contributor Plus for review of internal employee PR - @s77rt (Internal)

  6. 148 remaining items

  7. mountiny commented on Apr 2, 2024

    @mountiny
    ContributorAuthor

    I will create more issues

  8. mountiny commented on Apr 16, 2024

    @mountiny
    ContributorAuthor

    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.

  9. mountiny commented on Apr 24, 2024

    @mountiny
    ContributorAuthor

    Lets close this one for now and I will look into creating more issues for functions in future

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions