Introduction
In simple terms, Compatibility is nothing but the ability of two or more things to exist together in a shared environment. Similarly, Compatibility Testing is a type of non-functional testing that tests if the software is compatible with various screen resolutions and operating systems.
Compatibility testing can be used to check the following features of a software,
- Hardware: Compatibility testing can check if the software is compatible with various hardware like RAM, ROM, processor, hard disk, graphics card, etc.
- Operating system: We can check if the software functions similarly for all the operating systems like Linux, Windows, Mac OS, etc.
- Network: Compatibility Testing can check if the software is compatible with different bandwidths, frequencies, and network speeds.
- Browser: Since there are multiple browsers existing today, the software should be compatible with all of them and work the same way on each browser.
- Devices: Compatibility testing can also ensure the device is compatible with different external devices like printers, keyboards, Scanners, etc.
- Mobile: We can also ensure the Compatibility of the software over various mobile platforms like Android, IOS, etc.
- Software: It is also possible to check the compatibility of the software with various other existing software using Compatibility testing. It also verifies that the software is also compatible with different software versions. The software should be compatible with both the existing and upcoming versions. This is known as Version Compatibility.
Version Compatibility
Compatibility testing not only checks the compatibility of the software with other software or hardware, but it also checks the compatibility of the developed software with other versions of the software or hardware. It can be done in two ways,
- Backward Compatibility Testing: In this type of testing, we check the compatibility or behavior of the software or hardware with its older existing versions. It is very predictable testing as all the changes from the previous versions are known.
- Forward compatibility Testing: In this type of testing, we check the compatibility or behavior of the software or hardware with its newer versions. It is very unpredictable as the changes in the upcoming versions are not well known.




