Prepared by Hemavathy.P Sivapriya.B SYSTEM TESTING
System Testing is a level of the software testing where a complete and
integrated software is tested. The purpose of this test is to evaluate the system's compliance with the specified requirements. Definition by ISTQB. system testing: The process of testing an integrated system to verify that it meets specified. Types of system testing Functional testing Performance testing Stress testing Configuration testing Security testing Recovery Functional testing System functional tests have a great deal of overlap with acceptance tests. Very often the same test sets can apply to both. Both are demonstrations of the systems functionality. Functional tests at the system level are used to ensure that the behavior of the system adheres to the requirements specification. All functional requirements for the system must be achievable by the system. In fact, the tests should focus on the following goals. All types or classes of legal inputs must be accepted by the software. All classes of illegal inputs must be rejected. All possible classes of system output must exercised and examined. All effective system states and state transitions must be exercised and examined. All functions must be exercised. Performance testing An examination of a requirements document shows that there are two major types of requirements: 1. Functional requirements. Users describe what functions the software should perform. We test for compliance of these requirements at the system level with the functional-based system tests. 2. Quality requirements. There are nonfunctional in nature but describe quality levels expected for the software. One example of a quality requirement is performance level. The users may have objectives for the software system in terms of memory use, response time, throughput, and delays. The goal of system performance tests is to see if the software meets the performance requirements. Testers also learn from performance test whether there are any hardware or software factors that impact on the systems performance. Performance testing allows testers to tune the system; that is, to optimize the allocation of system resources Stress testing When a system is tested with a load that causes it to allocate its resources in maximum amounts, this is called stress testing. Stress testing is important because it can reveal defects in real-time and other types of systems, as well as weak areas where poor design could cause unavailability of service. Stress testing is important from the user/client point of view. When system operate correctly under conditions of stress then clients have confidence that the software can perform as required. Planners must insure resources are available for the long time periods required. Security testing Designing and testing software systems to insure that they are safe and secure is a big issue facing software developers and test specialists. Recently, safety and security issues have taken on additional importance due to the proliferation of commercial applications for use on the Internet The effects of security breaches could be extensive and can cause: (i) loss of information; (ii) corruption of information; (iii) misinformation; (iv) privacy violations; (v) denial of service. Recovery testing Recovery testing subjects a system to losses of resources in order to determine if it can recover properly from these losses. This type of testing is especially important for transaction systems, for example, on-line banking software. A test scenario might be to emulate loss of a device during a transaction. The recovery testers must ensure that the device monitoring system and the checkpoint software are working properly. Beizer advises that testers focus on the following areas during recovery testing . i. Restart ii. switchover