Software Testing Types - Contd..Regression, Performance, Stress and Load Testing

Regression Testing:

When a defect is found in verification and it is fixed we need to verify that 1) the fix was done correctly 2) to verify that the fix doesn’t break anything else. This is called regression testing. Regression testing needs to be performed to ensure that the reported errors are indeed fixed. Testing also needs to be performed to ensure that the fixes made to the application do not cause new errors to occur. Selective testing of a system or component to verify that modifications have not caused unintended effects. A system that fails after the modification of a component is said to regress. Regression Testing is where the integration and System tests are rerun to capture such failures. Regression Testing is planned usually for components that are Dependent, Risky and Widely used.

Retesting:

Retesting means executing the same test case after fixing the bug to ensure the bug fixing.

Negative Testing:

Negative Testing is testing the application beyond and below of its limits. For ex: If the requirements is to check for a name (Characters), 1) We can try to check with numbers. 2) We can enter some ascii characters. 3) First we can enter some numbers and then some characters. 4) If the name should have some minimum length, we can check beyond that length.

Performance Testing:

Performance test is testing the product/application with respect to various time critical functionalities. It is related to benchmarking of these functionalities with respect to time. This is performed under a considerable production sized setup. Performance Tests are tests that determine end to end timing (benchmarking) of various time critical business processes and transactions, while the system is under low load, but with a production sized database. This sets 'best possible' performance expectation under a given configuration of infrastructure. It can also serve to validate and verify other quality attributes of the system, such as scalability(measurable or quantifiable), reliability and resource usage. Under performance testing we define the essential system level performance requirements that will ensure the robustness of the system. The essential system level performance requirements are defined in terms of key behaviors of the system and the stress conditions under which the system must continue to exhibit those key behaviors." Some examples of the Performance parameters (in a Patient monitoring system - Healthcare product) are, 1. Real-time parameter numeric values match the physiological inputs 2. Physiological input changes cause parameter numeric and/or waveform modifications on the display within xx seconds. 3. The system shall transmit the numeric values frequently enough to attain an update rate of x seconds or shorter at a viewing device.

Stress Testing:

  1. Stress Tests determine the load under which a system fails, and how it fails.
  2. Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements to determine the load under which it fails and how.
  3. A graceful degradation under load leading to non-catastrophic failure is the desired result. Often Stress Testing is performed using the same process as Performance Testing but employing a very high level of simulated load.
    • Some examples of the Stress parameters (in a Patient monitoring system - Healthcare product) are,
      • Patient admitted for 72 Hours and all 72 hours of data availale for all the parameters (Trends).
      • Repeated Admit / Discharge (Patient Connection and Disconnection)
      • Continuous printing
      • Continuous Alarming condition

Load Testing:

Load testing is the activity under which Anticipated Load is applied on the System, increasing the load slightly and checking when the performance starts to degrade.

Load Tests are end to end performance tests under anticipated production load. The primary objective of this test is to determine the response times for various time critical transactions and business processes.

Some of the key measurements provided for a web based application include:

  1. How many simultaneous users, can the web site support?
  2. How many simultaneous transactions, can the web site support?
  3. Page load timing under various traffic conditions.
  4. To find the bottlenecks.