Testing Software: Can Your Computer Endure Overload
Stress testing software goes beyond the normal operations and tests the sturdiness, ease of use and error-handling ability of software under heavy load. There is a 10% possibility of failure of the software when loaded. Stress testing software is used under following conditions:
? During a crash. A crash is a condition when a computer program stops working and responding to other computer parts. The program, in such a condition, is said to have freezed. A crash may even lead to the breakdown of the computer. ? To find out if there are any races conditions. A race condition is an error in the system as the final output of the program depends on its sequence and timing. Race conditions are likely to occur in poorly designed computer software. ? During a denial of service attack in a computer. Under this condition, the computer does not access web servers on the Internet. This attack can be temporary or sometimes permanent. ? Under conditions such as memory leaks or bugs. Under these conditions, the computer fails to release memory.
Branch coverage is a metric number used in software testing. It describes the degree of tests performed on a particular program. 100% branch coverage means that every part of the program has been tested at least once. Software with low branch coverage percentage is not thoroughly tested.
A web server is the program that accepts supply http responses to the clients, which are web pages including documents and linked objects. A web server may be stress tested to observe its performance during heavy loads. It can be done by using scripts, bots and denial of service tools. Stress testing is also known as negative testing because it is done by taking the resources of the program away from it. The main purpose of stress testing software is to make sure that if the system fails, it will be able to recover easily. Stress is applied to the system in the following ways: ? by doubling the baseline number for Internet users ? by shutting down and restarting the ports on the network routers connecting the servers through commands like SNMP ? by taking the database offline and restarting it ? by rebuilding a RAID array on a running system ? by running processes consuming CPU, disk, network and memory on the web and database servers The professional people, who are experts of testing any software, can use more ways to apply stress on the system. Once the system breaks down, these experts apply stress testing software to observe how the computer responds to the failure. Stress testing is often used to test the whole system and not the software only. Stress on the system may be due to bursts of activities, overloads and resource exhaustion. Stress testing software subjects the system to irrational load and denies it the resources like RAM, discs, etc. which are needed at the time of load. It stresses the system to the breaking point to see what types of bugs are harmful for the system and whether the system is able to repair itself once it breaks down.
|