What is ABI?
The functions within the programs that are sometimes complied by different compilers, the compliers may possibly be from different vendors. Such functions need to be integrated or assembled for the program to run. Hence the function structures and calls, registers, data types formats must be standardized. ABI – Application binary interface defines how these interfaces should be made and complied. The Application Binary Interface defines a system for compiled application programs and is also different for various forms of hardware architecture. ABI is about how the system makes calls to OS.
What is ABI portability testing?
Binary portability testing is a testing executable for portability across platforms and environments, usually for the conformation to an Application Binary Interface specification. Since the binary specification includes information specific to a selected computer processor architecture, it isn’t possible to specify a single document for all possible systems.
This binary portability testing has got to be conducted on different types of software platforms.
- Windows(x86,X86-64)
- Linux
- Mac-OS
- Java
- Solaris
- Android
ABI Portability Testing could be a non-functional testing methodology that determines the benefit or difficulty with which a software component or could also be an application can be moved from environment(specifically the OS) to a different one. Here the test results which are obtained from portability testing help find out how easily a software component developed in one environment can be utilized in any other environment. The term environment refers to moving from one software operating system to different operating system, one browser to different browser or from one database version to different database version. A measurement of portability is that, the effort that’s required to move the software component from one environment to a different environment. One unit of portability measurement is that – the cost to adopt a software to the new environment compared to the value of redevelopment of software.
Attributes of ABI testing
The different attributes to be considered for ABI testing are:
- Install-ability
- Adaptability
- Replaceability
- Compatibility or coexistence
- Install-ability
Install-ability is performed on the software that has got to be installed on a target environment (OS).
There are characteristics that are validated as a component of install-ability testing:
- Operating system requirements for installation
- Browser requirements for an application usage.
- Memory or RAM requirements.
- Installation procedure
- Uninstallation procedure.
- Installation interruption exceptions
- Pre-requisites for software installation.
- Adaptability
Adaptability testing may be a procedure to validate if the system is adaptable to every of the target environments. Adaptability is checked using common communication standards between many systems which might help in improving the adaptability of the system as a full.
Adaptability testing includes characteristics
- Hardware dependency
- Software dependency
- Standard language
- Communication of a system with one another- of a target environments.
- Dependency encapsulation
- Dependency representation across multiple systems.
- Replaceability
Replaceability is that the ability to exchange one software component with the opposite one. The component which is replacing the previous component must provide identical results like the previous component on all target environments. Ideally, it should serve the identical purpose because of the component that’s replaced. Competitive products of the identical domain are ideal candidates for replaceability because the product which is being replaced is often less expensive than an existing product of a competitor.
- Compatibility or co-existence
Compatibility is that the ability of two or more components to the prevailing one on an identical environment without adversely affecting the behavior of every other. This testing is very useful in big systems which include many subsystems as part of it. The subsystems share a typical stack area and memory. An exception occurred on one subsystem can cause the entire application to crash. Changing the existing component and upgrading to a new component, adapting a new interface to the prevailing component, are all the problems that a software systems need to face as time passes.