medic / care-teams

For Product Management
0 stars 0 forks source link

contact_list apdex: research and development cycle 3 #104

Closed michaelkohn closed 1 month ago

michaelkohn commented 2 months ago

R&D Cycle 1 R&D Cycle 2

For cycle 3, the goal is to...

Benmuiruri commented 2 months ago

I faced some challenges running the automated baseline tests on the Tecno phone (Slack discussion).
My plan is to simulate 30 interactions (manually) and use that as my baseline for testing loading of 50 vs 25 records. That should take about 1 - 1.30 hours. The simulation will play out as follows

  1. Open app in Messages tab normally,
  2. Click on the contacts tab.
  3. Scroll to the bottom of the contacts to load all contacts
  4. Scroll back to the top and click one household
  5. Close the app and close it from background as well. 6 Open the app again and repeat steps 1-5, 30 times in the same day, then sync.

With this manual simulation, at least we will have some data to compare to see whether it is a possible performance improvement. Then I will spare a couple of hours try and figure and make the Tecno run the automated tests,

Benmuiruri commented 2 months ago

I conducted the manual testing with fetching 50 records here is the telemetry data I will use as my baseline

"contact_list:load": {
      "sum": 267504,
      "min": 2092,
      "max": 162416,
      "count": 30,
      "sumsqr": 26868328860
    },
    "contact_list:load:apdex:frustrated": {
      "sum": 162416,
      "min": 162416,
      "max": 162416,
      "count": 1,
      "sumsqr": 26378957056
    },
    "contact_list:load:apdex:satisfied": {
      "sum": 42145,
      "min": 2092,
      "max": 2939,
      "count": 17,
      "sumsqr": 106401163
    },
    "contact_list:load:apdex:tolerable": {
      "sum": 62943,
      "min": 3008,
      "max": 8022,
      "count": 12,
      "sumsqr": 382970641
    },
    "contact_list:query": {
      "sum": 528342,
      "min": 1158,
      "max": 162013,
      "count": 113,
      "sumsqr": 41920686882
    },
    "contact_list:query:apdex:frustrated": {
      "sum": 298102,
      "min": 14690,
      "max": 162013,
      "count": 3,
      "sumsqr": 41201725470
    },
    "contact_list:query:apdex:satisfied": {
      "sum": 133062,
      "min": 1158,
      "max": 2897,
      "count": 90,
      "sumsqr": 208120866
    },
    "contact_list:query:apdex:tolerable": {
      "sum": 97178,
      "min": 3471,
      "max": 7512,
      "count": 20,
      "sumsqr": 510840546
    },

I faced some technical issues deploying the branch that fetches 25 records, but I will resolve that on Monday and conduct another round of manual testing.

Benmuiruri commented 1 month ago

This research and development cycle 3 mainly focused on the development side, which included completing these tasks

Having established a baseline using the steps outlined above, I upgraded the test server to the 9006-improve-contact-list-apdex branch and tested with the reduced page_size to see whether there would be improvement to the apdex score.

The manual testing with the branch deployed in the test server showed improved performance as outlined in the final results

The manual testing was done on a Tecno Pop 7 phone with 2GB RAM