When a platform like the iPhone comes out with a new version of their operating system, there are several steps developers and software testing engineers need to take in order to make sure an existing software is still compatible. After all, you’ve already built up your user audience with a working product– you don’t want your software to suddenly stop working! An OS update can also represent new opportunities your software can use to its advantage.

It’s important to make sure you approach all these changes in the right order, though. Without planning, the amount of changes your software undergoes can end up a buggy mess!

Step 1: Make Sure Software Still Works with the New OS

Any time a piece of software is changed, whether on its own or in conjunction with other software it references to work (like an OS), you need to make sure the change hasn’t broken any pre-existing code. That’s why the first necessary test when updating your software for a new OS is to make sure the existing software still works!

Does your software’s performance still hold up on the new OS? Are there any parts of the new OS that are no longer backwards compatible? By confirming your current software version works properly on the new operating system, you not only address new bugs from the update in a timely manner, you also help to eliminate possible causes of bugs later in the process, which will save you time on testing.

Step 2: Take Advantage of the New OS Capabilities

Here’s the fun part of updating your software for a new version of OS. You get to add new features! Operating system updates often mean bigger and better capabilities. Go over the changes made to the OS with the new version update and see what these changes could allow you to do in order to improve your own software’s user experience.

Step 3: Perform Regression Testing

Now that you’ve added new features or improvements to your software’s coding, it’s time to go back to the testing lab. Just like the OS update meant you had to see if old, working parts of your software’s code were now malfunctioning, this additional code to improve your software also needs to be tested. It’s time to perform regression testing.

This step is why it’s essential to perform software testing after the OS update but before adding any changes if your own. Without doing that first round of testing first, you will have much more trouble identifying why or where your code is breaking. Is the error caused by a change to the OS, or to the software itself? Performing that first step helps isolate any new errors at this stage of testing to those caused by the software update and not the new OS.

Step 4: Run Compatibility Tests for Old Versions of the OS

Once you have your new and improved software working on the new and improved OS, it’s time to make sure you haven’t accidentally created a product that leaves out your existing user base– those using the software on previous versions of the OS.

Especially when it comes to mobile operating systems, a large percentage of your users will be using your app on a version of the device’s OS that is not only old, but potentially ancient in the world of phone updates! Up to 40% of the iPhone’s active user base, for example, currently uses an iPhone 6 device or an even older device. The iPhone 6 was originally released back in 2016 with iOS 8.0, and as of July 2018, can run up to iOS 11.4.1, and is currently the oldest iPhone device still supported by Apple. The iPhone 5 and 5s stopped receiving support after the release of iOS 11. As of August 2018, iOS 12 has been released into beta.

With two-fifths of your user base potentially using similarly ancient OS, making sure your software remains backwards compatible or that older versions of your software remain available to those who need it is an essential final step to the new OS software update process.