Types of testing:
Load Testing: Testing the application with specified user load for fixed duration is called load testing.
Purpose: purpose of the load testing is to know the stability of the application. Load testing is performed to determine a system’s behavior under both normal and anticipated peak load conditions.
Ex: Consider an online application where client requires specified user load of 200 users to run for 60 minutes. The application has to be stable within these requirements
Stress Testing: Testing the application by gradually increasing the user load on application until it will crash. Or
Stress testing is a form of testing that is used to determine the scalability of a given system. It involves testing beyond normal operational capacity, often to a breaking point, in order to observe the results.Purpose: purpose of the stress testing is to know the threshold limit of the application (scalability of the application). Response time will not be considered.
/*Ex: Consider an online application where client requires a specified load of 200 vusers. The application is stable within these requirements. After increasing more than this specified user load at a particular point, the system performance will start to degrade (where it shows high response times and errors). When we pump more vusers application will crash. This point is known as breakdown point.*/ answer is not proper
Ex: We have performed testing in our project by giving ramp up of vusers gradually. Till 200 users on the application was stable in terms of service level agreements. After increasing user load up to 250, application was still stable. But when I reached the user load of 300, the application was not stable and the response time is varying and started seeing errors. After 380 vusers application was crash. This point is known as breakdown point.
So I have decided that with 250 users my application is stable.
Endurance Testing: Test execution where we load the application for longer duration like >10 hours or days.
Purpose: Purpose of the endurance testing is to identify bottlenecks like memory leaks
Ex1: whenever we access an application with credentials for some specific time the application might work properly. But, the application may fail if we run it continuously for a prolonged period of the time. So that bugs in script that are not resolved can be identified.
Ex2: Consider an online application; client requires for testing his application for a couple of hours or days, by doing this test we can find out the bottlenecks which degrades the performance of the application.
Memory leak
A memory leak is a particular type of unintentional memory consumption by a computer program where the program fails to release memory when no longer needed. This condition is normally the result of a bug in a program that prevents it from freeing up memory that it no longer needs. Memory is allocated to a program, and that program subsequently loses the ability to access it due to program logic flaws. Memory leak, if left unattended and not corrected, could prove to be fatal. Memory leaks can be found out by running tests for long duration (say about an hour) and continuously checking memory usage. Issues caused by memory leaks are essentially based on two variables for a standalone windows application 1) Frequency of usage 2) size of memory leak. If either one or both are very high it could cause the computer to come to a point when no memory is available for other applications causing it to crash. If it is a network based application then you will also have to consider network traffic. If each network transaction causes a memory leak, then a high volume of network transactions could also prove dangerous.
Ex3: whenever client sends a request to the server, for that particular request the server will create objects. Once the request is processed, these objects need to be freeze from the memory. But due to the bad coding by the developer, these objects are not freeze. So it occupies the memory and it will not process the next request which is sent by the client.
Ex4: Whenever client send request to the server, the server will create an object for that particular request. When the client sends other requests these requests will first go to the object and then to the server. When the user sign off those objects must be freeze. In some situations these objects are not freeze due to the incorrect functionality of the garbage collector. These object occupy the memory in system or server, by which the usage of the memory decreases
Spike Testing : Test execution where the application is loaded with varied user load suddenly (sudden increase or decrease).
Purpose: purpose of the spike testing is to know the behavior of the application
Ex: Consider an exam portal like Indiaresults.com. Whenever the results are out the user load will suddenly increase. After some time the load will suddenly drop. In spite of these changes, Server must be reliable. Based on the client business we can suggest queue mechanism for varied user load. We can also insert Load balancer to maintain equal load on all Web-servers.
Volume Testing: Test execution where we send the continuous data to the database
Purpose: purpose of the volume testing is to check whether the database can handle that much volume of data at a time.
Ex: Consider an online banking application like HDFC; let’s say there are 50 branches with in one region. The main database server will receive 2GB data from each bank. Database server will receive 100 GB data from 50 branches every day. By this we can know that whether the database can handle 100 GB of data or not.
No comments:
Post a Comment