Version 1 by Kerry Lamb
on Jun 27, 2007 17:28.


 
compared with
Current by Kerry Lamb
on Jun 27, 2007 17:28.


 
Key
These lines were removed. This word was removed.
These lines were added. This word was added.

View page history


There are 0 changes. View first change.

 Testing to verify if computer systems or software applications/components can operate and interact smoothly.
  
 h2. Definition
  
 Interoperability is the ability of computer systems or software applications/components to operate and interact smoothly with each other. For ease of expression, in this documentation, "computer systems and software applications/components" will be referred simply as "systems." Interoperability tests are therefore used to verify operability of these systems. Interoperability testing verifies if these systems will work together in an operational environment.
  
 Usually interoperability involves exchange of information as well as the use of such information. From this viewpoint, Interoperability requires participating systems to adhere to certain standards. As such, a related testing method is conformance testing. Conformance testing verifies if the system under test conforms to a specific standard. While conformance testing aims at one single system, interoperability testing is used to ensure multiple systems can work together without problems. In general, conformance is a prerequisite for a system to interoperate with other systems. Although passing conformance testing does not guarantee interoperability, it is very difficult, if not impossible, for non-conforming systems to interoperate seamlessly. Here are some real-world examples:
 * An HTML document created by ASP or ASP.Net based web applications should display properly in a web browser that supports HTML format.
 * COM (Component Object Model) defined by Microsoft specified a binary standard. Components conforming to this standard can be used by other software which may be developed using a different programming language.
 * Devices conforming to USB standard should be able to plug into a USB port and work properly.
  
 h2. When to Start
  
 Interoperability tests are conducted when the application is considered complete or near complete. However, the design of the tests should start when the application development cycle passes its beta stage. At this point, the application in concern can be explored to guide the design of interoperability tests.
  
 Another time interoperability tests are needed is when a new hardware system is set up. At this stage, all the needed software applications/components are loaded. Interoperability tests should be performed to verify the properly working of this new hardware.
  
 h2. Examples and Ideas
  
 Interoperability testing involves many factors. We should create possible testing configurations of various systems involved. A spreadsheet will be a useful tool to list out all these possible test configurations. Once the matrix for the tests is constructed, we should then prioritize these tests based on supportability. Depending on the resources available, we may need to drop the lower priority items. Below we list the items for testing considerations:
 *Hardware Systems*
  
 Determine the hardware system requirement where the tests should be conducted. For example, the CPU speed, the physical memory size, etc.
  
 *Operating Systems*
  
 Will the tests be running on Windows 2000, Windows 2003 or other environment?
  
 *Web Servers*
  
 For ASP or ASP.Net web applications, Microsoft's IIS (Internet Information Server) will be the web server to consider for testing. We should determine if a specific version, IIS 5.0, 6.0 etc, is required for the testing. The same consideration applies to other web applications.
  
 *Database Servers*
  
 What database servers are involved in the applications? Microsoft SQL server, Informix, IBM DB2 etc. Determine the versions that need to be considered in the test configurations.
  
 *Software Components*
  
 Determine what software components are involved in the interoperability testing. Common components used in UW administrative environment are: DFDS, WhatAmI, Astra, Pubcookie, LDAP (Lightweight Directory Access Protocol) and Mango.
  
 h2. Tools and Reviews
  
 None.
  
 h2. Local Resources
  
 * Various DS-AP server information can be found at [MyEDC|https://ucsdeploy.admin.washington.edu/myedc/uwnetid/srvinfo.aspx]
 * [.NET project|https://ucsdocs.admin.washington.edu/docs/uwnetid/howtos/default.aspx] how-to page contains information on how to access DFDS, WhatAmI etc services for ASP.Net-based web applications.
 * WhatAmI, a UNIX Shell/COM object of [Person Registry service|http://www.washington.edu/computing/infra/personreg/], can be found [here|http://www.washington.edu/computing/infra/personreg/whatami/],
 * [ASTRA|http://www.washington.edu/computing/astra/] (Integrated Authorization at the University of Washington) information
 * [DFDS|https://www.washington.edu/cactools/programming/unisys/pdf/dfdsdoc.pdf] documentation
 * Pubcookie authentication system is located at [Pubcookie|http://www.washington.edu/computing/pubcookie/]
 * [Mango|https://staff.washington.edu/imf/projects/mango/index.html] information
  
 h2. Expected Costs
  
 Similar to other testing methods, typical cost include time and effort in running tests and analyzing the results. Furthermore, interoperability testing involves multiple systems. In addition to the general development cost (staffing and resources), it requires the set up effort of other systems. For third party systems, there may be cost involved to purchase these products. Finally, interoperability testing also requires knowledge of all the systems involved. Therefore, there is the cost of time spent to go through training to have a working knowledge of the systems.
  
 h2. Expected Benefits
  
 In a world of increased Internet usage, distributed systems are used more often than not. As such, interoperability of these systems becomes a crucial factor in end user satisfaction. Interoperability testing helps ensure the system in concern can work seamlessly with other systems. In the connected world, users of software applications expect that standard-based applications to work together without problems. Interoperability testing will help meet such expectations.