-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Comments
Triggered auto assignment to @lschurr ( |
👋 |
From the Slack proposal, it looks like @hayata-suenaga will be owning this internally. Is that correct? Do we need anything from BZ here? |
No, we don't; sorry I forgot to remove the assignment 🙇 |
@hannojg what are some benefits that Flashlight provides that popular end-to-end testing tools such as detox cannot provide? |
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. |
That makes sense thank you! |
changing the priority of this issue to monthly |
https://www.youtube.com/watch?v=XO8O1iL4Rxg looks promising 🤩 |
lower priority now |
(Still on my todo list! Probably will start with it by next week) |
@hannojg how is this project going? |
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! |
|
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:
|
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:
|
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. |
No payment is necessary for this issue I think |
@hannojg, @hayata-suenaga Eep! 4 days overdue now. Issues have feelings too... |
@hayata-suenaga I think the issue can be closed?.. |
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.
The text was updated successfully, but these errors were encountered: