Chapter 19. Testing in a Multiplatform Environment

Software designed to run on more than one platform must undergo two tests. The first test is to validate that the software performs its intended functions. This testing involves the seven-step testing process described in Part Three of this book. The second test is that the software will perform in the same manner regardless of the platform on which it is executed. This chapter focuses on the second test process.

This chapter provides a six-task process for testing in a multiplatform environment. The test process presumes that the platforms for which the software must execute are known. The process also presumes that the software has already been tested and that testers have validated that it performs its intended functions correctly.

Overview

Each platform on which software is designed to execute operationally may have slightly different characteristics. These distinct characteristics include various operating systems, hardware configurations, operating instructions, and supporting software, such as database management systems. These different characteristics may or may not cause the software to perform its intended functions differently. The objective of testing is to determine whether the software will produce the correct results on various platforms.

Objective

The objective of this six-task process is to validate that a single software package executed on different platforms will produce the same results. The test process is basically the same as was used in parallel testing. Software must operate on multiple platforms with the individual results being compared to ensure consistency in output. The testing normally requires a test lab that includes the predetermined platforms.

Concerns

The following are the three major concerns for testing in a multiplatform environment:

  1. The platforms in the test lab will not be representative of the platforms in the real world. This can happen because the platform in the test lab may not be upgraded to current specifications, or it may be configured in a manner that is not representative of the typical configuration for that platform.

  2. The software will be expected to work on platforms not included in the test labs. By implication, users may expect the software to work on a platform that has not been included in testing.

  3. The supporting software on various platforms is not comprehensive. User platforms may contain software that is not the same as that used on the platform in the test lab (for example, a different database management system).

Background on Testing in a Multiplatform Environment

Testers face three major challenges when testing in a multiplatform environment. These challenges are:

  1. Determining the type of platform that users operate for the processing

  2. Determining which software packages are available to those users

  3. Determining the type of processing users will perform in a multiplatform environment

Testing in a multiplatform environment is similar to exhaustive testing—neither is practical nor cost effective. Therefore, testers must make judgments on the most likely platforms to be used, the most likely software packages possessed by the users, and the most likely actions users will perform on a multiplatform environment.

Some of these decisions will be made based on constraints limiting the tester’s capabilities. For example, the test lab may have only a limited number of platforms available; therefore, testers cannot test on platforms to which they do not have access. The developers of the system may state that users of the system are required to have X number of software packages, which are named in the software system documentation. Therefore, testers have to be concerned only with that limited number of software packages. Finally, the developers of the software may define the list of uses for which the software can perform and testers only need to test for those defined number of uses.

In developing a test plan for testing in a multiplatform environment, the testers need to make decisions regarding the three challenges previously described. If a test plan is viewed as a contract, then in the test plan the testers can state:

  • Testing will occur on these platforms.

  • Testing will validate that these software packages are useable in processing in a multiplatform environment.

  • Only a defined number of uses will be tested.

Although this test plan definition protects the tester from not testing undefined conditions, it does not necessarily reduce the software application risk. Therefore, testers should in addition to test planning, attempt to identify the risks associated with not testing on certain platforms, certain packages, or certain application processes. This information can be helpful in determining whether additional testing should be performed.

Workbench

Figure 19-1 illustrates the workbench for testing in a multiplatform environment. This figure shows that six tasks are needed to effectively test in a multiplatform environment. Most tasks assume that the platforms will be identified in detail, and that the software to run on the different platforms has been previously validated as being correct. Five of the six tasks are designed to determine what tests are needed to validate the correct functioning of the identified platforms, and the sixth task executes those tests.

Workbench for testing in a multiplatform environment.

Figure 19-1. Workbench for testing in a multiplatform environment.

Input

The two inputs for testing in a multiplatform environment are as follows:

  1. List of platforms on which software must execute. The main requirement for multiplatform testing is a list of the platforms. These platforms must be described in detail as input to testing or described in detail prior to commencing testing.

  2. Software to be tested. The software package(s) to be tested is input to the test process. This software must be validated that it performs its functions correctly prior to multiplatform testing. If this has not been done, then the software should be subject to the seven-step testing process, described in Part Three of this book, prior to commencing multiplatform testing.

