The Stages of Testing

   


Testing is involved in several stages during the development of an application:

  • Unit testing ”Modules are tested in isolation during the development process.

  • Integration testing ”Modules are combined and tested together to ensure that they deliver the required functionality.

  • Coexistence testing ”The application is tested alongside other applications to ensure that there is no interference or conflict. An example of this is modifying shared libraries as part of the new development.

  • System testing ”The complete application is tested against the functional specification, which includes installation instructions, guidelines, and administration procedures, as well as the application itself.

  • User acceptance testing (UAT) ”A selection of the user community tests the application in an operational sense. Users run the program in the way that it was intended, and report any problems or issues.

  • Performance testing ”Also known as load testing or stress testing , this provides the assurance that the application will continue to perform under busy conditions. This is becoming more important as Web-based applications are increasing, with the prospect of many users executing the application concurrently.

  • Implementation ” Larger applications may undergo a pilot implementation in the "live" environment so that comparisons and further checks can be made against results obtained from the current method of operation.

A further stage of testing that is occasionally omitted from the implementation plan is that of end-to-end testing. This topic is discussed in the section "End-to-End Testing."

It is quite rare, however, for a system manager to experience all of these types of testing for a single implementation, except when the delivery is large, expensive, and critical to the business. In this case, the highest level of confidence might be required to significantly reduce any risks during the live cutover. The following list describes the benefit that the system manager might gain from each aspect of testing:

  • Unit testing ”Not much benefit is gained because this type of testing is normally done entirely by the development section or the third party, if the project is being handled externally. For the latter, though, the test results would provide proof that the development is progressing according to the schedule, and it may also be used as a payment point.

  • Integration testing ”Again, the system manager gains no real direct benefit because this testing is carried out within the development section. As with unit testing, however, integration testing could be used as evidence of progress and as a project milestone.

  • Coexistence testing ”This is especially useful when components or modules from several suppliers are used (for example, using GUI applications or forms interacting with Web browsers). Coexistence testing ensures that there will be no compatibility issues and that the new addition will not cause any unforeseen problems with the existing infrastructure.

  • System testing ”The system manager will be responsible for installing the new application or system into the corporate IT infrastructure. He sees that the installation and configuration procedures perform as expected. Also, the fault testing aspect of system testing helps him to ensure that it conforms to the corporate disaster recovery plan and also to test a number of potential disaster scenarios. See Chapter 7, "Disaster Recovery and Contingency Management," for a fuller discussion of these topics.

  • User acceptance testing (UAT) ”The department that requested the functionality ultimately will be paying for it, so user acceptance testing is primarily used in larger developments, particularly those involving external suppliers, in which cost is considerable. UAT is frequently used as a crucial element of a contract with an external supplier ”that is, it determines whether the application is "acceptable" or "fit for purpose" to the user community that will be making use of the functionality. The system manager's role in UAT is usually a supporting one in that he will support the UAT environment on which the testing is being carried out. He also will install any patches that result from problems raised during the execution of UAT.

  • Performance testing ”The system manager benefits from this type of testing because it identifies any components, such as servers or applications that might fail as a result of heavy use. Performance testing is also an aid to the system manager's capacity planning strategy, with the results being available for justification for further expansion, if necessary.

  • End-to-end testing ”The system manager will be supporting the system or application when it goes into production, so he benefits from seeing the whole thing, including any interaction with other systems. This type of testing also provides excellent familiarization opportunities for him and his staff to gain a better understanding of how it fits in with the running of the business.

  • Pilot implementation ”This involves the application or system "going live" for a specified set of users, with limited impact if problems are encountered . In addition, this testing provides the benefit of seeing how the application or system performs in the real world. A further business benefit of this is that comparisons can still be made with an existing system that is probably still running in parallel. The system manager can identify performative or administrative issues before they cause an impact in the final transition to operational status.

The numerous stages of testing that are possible for a system or application give some idea of the complexities that can be involved. They also highlight how important it is to carry out thorough testing and to determine the benefits that can be gained from doing so. The fact that many companies either cut testing short or omit it altogether demonstrates the risks that they are leaving themselves exposed to. In these days of competitive Internet trading, a crashing application could prove to be far more costly, in terms of lost revenue, than it would have been if the testing had been fully funded .


   
Top


Solaris System Management
Solaris System Management (New Riders Professional Library)
ISBN: 073571018X
EAN: 2147483647
Year: 2001
Pages: 101
Authors: John Philcox

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net