DostEducation / RP_IVR_callback

This repository contains IVR callback handling
GNU Affero General Public License v3.0
2 stars 1 forks source link

[FEATURE] Test the entire application functionality after Flask upgradation #67

Closed Sachinbisht27 closed 8 months ago

Sachinbisht27 commented 9 months ago

Is your feature request related to a problem? Please describe. We are upgrading the Flask package from Flask 1.2.2 to Flask 3.0.0. So, we need to do proper testing for all the functionalities thoroughly in the entire application.

Describe the solution you'd like

Describe alternatives you've considered NA

Additional context

Acceptance Criteria Add acceptance criteria here.

Documentation Add whatever documentation will be required here.

Sachinbisht27 commented 8 months ago

Found the following issues while testing the entire Flask upgrade on a staging server

Closing the issue as completed and released on production.

Satendra-SR commented 3 months ago

Details on over-effort spending in this issue:

In this issue, we encountered with following technical challenges, which we didn't expect earlier and came while deploying on staging and running the integrated testing.

  1. Tested the end-to-end functionality on local and staging (overall testing before releasing to production) - 4 hours
  2. Flask dependency for Cloud function - 6 hours
    • As we were not explicitly installing functions-framework earlier, GCP was using a default version, which was supporting the earlier Flask version on the GCP cloud function.
    • Had to debug and deploy multiple times to find the root cause
    • Fixed and deployed on staging for the final round of testing.
    • https://github.com/DostEducation/RP_IVR_callback/pull/72
  3. Faced issues while deploying this on production - had to revert changes, made some fixes and redeploy it on production - Attaching the Pull request for the same - Release 12th Jan 2024 - 3 hours

Summary:

Satendra-SR commented 3 months ago

Explanation in extra hours -

  1. We estimated it as 4 hours as it was a regular testing activity and we have done it in the past as well. To start testing, we deployed the changes on staging. During the deployment, we faced an unexpected issue in the deployment process and the build was failing. This became a bottleneck for testing.
  2. We spend some time to debug the issue and understand the root cauase. I figured it was becuase of a package at GCP end. This was not possible to anticipate in our local testing as it was GCP specific issue.
  3. I made the fixes for this issue. The debugging and fixing took additional 6 hours. The solution trail through PR in the Github was added on the same day.
  4. We then started the testing, and as estimated, we were able to finish it within 4 hours.
  5. For the production release, we didn't expected any additional effort as it is automated process. However we encountered some new errors during production release that didn't seems relate to the previous errors.
  6. We took 3 hours to rectify the issue. It was a data caching issue specific to production environment configurations. This couldnot have been caught on staging or on local environment. The trail of the fixes were added in the Github pull requests.
  7. Here also, we were tracking these hours regularly on the same day in ColoredCow timesheet but missed updating it in GitHub. I verified the same dates entry in the CC timesheet via Google sheet history.