1. Concurrency testing employs many users at a time and therefore it is considered to be a type of multi- user testing.
2. Concurrency testing was invented in order to determine what happens if many users are accessing the same data base records, modules or application code.
3. Other than this, concurrency testing also identifies the use of single threaded code, dead locking, locking semaphores and locking and it is also effective in measuring the level of these aspects.
4. While carrying out the concurrency testing several users perform same kind of task on the same application and that too at the same time.
5. The application serves too many users at a time.
TOOLS FOR PERFORMING CONCURRENT TESTING
Several tools are available for performing concurrency testing but we would recommend you load Runner since it helps you create concurrency at a point you wish.
- All you need to do is create a test scenario after you have recorded and improved your scripts using the virtual user generator.
- You can decide and add how many users you want your scripts to support.
- You should input the number of users in the controller component of this testing tool.
- There are several ways to add user like gradual ramp- up or spike, stepped etc.
- You can choose for yourself which way you want the users to be added.
- This is the most effective way to create concurrency.
- Apart from the multi user testing, the concurrency testing tests one application over the other one.
LEVELS OF CONCURRENCY TESTING
Two levels of concurrency testing have been developed so far and they have been discussed below:
# 1st Level:
- This involves concurrency testing of one application being executed on the top of another application.
- We can illustrate this by a simple example; you receive an incoming call while playing some game on your cell phone. The game will go to paused state. This is the simplest example we can give.
# 2nd Level:
- This involves concurrency testing of one application being executed on the top of other two applications.
- This can also be illustrated with a similar example, you receive an incoming call while playing games and while you are on the call you receive an SMS. The game is paused.
- Apart from just testing the multi user capacity of the software, concurrency is also responsible for finding out the bugs like dead lock, live lock, data race and data corruption.
- These bugs usually occur when the parallel processing is implemented in the application.
- If you are also using the user scenario apart from the test scenario your concurrency testing will yield much better results.
- Some applications make use of more than one module where some accept parallel processing and other are sequential.
- Identifying the type of modules can help you in writing effective test cases against them which in turn will reflect in your testing.
This is the internet era. Almost everyone is using web and web applications all over the world. Such a huge number of users require great stress handling capacity for the servers. If the servers are not able to take the load they often slip in to the position of the dead lock.
Concurrency testing is a way to ensure that such kinds of situations do not occur. Therefore concurrency testing is important. Performance is the basic aspect that is tested most in the concurrency testing.
Number of users using the application at a time equals to the number of hits per second. With the growing number of internet users world wide more and more security is needed over the web