September 17, 2009

Upgrade Testing vs. Installation Testing

Test Management
Application Lifecycle Management

What Is Upgrade Testing?

Upgrade testing involves testing an upgrade to existing software. It's typically done to test that an upgrade can be installed on an existing user's machine. 

What Is Installation Testing?

Installation testing involves testing a software release on a new user's machine. 

Upgrade Testing vs. Installation Testing

Upgrade testing and installation testing are both important. If you only test an upgrade — without doing installation testing — your software might work for existing users, but fail to work for new users. 

Developers might test upgrades on their machines — where they already have an older version of the software installed.

An Upgrade Testing Example

For example, I once worked with a developer who was troubleshooting a defect I found. 

After failing to duplicate it, he said, "It works fine on my machine."

He was right. It did work fine. And he wasn't trying to avoid solving the problem. 

But after working on it for some time, we discovered he had an older version installed that included a library file that was missing from the new version. 

So, the program functioned properly when he ran it. But on a new install, it would fail.

Why You Need Both Types of Testing

This example shows the importance of testing from two standpoints:

  • The existing user
  • The new user

Upgrade Testing Is For Existing Users

Testing for existing users is important. So, for upgrade testing, you should test on a system that has a previous version installed.

You should also test on systems where the software was previously installed but has since been removed. 

This ensures that all current users can successfully use the new version without issue.

Installation Testing Is For New Users

Testing for new users is equally important. So for installation testing, you should use a fresh machine where the software has never been installed before.

This will catch any issues — such as the one in the example above. 

Test Everything Efficiently

Upgrade testing and installation testing are important. And so are all of the other tests you run in each release.

That's why it's important to effectively manage your testing efforts. And to do that, you need a test plan — and test case management.

How to Succeed at Test Case Management