AppReviewX Log in

Test the upgrade path from an older app version

Install the old build, create data, update and verify nothing breaks.

In this guide

Most of your users do not install a fresh copy. They update. A build that works on a clean install can still crash when it opens data written by an older version. The upgrade path is the test that catches this.

For the broader picture of testing an update to a live app, see how to test an update to a live app. This page is the concrete script.

What you need

  • The old build as an APK or a store version you can install (ideally the oldest version still in use, plus the previous release).
  • The new build, signed with the same key as the old one. A different signature blocks the update; see app signing and testers.
  • A device or emulator you can wipe.

The script

  1. Install the old version. Start from a clean device or after uninstalling.
  2. Create realistic data. Sign in, fill in profile and settings, create the main objects in your app, grant the permissions a real user would, add a few edge cases such as long text or empty fields.
  3. Note the state. Screenshot key screens, and write down counts (items, accounts, settings).
  4. Update in place. Install the new build over the old one without uninstalling. With adb, adb install -r app.apk replaces the app and keeps its data. Better still, update through the same channel users will use, such as a test track.
  5. Open and compare. Is the user still signed in, if that is intended? Are all items and settings there and unchanged?
  6. Use the changed parts. Run through every feature touched in the new version, with the old data.
  7. Check background work. Scheduled jobs, notifications and sync should resume without a manual restart.

What commonly breaks

  • A database change without a proper migration: crash on first launch or silent data loss. See testing a database migration without losing data.
  • Settings keys renamed or removed.
  • Saved login or tokens becoming invalid.
  • A new required permission or onboarding step shown to existing users in the wrong order.
  • Cached files in an old format.

Skip versions

Test more than one hop. Users who update rarely jump from version 3 straight to 7. Run old-oldest to newest, and also previous to newest.

Downgrade is a different question

Installing an older build over a newer one is usually blocked or loses data. It is not a supported path for most apps, so do not treat it as an upgrade test.

Write down the result

Record old version, new version, data created, and the first thing that failed, with the log if there is a crash.

Back to the Android app testing hub. Related: clean install and reinstall and the first launch checklist.

Testers with older devices and OS versions catch what your own phone does not. AppReviewX gives you private, structured feedback; 1 feedback = 1 credit. Start free.