Portability Testing
   HOME

TheInfoList



OR:

Portability testing is the process of determining the degree of ease or difficulty to which a
software component Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a give ...
or application can be effectively and efficiently transferred from one hardware, software or other operational or usage environment to another. The test results, defined by the individual needs of the system, are some measurement of how easily the component or application will be to integrate into the environment and these results will then be compared to the software system's
non-functional requirement In systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. They are contrasted with functi ...
of portability for correctness. The levels of correctness are usually measured by the
cost In production, research, retail, and accounting, a cost is the value of money that has been used up to produce something or deliver a service, and hence is not available for use anymore. In business, the cost may be one of acquisition, in which ...
to adapt the software to the new environment compared to the cost of redevelopment.


Use cases

When multiple subsystems share components of a larger system, portability testing can be used to help prevent propagation of errors throughout the system. Changing or upgrading to a newer system, adapting to a new interface or interfacing a new system in an existing environment are all problems that software systems with longevity will face sooner or later and properly testing the environment for portability can save on overall cost throughout the life of the system. A general guideline for portability testing is that it should be done if the software system is designed to move from one hardware platform, operating system, or web browser to another.


Examples

* Software designed to run on Macintosh OS X and Microsoft Windows operating systems. * Applications developed to be compatible with Google Android and Apple iOS phones. * Video Games or other graphic intensive software intended to work with OpenGL and DirectX API's. * Software that should be compatible with Google Chrome and Mozilla Firefox browsers.


Attributes

There are four testing attributes included in portability testing. The ISO 9126 (1991) standard breaks down portability testing attributes as Installability, Compatibility, Adaptability and Replaceability. The ISO 29119 (2013) standard describes Portability with the attributes of Compatibility, Installability, Interoperability and Localization testing. * Adaptability testing- Functional test to verify that the software can perform all of its intended behaviors in each of the target environments. Using communication standards, such as HTML can help with adaptability. Adaptability may include testing in the following areas: hardware dependency, software dependency, representation dependency, standard language conformance, dependency encapsulation and/or text convertibility. * Compatibility/ Co-existence- Testing the compatibility of multiple, unrelated software systems to co-exist in the same environment, without effecting each other’s behavior. This is a growing issue with advanced systems, increased functionality and interconnections between systems and subsystems who share components. Components that fail this requirement could have profound effects on a system. For example, if 2 sub-systems share memory or a
stack Stack may refer to: Places * Stack Island, an island game reserve in Bass Strait, south-eastern Australia, in Tasmania’s Hunter Island Group * Blue Stack Mountains, in Co. Donegal, Ireland People * Stack (surname) (including a list of people ...
, an error in one could propagate to the other and in some cases cause complete failure of the entire system. * Installability testing- Installation software is tested on its ability to effectively install the target software in the intended environment. Installability may include tests for: space demand, checking prerequisites, installation procedures, completeness, installation interruption, customization, initialization, and/or deinstallation. *
Interoperability Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader defi ...
testing- Testing the capability to communicate, execute programs, or transfer data among various functional units in a manner that requires the user to have little or no knowledge of the unique characteristics of those units. *
Localization testing Localization or localisation may refer to: Biology * Localization of function, locating psychological functions in the brain or nervous system; see Linguistic intelligence * Localization of sensation, ability to tell what part of the body is aff ...
- Localization is also known as internationalization. Its purpose is to test if the software can be understood in using the local language where the software is being used. * Replaceability testing- Testing the capability of one software component to be replaced by another software component within a single system. The system, in regards to the replaced component, should produce the same results that it produced before the replacement. The issues for adaptability also apply for replaceability, but for replaceability you may also need to test for data load-ability and/or convertibility.


See also

*
Porting In software engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program (meant for such execution) was originally desi ...
*
Software portability A computer program is said to be portable if there is very low effort required to make it run on different platforms. The pre-requirement for portability is the generalized abstraction between the application logic and system interfaces. When ...
*
Software system A software system is a system of intercommunicating components based on software forming part of a computer system (a combination of hardware and software). It "consists of a number of separate programs, configuration files, which are used to se ...
*
Software testing Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to apprecia ...
*
Software testability Software testability is the degree to which a software artifact (i.e. a software system, software module, requirements- or design document) supports testing in a given test context. If the testability of the software artifact is high, then finding ...
* Application portability * Operational Acceptance


References

Software testing {{Soft-eng-stub