Portability testing

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Portability testing is the process of testing an existing software component or application in a new environment.[1] 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 of portability[2] for correctness. The levels of correctness are usually measured by the cost to adapt the software to the new environment[3] compared to the cost of redevelopment.[1]

Use cases[edit]

When multiple subsystems share components of a larger system, portability testing can be used to help prevent propagation of errors throughout the system.[4] 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.[4] 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.[5]

Examples[edit]

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

Attributes[edit]

There are four testing attributes included in portability testing. The ISO 9126 standard breaks down these portability testing attributes[4] as follows:

  • Installability testing- Installation software is tested on its ability to effectively install the target software in the intended environment.[7][8][4][9] Installability may include tests for: space demand, checking prerequisites, installation procedures, completeness, installation interruption, customization, initialization, and/or deinstallation.[4]
  • Compatibility/ Co-existence- Testing the compatibility of multiple, unrelated software systems to co-exist in the same environment, without effecting each other’s behavior.[8][10][11] 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, an error in one could propagate to the other and in some cases cause complete failure of the entire system.[4]
  • 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.[8][13][14] The issues for adaptability also apply for replaceability, but for replaceability you may also need to test for data load-ability and/or convertibility.[4]

See also[edit]

References[edit]

  1. ^ a b Mooney, James. "Bringing Portability to the Software Process". Retrieved 29 April 2014. 
  2. ^ "Portability Testing". OPEN Process Framework Repository Organization. Retrieved 29 April 2014. 
  3. ^ Rouse, Margaret. "DEFINITION environment". Retrieved 29 April 2014. 
  4. ^ a b c d e f g h Hass, Anne Mette Jonassen (2008). Guide to advanced software testing ([Online-Ausg.] ed.). Boston: Artech House. pp. 271–272. ISBN 978-1596932852. 
  5. ^ Salonen, Ville. "Automatic Portability Testing". Retrieved 29 April 2014. 
  6. ^ a b c d Salonen, Ville (October 17, 2012). "Automatic Portability Testing". Ville Salonen. p. 11-18. Retrieved 15 May 2014. 
  7. ^ "Installability Guidelines". Retrieved 29 April 2014. 
  8. ^ a b c d "ISTQB Advanced Level Syllabi". ASTQB. Retrieved 29 April 2014. 
  9. ^ "What is Portability testing in software?". Mindstream Theme. Retrieved 29 April 2014. 
  10. ^ "What is Compatibility testing in Software testing?". Mindstream Theme on Genesis Framework. Retrieved 29 April 2014. 
  11. ^ Hass, Anne Mette Jonassen (2008). Guide to advanced software testing ([Online-Ausg.] ed.). Boston: Artech House. p. 272. ISBN 978-1596932852. 
  12. ^ Hass, Anne Mette Jonassen (2008). Guide to advanced software testing ([Online-Ausg.] ed.). Boston: Artech House. pp. 272–273. ISBN 978-1596932852. 
  13. ^ "Replaceability". Retrieved 29 April 2014. 
  14. ^ Hass, Anne Mette Jonassen (2008). Guide to advanced software testing ([Online-Ausg.] ed.). Boston: Artech House. p. 273. ISBN 978-1596932852.