Do Procedures

The following six tasks should be performed to validate that software performs consistently in a multiplatform environment:

  1. Define platform configuration concerns.

  2. List needed platform configurations.

  3. Assess test room configurations.

  4. List structural components affected by the platform(s).

  5. List interfaces platform affects.

  6. Execute the tests.

Task 1: Define Platform Configuration Concerns

The first task in testing a multiplatform environment is to develop a list of potential concerns about that environment. The testing that follows will then determine the validity of those concerns. The recommended process for identifying concerns is error guessing.

Error guessing attempts to anticipate problems within the software package and its operation. The proverb “an ounce of prevention is worth a pound of cure” speaks to the error-guessing process. Studies by the IBM Corporation indicate that the same types of software defects occur with the same frequency from project to project. Just as medicine can predict that X percent of the 55-year-old age group will die of a heart attack during the year, so the software test experts can predict the types of defects that will occur in software.

This means that the types of problems that you encounter in one will occur in most other similar tests. The problem may surface in a slightly different way, but it will be the same basic problem. For example, the problem of data exceeding its allocated field size will appear sooner or later in almost all software applications. If you anticipate it and decide what you will do when it happens and how the software will react to the situation, successful use of the software will not be threatened.

Error guessing requires the following two prerequisites:

  1. The error-guessing group understands how the platform works.

  2. The error-guessing group knows how the software functions.

If the group that tested the software function is the same group doing the error guessing, they will know how the software works. Knowing the platforms may require the addition of platform-knowledgeable people to the error-guessing team.

Although it is possible to perform error guessing with one person, it is basically a brainstorming process. Thus, it is always better when two or more people participate. This is because of the powerful synergistic effect of a group. Synergism means that one individual’s comments spark another individual to think about something he or she might not have thought about without the other individual present.

Error guessing requires a recorder to write down the ideas developed by the group. Each member of the group is allowed time to express what he or she believes might go wrong with the software. Until every individual has had an initial opportunity to list problems, there can be no criticism or comment on what other individuals have stated. After the initial go-round, the recorder reads back these items one by one. At this point, open discussion—that is, interactive discussion—commences. One group rule of this discussion is that there can be no criticism of errors raised or the individual who raised them. All comments must be stated positively. If an individual believes that the type of error or condition raised is not realistic, the ensuing discussion should be based on the probability of occurrence rather than the point’s validity. If criticism is permitted during brainstorming, communication will cease and much of the value of the process will be lost.

The error-guessing process is normally very brief. In some instances, it lasts no longer than 15 minutes, and only rarely would it exceed 1 hour. However, the process does require total concentration. Therefore, the group should be removed from normal business interruptions during this exercise.

The end product of error guessing is a list of potential error conditions for additional investigation and testing. It is not up to the error-guessing team to determine what happens when these error conditions occur. They need to be familiar enough with the software to know whether there may be a problem, but they do not need to know all of the solutions. This will be done in future testing steps.

Error guessing is meant to be a relatively unstructured, unorganized process. Generally, sufficient ideas are generated to prepare a reasonably comprehensive list of potential problems—particularly when performed by two or more people. The following is a short list of questions to brainstorm during error guessing:

Does the software have any unusual transactions?

What are the most common errors that you are now making?

What would happen to processing if you forgot to perform one of the steps?

What would happen if you did not enter all of the data in an input transaction?

Will you be able to determine who performed what computer operation in case questions arise regarding the correctness of operations?

If a diagnostic message is produced by the computer, how will you know it has been properly corrected?

How will you know the person operating the computer knows how to operate it correctly?

These questions are designed to spark ideas about what might go wrong within a platform. The questions are not intended to be complete, nor do they need to be answered precisely. Their sole purpose is to steer you into areas for further exploration regarding potential errors.

