Concurrency testing is the Multi Users accessing the code or viewing the single screen or single user opens the multiple browsers. We will test whether the Browsers or screens are working as per the requirements.
Concurrency Testing is a multi-user testing geared towards determining the effects of accessing the same application code, module or database records. Identifies and measures the level of locking, deadlocking and use of single-threaded code and locking semaphores.
It used for Testing the software with anticipated load levels for the purpose of identifying problems in resource contention, Response times etc.
Please feel free to ask me any doubts regarding Software Testing & ISTQB Certification anytime.
Concurrency testing is testing the applcation for muliple users. It is one of the key
methodology in performance testing. Let me give some of the key scenarios within that
1) All the users logged in, but only one user is active at any point in time.
2) All the users accessing the same page or functionality at the same time
3) All the users working concurrently, but accessing the different functionality.
4) Mix of 1, 2 and 3
The point no 2, is very important in applications where data consistency important. For example Banking applications or
reservation systems. If 2 people are booking the ticket at the same time, both should not get the same seat. Eventhough,
it is a functional issues, but it is generally tested as part of performance.
LoadRunner tools has a function called lr_rendezvous to simualte this. Recently, we have identified an issue of 2 people
getting the same cheque no in financial application. This may happen once in a blue moon, but it is concurrency issue.
As some of you mentioned, another issue is deadlocks. It is a kind of performance and functional issue.
Combining all these, concurrency is one of factor in determining the load on the application server resources and eventually
the end user experience (response time).
Many people have a wrong understanding that concurrent users are the only factor determining the load on the server. It is not 100% true.
Load is the combination of users and how fast users are working. Above mentioned point 1 will have less load compared to point 2, 3, 4.