Compatibility testing is a sort of non-functional software testing. It is used to ensure interoperability of the system/ web application or mobile application/website built with multifarious objects (browsers, hardware platforms, operating systems and so on). Its definition is to guarantee that a user is able to run the software on many sorts of user configurations without annoying glitches. It is testing of the app or the product built with the computing environment.
Compatibility testing comprises the next about the planned operating environment for each software product:
- Hardware compatibility
- Network/bandwidth/carrier compatibility
- Compatibility with various Operating Systems and databases
- Minor devices, systems, software
Compatibility testing helps to ascertain how well a system is carried out in a special environment which holds hardware, network, operating system and other software and so on. It tests if the application or the software product built is reconcilable with the hardware, operating system, database and other system software or not.
Let's consider kinds of compatibility testing
- Hardware: It verifies that software is compatible with various hardware configurations.
- Operating Systems: It insures that software is compatible with various operating systems (Windows, Unix, Mac OS and others).
- Software: It checks whether developed software is compatible with target software. For example: MS Word application should be compatible with other software like MS Outlook, MS Excel,Vba and others.
- Network: Evaluation of the system performance in a network with variable parameters such as bandwidth, operating speed, capacity. It also verifies application in different networks with all the parameters mentioned earlier.
- Browser: It checks compatibility of your website with various browsers like Firefox, Google Chrome, Internet Explorer and so on. Here is an example of Browser Test Compatibility
- Devices: It checks compatibility of the aimed software with multifarious devices such as USB port Devices, Printers and Scanners, other media devices and Bluetooth.
- Mobile: It means checking that software is compatible with mobile platforms such as Android, iOS and so on.
- Versions of the software: It means verifying that software app is compatible with various versions of the software. For instance: checking that Microsoft Word is compatible with Windows 7, Windows 7 SP1, Windows 10.
Kinds of version checking
There are two kinds of version checking. They are backward compatibility testing and forward compatibility testing.Backward compatibility Testing signifies verifying the behavior of the developed hardware/software with the older versions of the hardware/software. Forward compatibility Testing verifies the behavior of the developed hardware/software with the newer versions of the hardware/software.
When a QA team runs a compatibility test, the software is tested on many hardware systems under different conditions. For instance, the QA team will test your software on:
- Different browsers like Firefox, Chrome, Internet Explorer and Safari
- Operating Systems, including different versions of Windows, Chrome, iOS and Linux
- Various levels of computing capacity
- Hardware peripherals
- Multiple versions of system software
Let's consider five things you ought to know about compatibility testing:
#1 - Compatibility testing is required
You need plan and checklist for carrying out the compatibility testing. It adds a test cycle at the end of the project (or extra scope to the sprints), and requires time, money and resources. It indicates the best ability for correct estimation if the products work fluently in the targeted operating environments. The last means that:
- The software is able to set up and function on numerous environments
- Discordance in screen size, resolution, and operating systems do not corrupt the software
- The minimum specs are required for running the software test
- Software is tested against varied hardware interfaces such as graphics cards, headphones, different ram types, etc.
#2 - Compatibility is the last thing that project teams think about
Scrambling to deliver NFRs close to the delivery date is a common and inadmissible view-point.You ought to consider in advance the compatibility requirements that are required for confirming these demands. So you are able to ensure that your scope is tuned to deliver a product that works essentially with the targeted hardware, networks, peripheral systems.
#3 You can build Compatibility tests into upstream Test Cycles or Sprints
In case you're using scrum, it is a good practice to build pertinent compatibility tests into the testing scope for the sprints. This also contemplates you should plan in advance and set up pertinent infrastructure that is necessary to aid in-sprint compatibility testing.
For instance, if you work on a project that delivers redesigned UI for your company's website using existent infrastructure, your scope for compatibility testing can be the following:
- Browser compatibility, OS compatibility and User experience - to verify that the web page is ‘responsive', and transmits exactly and sequentially across a number of browsers (e.g. IE, Safari, Chrome and Firefox - on Mac, Windows, iOS and Android).
- Hardware and network compatibility - to verify that targeted hardware and network that the web pages should run on are able to handle the processing required.
- Peripheral compatibility of systems - to verify that the recent pages can coact with existing backend infrastructure rationally.
Now let's think about the resolve for a scrum team that delivers the web pages. It's quite possible that when the sprints begin, you are able to arrange a test environment that gives an opportunity to plan all the compatibility tests pertinent to the sprint's scope.So depending on your project, organization, time, cost and other limitations, you are able to choose building compatibility testing into regular test efforts, or make it a stand-alone cycle. Or even both.
#4 It is unpractical and unnecessary to aim absolute coverageA good practice is to run a compatibility checking when your website loads on the customer's browser. You should optimize the strategy to hold only versions that account for 98% of the customer base. Support systems as a help desk to manage the unsupported 2% to 5% at a fraction of the cost and time you to require continue supporting older configurations.
#5 Forward and Backward compatibility are attainable, but not 100%When it comes to the compatibility, plan to support the past and a couple of next generations of the computing environment. And accommodate the testing efforts towards just this aim. There is no need in supporting less than 5% of the customers that still use OS 7, 6 or 5.
Tools that are used in compatibility testingBrowserStack - Browser Compatibility Testing:
This tool helps to check your application in different browsers.Secure Platform - Hardware Compatibility tool
This one holds requisite drivers for a specific hardware platform and it guarantees information on the tool to check for CD burning cycle with CD burning tools.Virtual Desktops - Operating System Compatibility:
This tool is used for running the apps on a lot of operating systems as virtual machines. Many systems can be connected and compare the results.
The most significant use of compatibility testing is to guarantee whether developed software works under multiple configurations (as stated in requirements documentation). This testing is necessary to check whether the application is compatible with client's environment.