Monday, September 30, 2013

Importance of Robustness Testing for Reliability of software Product


Fault tolerance or robustness is the ability of the software product to maintain a specified level of performance in the presence of software defects or infringement of a specified interface.

Generally the software testing experts focus on the following important aspects of the software product:

# Containment of defects to specified parts of the system

# Reactions to failures of a given severity

# Self-monitoring of the operations and self-identification of defects

# Ability to allow specified work to continue after a failure of specified severity for specified parts of the system under specified conditions

# Loss of specified operations (functionality requirement or set of functionality requirements) in case of failure of specified severities in specified periods of time for specified parts of the system

# Loss of specified data in case of failure of specified severities in specified periods of time for specified parts of the system

The failures to consider in Software testing aimed to check the technical robustness are those forced on the product from external sources. Failures due to internal defects should be handled in the functional testing.

Failures from external sources could, for example, be caused by lack of external storage capacity, external data storage not found, external services not available, or lack of memory.

Software testing aimed to robustness aspect can, like the other technical tests, start at the requirements level, with testers reviewing robustness requirements.

Even more important is review of design. Software testing engineers can make the design more or less defensive, that is more or less robust to external circumstances. A simple, though often overlooked way to make systems more robust is to check the return code of all system routine calls and take action in the code when system call is unsuccessful.

Lack of memory may be due to memory leaks. Software testing engineers generally adopt the technique of dynamic analysis to detect the memory leaks if any, for example, during component testing. Software testing aimed to test the robustness in system testing and/or acceptance testing may require the use of simulators or other tools to expose the product to external problems otherwise difficult to produce.

No comments: