Compatibility testing is a software testing technique that’s performed on an application to check its compatibility on different platforms/environments.
Compatibility testing is done only when the software is considered as stable. With this testing process, developers aim to check software functionalities on various software and hardware platforms, browsers,networks, etc.
It is also called Portability testing or Configuration testing.
Types of Compatibility Testing :
1. Hardware –
It is performed to check the software’s compatibility with variant hardware configurations such as RAM, ROM, hard disk, memory cards, processor, and graphic cards.
2. Software –
This involves checking the compatibility of an application with operating systems such as Linux, Mac, Windows, and databases such as Oracle SQL server, MongoDB server, etc.
3. Browser –
Browser testing involves testing the compatibility of a website with different browsers such as Firefox, Microsoft Edge, Google Chrome etc.
4. Network –
This includes checking if an application is working fine with all networks including 3G, 4G, WiFi, etc.
5. Devices –
This test is performed to check if the software is compatible with different mobile platforms such as Android and iOS devices and devices such as bluetooth, USB, printers, scanners, etc..
6. Version Testing –
It’s important to test software in different versions. Mainly, there are two types of version testing –
i) Forward Compatibility Testing : It is a method of verifying the functioning of software and its compatibility with latest or upcoming versions of the software. It is known to be ‘forward compatible’ as well.
ii) Backward Compatibility Testing : It is a method of verifying the software’s compatibility and its functions with earlier or previous versions of the software. It is also called ‘downward compatible’.
Why should We Perform Compatibility Testing?
Once software is deployed into production, it might be accessed by multiple users on various platforms. At this stage, users may face issues and we should do one round of compatibility testing in order to detect issues earlier and fix them.
To ensure that all the features are consistently working on all platforms, compatibility testing should be done.
When to do Compatibility Testing :
Once the software is tested on the base platform and if it is found to be functionally-stable, we will go for compatibility testing.
The Compatibility Testing Process :
- Firstly, the customer will share the functional and non-functional requirements.
- After getting the non-functional requirements, the base platform will be decided by doing market research (most commonly used platform).
- Once the base platform is decided, the test engineer will perform functional testing on the base platform until the application is functionally stable.
- Later, test engineers will remotely connect to the QA1 Server where all the platforms will be available, and will do compatibility testing on each & every individual operating system.
- This flow will continue until the application becomes stable and works fine in all necessary platforms.
Importance of doing Compatibility Testing
- It ensures customer satisfaction.
- Service can be provided on multiple platforms.
- Defects can be found during the process of development.
Compatibility Testing Issues
Compatibility issues are the issues that are found in one platform and do not occur in another, i.e when the feature of an application is working fine in one operating system and not working in another operating system.
Generally, compatibility issues are UI problems and interface bugs. They are as follows :
→ Overlap Issue : When one feature overlaps with another then we consider that as an overlapping issue.
→ Scattered Issue : When the attributes in the software are not arranged in a proper order and the attributes are scattered, we call it a scattered issue.
→ Alignment Issue : If the elements in a page are not aligned in a proper format, then it is an alignment issue.
Some of the Compatibility Testing Tools :
- Lambda Test
- BrowserStack
- BrowseEMAII
- TestingBot
The test execution report for compatibility testing will be as below :
The above report describes that the XXX scenario works fine in windows, android and IOS platforms. Wherein for YYY case it’s not working for any of the mentioned platforms.
Conclusion
Compatibility testing is very important to make sure whether the software is compatible for different environments, configurations and devices. By doing compatibility testing we can guarantee the quality of the software to the end users.