The concerns should be listed on Work Paper 19-1. Part 1 of the Work Paper provides space for listing multiplatform testing concerns, as well as any recommended test to address those concerns to determine whether they are valid or have already been handled by the software and/or platform.

Table 19-1. Multiplatform Concerns and Configurations

Field Requirements

FIELD

INSTRUCTIONS FOR ENTERING DATA

Concern

A narrative description of the concerns that need to be addressed in multiplatform testing.

Recommended Test to Address Concern

This field should include any tests that the group developing the concerns believes could be made to determine the validity of that concern.

Needed Test Platform

Detailed description of the platform on which the software will be executed. The description should include at a minimum:

  • Hardware vendor

  • Memory size

  • Hard disk size

  • Peripheral equipment

  • Operating system

  • Supporting software

Available Test Platform

This column should indicate whether the needed test platform is available, and if not, what actions will be taken for test purposes.

Part 1 Multiplatform Testing Concerns

Concern

Recommended Test to Address Concern

     
     

Part 2 Needed versus Available Platform Configurations

Needed Test Platform

Available Test Platform

Acceptable

 
   

Yes

No

     
     

Task 2: List Needed Platform Configurations

The test must identify the platforms that must be tested. Ideally, this list of platforms and detailed description of the platforms would be input to the test process. If so, this step need only determine if those platforms are available in the test lab.

The needed platforms are either those that will be advertised as acceptable for using the software, or platforms within an organization on which the software will be executed. The platforms need to be described in detail. This information should be recorded on Part 2 of Work Paper 19-1. Note that the description of the Work Paper will list some of the items needed about each platform.

Testers must then determine whether those platforms are available for testing. If the exact platform is not available, the testers need to determine whether an existing platform is acceptable. For example, if an available platform did not contain some feature or configuration, would the existing platform provide a reasonable test? If so, that platform can be used for testing. If the needed platform is not available, the testers must make a determination of whether to obtain such a platform or accept the risk that the software will be released without testing that specific platform.

The determination of whether an available test platform meets the needed test platform should be recorded on Part 2 of Work Paper 19-1. If the platform is not available, testers should record the action they will take.

Task 3: Assess Test Room Configurations

The testers need to determine whether the platforms available in the test room are acceptable for testing. This involves the following two steps:

  1. For each needed platform listed on Work Paper 19-1, document the platform to be used for testing, if any is available, on the Work Paper.

  2. Make a determination as to whether the available platform is acceptable for testing. Indicate your decision on Work Paper 19-1. If the platform is not acceptable, note any actions to be taken.

Task 4: List Structural Components Affected by the Platform(s)

Structural testing deals with the architecture of the system. Architecture describes how the system is put together. It is used in the same context that an architect designs a building. Some of the architectural problems that could affect computer processing include:

  • Internal limits on the number of events that can occur in a transaction (for example, the number of products that can be included on an invoice).

  • Maximum size of fields (for example, the quantity is only two positions in length, making it impossible to enter an order for more than 99 items).

  • Disk storage limitations (for example, you are permitted to have only X customers).

  • Performance limitations (for example, the time to process transactions jumps significantly when you enter more than X transactions).

These are but a few of the potential architectural limitations placed on computer software. You must remember that each software system is finite and has built-in limitations. Sometimes the vendor tells you these limitations, sometimes you can find them if you search through the documentation, and sometimes you won’t know them until they occur. However, all limits can be determined through structural testing. The questions at hand are: Do you feel competent to do it? and Is it worth doing? The answers to these questions depend on the critical nature of the software and what would happen if your business was unable to continue computer processing because you reached the program limitation.

Structural testing also relates to file-handling problems. Such file problems include incorrect processing when the last record on file is updated or adding a record that will become the first record on a file. In the personal computer software market, literally thousands of people are writing software. Some have good ideas but are not experienced programmers; thus, they fall into the age-old traps of file manipulation problems.

