Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HOLD for payment 2024-07-10] Implement Flashlight tool to the testing suite #19596

Closed
mountiny opened this issue May 25, 2023 · 28 comments
Closed
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production NewFeature Something to build that is a new item. Reviewing Has a PR in review Weekly KSv2

Comments

@mountiny
Copy link
Contributor

mountiny commented May 25, 2023

Coming from this Slack proposal which was discussed in the thread.

Problem

When making changes to our codebase, we aim to identify any performance regressions before they infiltrate the production app. For this purpose, we have end-to-end (e2e) performance regression tests running in our Github actions. (These had been non-functional for a time but are now operational again!)

Recently, a significant performance regression entered the production app unnoticed. Our systems should be robust enough to intercept any form of performance regression. However, the issue slipped through because our system currently only measures one performance metric: Time to Interactive (TTI).

Other performance metrics, such as the app's UI Frames Per Second (FPS), RAM, and CPU usage, can also signal regressions. The recent performance regression would have get caught with these metrics.

Consider this scenario: You've implemented a new image component, and while testing the app, everything appears fast and efficient. The performance regression test suite shows no change in TTI, so everything seems in order. Yet, unbeknownst to you, RAM usage has tripled. Consequently, we begin to see Out of Memory (OOM) crashes on lower-end devices after your pull request is merged. These types of regressions should not go unnoticed, correct?

Solution

Our existing e2e testing suite is constructed in such a way that we can readily incorporate additional performance metrics into our test flows. I propose that we add a tool called "Flashlight" to our test suite.

Flashlight will measure the e2e flows for UI FPS, RAM, and CPU usage. We can then include these values in our test reports for comparison.

By employing this approach, we can identify a broader range of regressions. This will give us greater confidence in the updates we introduce to our production environment.

@mountiny mountiny added Daily KSv2 NewFeature Something to build that is a new item. labels May 25, 2023
@melvin-bot
Copy link

melvin-bot bot commented May 25, 2023

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Daily KSv2 labels May 25, 2023
@hannojg
Copy link
Contributor

hannojg commented May 25, 2023

👋

@lschurr
Copy link
Contributor

lschurr commented May 25, 2023

From the Slack proposal, it looks like @hayata-suenaga will be owning this internally. Is that correct? Do we need anything from BZ here?

@hayata-suenaga
Copy link
Contributor

No, we don't; sorry I forgot to remove the assignment 🙇

@hayata-suenaga
Copy link
Contributor

@hannojg what are some benefits that Flashlight provides that popular end-to-end testing tools such as detox cannot provide?

@hannojg
Copy link
Contributor

hannojg commented May 31, 2023

While detox is an automation tool to run tests, flashlight is more like a tool that you can use to get performance metrics while an app is running.
In detox you describe how things get executed and what you expect the UI to look like, while flashlight only helps with getting metrics.
We will use flashlight in our existing e2e test suite to collect performance metrics and use these as indicators to catch performance regressions.

@hayata-suenaga
Copy link
Contributor

That makes sense thank you!

@melvin-bot melvin-bot bot added the Overdue label Jun 8, 2023
@hayata-suenaga
Copy link
Contributor

changing the priority of this issue to monthly

@melvin-bot melvin-bot bot removed the Overdue label Jun 9, 2023
@hayata-suenaga hayata-suenaga added Monthly KSv2 and removed Weekly KSv2 labels Jun 9, 2023
@hayata-suenaga
Copy link
Contributor

https://www.youtube.com/watch?v=XO8O1iL4Rxg

looks promising 🤩

@melvin-bot melvin-bot bot added the Overdue label Aug 10, 2023
@hayata-suenaga
Copy link
Contributor

lower priority now

@melvin-bot melvin-bot bot removed the Overdue label Aug 14, 2023
@hannojg
Copy link
Contributor

hannojg commented Aug 15, 2023

(Still on my todo list! Probably will start with it by next week)

@melvin-bot melvin-bot bot added the Overdue label Sep 18, 2023
@hayata-suenaga
Copy link
Contributor

@hannojg how is this project going?

@melvin-bot melvin-bot bot removed the Overdue label Sep 22, 2023
@hannojg
Copy link
Contributor

hannojg commented Oct 20, 2023

Hey, sorry, this project is on HOLD as we are fixing the e2e pipeline at the minute. Project should start next week though once everything is fixed!

@melvin-bot melvin-bot bot added the Overdue label Nov 20, 2023
@melvin-bot melvin-bot bot added Weekly KSv2 Monthly KSv2 and removed Weekly KSv2 labels Jun 18, 2024
@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 Monthly KSv2 labels Jun 28, 2024
@melvin-bot melvin-bot bot changed the title Implement Flashlight tool to the testing suite [HOLD for payment 2024-07-10] Implement Flashlight tool to the testing suite Jul 3, 2024
Copy link

melvin-bot bot commented Jul 3, 2024

Reviewing label has been removed, please complete the "BugZero Checklist".

@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Jul 3, 2024
Copy link

melvin-bot bot commented Jul 3, 2024

The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.3-7 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2024-07-10. 🎊

For reference, here are some details about the assignees on this issue:

  • @hannojg does not require payment (Contractor)

Copy link

melvin-bot bot commented Jul 3, 2024

BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

  • [@hannojg] Please propose regression test steps to ensure the new feature will work correctly on production in further releases.
  • [] Link the GH issue for creating/updating the regression test once above steps have been agreed upon.

@melvin-bot melvin-bot bot added Daily KSv2 Overdue and removed Weekly KSv2 labels Jul 10, 2024
Copy link

melvin-bot bot commented Jul 10, 2024

Skipping the payment summary for this issue since all the assignees are employees or vendors. If this is incorrect, please manually add the payment summary SO.

@hayata-suenaga
Copy link
Contributor

No payment is necessary for this issue I think

@melvin-bot melvin-bot bot added Overdue and removed Overdue labels Jul 11, 2024
Copy link

melvin-bot bot commented Jul 16, 2024

@hannojg, @hayata-suenaga Eep! 4 days overdue now. Issues have feelings too...

@kirillzyusko
Copy link
Contributor

@hayata-suenaga I think the issue can be closed?..

@melvin-bot melvin-bot bot added Reviewing Has a PR in review Weekly KSv2 and removed Overdue Daily KSv2 labels Jul 18, 2024
@melvin-bot melvin-bot bot added Weekly KSv2 and removed Weekly KSv2 labels Aug 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production NewFeature Something to build that is a new item. Reviewing Has a PR in review Weekly KSv2
Projects
None yet
Development

No branches or pull requests

5 participants