What is Portability testing in software?

It refers to the process of testing the ease with which a computer software component or application can be moved from one environment to another, e.g. moving of any application from Windows 2000 to Windows XP. This is usually measured in terms of the maximum amount of effort permitted. Results are measured in terms of the time required to move the software and complete the and documentation updates.

Being able to move software from one machine platform to another either initially  or from an existing environment. It refers to system software or application software that can be recompiled for a different platform or to software that is available for two or more different platforms.

The iterative and incremental development cycle implies that portability testing is regularly performed in an iterative and incremental manner.

Portability testing must be automated if adequate regression testing is to occur.

The objectives of Portability testing are to:

  • Partially validate the system (i.e., to determine if it fulfills its portability requirements):
    • Determine if the system can be ported to each of its required environments:
      • Hardware ram and disk space
      • Hardware processor and processor speed
      • Monitor resolution
      • Operating system make and version
      • Browser make and version
    • Determine if the look and feel of the webpages is similar and functional in the various browser types and their versions.
  • Cause failures concerning the portability requirements that help identify defects that are not efficiently found during unit and integration testing.
  • Report these failures to the development teams so that the associated defects can be fixed.
  • Help determine the extent to which the system is ready for launch.
  • Help provide project status metrics (e.g., percentage of use case paths successfully tested).
  • Provide input to the defect trend analysis effort.

Portability tests include tests for:

Installability: Installability testing is conducted on the software used to install other software on its target environment.

Co-existence or compatibility: Co-existence is the software product’s capability to co-exists with other independent software products in a common environments sharing common resources.

Adaptability: Adaptability is the capability of the software product to be adapted to different specified environments without applying actions or means other than those provided for this purpose for the system.

Replaceability: Replaceability is the capability of the product to be used in place of another specified product for the same purpose in the same environment.

Examples of portability testing of an application that is to be portable across multiple:

  • Hardware platforms (including clients, servers, network connectivity devices, input devices, and output devices).
  • Operating systems (including versions and service packs).
  • Browsers (including both types and versions).