As an aid in developing structural test conditions, the more common structural problem areas are listed in the following text. You can use this checklist either to determine which types of structural test conditions you want to prepare or to check the completeness of the structural conditions. Either way, it may spark you to add some additional test conditions to verify that the structure of your software performs correctly.

Have test conditions for each of the following transaction processing events been prepared:

  • Adding a record before the first record on a file

  • Adding a record after the last record on a file.

  • Deleting the first record on a file

  • Deleting the last record on a file

  • Changing information on the first record on a file

  • Changing information on the last record on a file

  • Causing the program to terminate by predetermined conditions

  • Accumulating a field larger than the mathematical accumulators can hold

  • Verifying that page counters work

  • Verifying that page spacing works

  • Entering invalid transaction types

  • Entering invalid values in fields (for example, put alphabetic characters in a numeric field)

  • Processing unusual conditions (of all types)

  • Testing major error conditions

  • Testing for out-of-control conditions (for example, whether the value of the records in the batch do not equal the entered batch total)

  • Simulating a hardware failure that forces recovery procedures to be used

  • Demonstrating recovery procedures

  • Entering more records than disk storage can hold

  • Entering more values than internal tables can hold

  • Entering incorrect codes and transaction types

  • Entering unreasonable values for transaction processing

  • Violating software rules not violated by preceding structural test conditions

Although some functional processing may be affected by various platforms, it is normally the structural component of the function that is affected. The test team needs to identify the structural components of functions that will be affected by the platform. They may want to use the error-guessing technique described in Task 1 to identify these structural components.

The potentially affected structural component should be documented on Work Paper 19-2. The Work Paper lists the structural component, then each platform that may affect that structural component, as well as how the structural component may be affected by the platform. The testers should then determine which tests are needed to validate that the structural component will or will not be affected by a platform.

Table 19-2. Test to Validate Platform-Affected Software Structure

Field Requirements

FIELD

INSTRUCTIONS FOR ENTERING DATA

Structural Component

The name or identifier of the structural component affected by a platform.

Platform

The specific platform or platforms that may affect the correct processing of the identified structural component.

How Affected

A narrative explanation of how the platform may affect the structural component should be documented.

Test(s) to Validate Structural Component

The test group should recommend one or more tests to validate whether the platform affects the structural component. Note that these tests may be different for different platforms.

Software Structure Affected by Platform

Test(s) to Validate Structural Component

Structural Component

Platform

How Affected

    
    
    
    
    
    
    

Task 5: List Interfaces the Platform Affects

Systems tend to fail at interface points—that is, the points at which control is passed from one processing component to another (for example, when data is retrieved from a database, output reports are printed or transmitted, or a person interrupts processing to make a correction). The purpose of this task is to identify those interfaces so that they can be tested. Note that some of these interfaces will also overlap the software structural components affected by the platform. If the test has been included in the structural component task Work Paper, it need not be duplicated in the test recommended in this task.

This is a two-part task. The first part is to identify the interfaces within the software systems. These interfaces should be readily identifiable in the software’s user manual. The second part is to determine whether those interfaces could be affected by the specific platform on which the software executes. This is a judgmental exercise. However, if there is a doubt in the tester’s mind, he or she should test that interface on all of the platforms that might affect that interface. The Work Paper should identify the platform on which the interface may be affected, the interface itself, the interface both to and from the potential effect of the platform, and the test(s) that should be undertaken to validate whether the interface is impacted by the platform. Note that this same test for a single interface may have to be performed on multiple platforms. Document the results of this task on Work Paper 19-3.

Table 19-3. Test(s) to Validate Platform-Affected Interfaces

Field Requirements

FIELD

INSTRUCTIONS FOR ENTERING DATA

Software Package

The name of the software package that is being tested.

Platform

Description of the platform that may affect an interface.

Interface Affected

A brief narrative name or description of the interface affected, such as “retrieving a product price from the pricing database.”

Interface

The interface should be described to indicate the movement of data or processing from one point to another. For example, a product price will be moved from the product price database to the invoice pricing software package.

Effect

This field should explain the potential risk or effect that could be caused by a specific platform. For example, platform X may not have adequate space for over 1,000 product prices.

Test(s) to Validate Interface

This column should describe in detail each task that should be performed to validate interface processing. For example, put 1,001 product prices into the pricing database to validate that the platform can support a pricing database that contains over 999 product prices.

Interfaces Affected by Platform

Test(s) to Validate Interface

Software Package

Platform

Interface Affected

Interface

 
   

From

To

Effect

 
       
       

At the conclusion of this task, the tests that will be needed to validate multiplatform operations will have been determined. The remaining task will be to execute those tests.

Task 6: Execute the Tests

The platform test should be executed in the same manner as other tests are executed in the seven-step software testing process described in Part Three of this book. The only difference may be that the same test would be performed on multiple platforms to determine that consistent processing occurs.

Check Procedures

Prior to completing multiplatform testing, a determination should be made that testing was performed correctly. Work Paper 19-4 provides a series of questions to challenge the correctness of multiplatform testing. A Yes response to those items indicates that multiplatform testing was performed correctly; a No response indicates that it may or may not have been done correctly. Each No response should be clarified in the Comments column. The N/A column is for items that are not applicable to this specific platform test.

Table 19-4. Multiplatform Quality Control Checklist

  

YES

NO

N/A

COMMENTS

1.

Have all of the platforms in which the software is intended to be run been identified?

    

2.

Has each platform configuration been described?

    

3.

Have the concerns for correct multiplatform processing been identified?

    

4.

If so, are those concerns reasonable and complete?

    

5.

Has a determination been made that the identified platforms will be available for test?

    

6.

If not, has a decision been made on how to handle the potential risk associated with platforms not being tested?

    

7.

Have the structural components of the software to be tested been identified?

    

8.

Are those structural components complete?

    

9.

Has a determination been made as to how each of the identified platforms may impact those structural components?

    

10.

Have the interfaces for the software package been identified and documented?

    

11.

Has a determination been made as to whether any or all of the platforms may affect those interfaces?

    

12.

Was multiplatform testing conducted under real-world conditions?

    

13.

Did acceptance testing prove that the procedures were correct and usable?

    

14.

Did the acceptance test process verify that people are adequately trained to perform their job tasks on multiple platforms?

    

15.

Did acceptance testing verify that the software performs the functional and structural tasks correctly (i.e., those tested)?

    

16.

Did acceptance testing verify that the products produced by the computer system are correct and usable?

    

17.

Did acceptance testing verify that the operations personnel could correctly and effectively operate the software on the multiple platforms?

    

18.

Did the acceptance test process verify that the operational software system satisfied the predefined critical success factors for the software?

    

19.

Did the acceptance test process verify that the users/operators of the system can identify problems when they occur, and then correctly and on a timely basis correct and reenter those transactions?

    

20.

Have all the problems identified during acceptance testing been adequately resolved?

    

Output

The output from this test process is a report indicating the following:

  • Structural components that work or don’t work by platform

  • Interfaces that work or don’t work by platform

  • Multiplatform operational concerns that have been eliminated or substantiated

  • Platforms on which the software should operate but that have not been tested

The report will be used to clarify the software’s operating instructions and/or make changes to the software.

Guidelines

Multiplatform testing is a costly, time-consuming, and extensive component of testing. The resources expended on multiplatform testing can be significantly reduced if that testing focuses on predefined multiplatform concerns. Identified structural components that might be affected by the software and interfaces that might be affected by multiple platforms should make up most of the testing. This will focus the testing on what should be the major risks faced in operating a single software package on many different platforms.

Summary

This multiplatform testing process is designed to be used in conjunction with the seven-step testing process in Part Three of this book. It is essential that the software to be tested on multiple platforms be validated prior to multiplatform testing. Combining software validation testing with multiplatform testing normally will slow the test process and increase the cost.

 

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset