What is Volume Testing?
Volume testing is a type of performance testing that helps in checking the performance of an application when subjected to a large volume of data.
This data can be of two types-
- First is the system database. If the system deals with large data frequently, volume testing becomes a necessary testing process. In this type of testing, database size is increased to the size as per the requirement and multiple queries can be fired simultaneously i.e. load the database with a large volume of data, to check how effectively the system is able to exchange the data.
- The second is an interface file. If the system is interacting with an interface file such as .xml, .dat i.e. the system might read from the file and/or the system might write onto the file. In such cases, the interface file can be created as per the requirement and the system’s performance will be checked once the file interacts with the system.
The main goals of volume testing are as follows once the system is loaded with a high volume of data:
- Check whether the system has not suffered any data loss.
- Check the response time of the system.
- Check data integrity.
- Check to see if the system crashes unexpectedly.
It is also known as flood testing since, in this testing type, a huge amount of data is flooded into the system to check the system behavior.
Example to understand the importance of Volume testing
For example, for any e-commerce website, let’s assume that a couple of new brands are introduced on the platform that are very famous in the market and they have a large number of products. Now, the system should be able to support this new set of data without any failure.
Volume testing is also done to check the volume of data that is projected for future usage. Let’s say any new banking application generates x GB of data and in the next 2 years it is predicted that the generated data volume will exceed x*10 GB of data, and in 5 years it will generate x*50 GB of data. Now, after the development of the code, it is advisable to check whether the system can support future predictions in terms of data volume abilities. For this check, volume testing is required. It also helps in identifying any infrastructure need or database change that might require beforehand; as it is better to keep the system ready for future data volume rather than making changes later when the need arises.
Volume testing makes sure even with the excess database load, the system is working as expected and does not crash.
How is Volume testing different from Load testing and Stress testing?
Volume testing is done to make sure the system behaves expectedly when it is exposed to a large volume of data. Load testing is done to check the system performance by gradually increasing the load until it reaches its threshold limit. Stress testing is done to check the system robustness by feeding it the maximum number of users and data which surpasses the threshold limit.
These three can be explained through examples given below:
- Volume Testing – Increase the number of products in an e-commerce website
- Load Testing – Increase the number of users who use the system simultaneously
- Stress Testing – Increase the number of users who use the system simultaneously and increase the input dataflow to the point that the system breaks
How to do Volume testing?
In volume testing, there are some important factors on which testing team should be clear-
- The amount of data that the system is likely to interact in the near future (next couple of years) and after that as well (this will be done with the help of business users, business analyst, and marketing team).
- Detailed knowledge of the database that is used in the system.
- Clarity on the behavior of the system when large data is fed into the system.
- A proper test plan to prepare test data that should mirror the somewhat exact real-time data.
- A test plan to prepare test environment including hardware configurations.
- A decision on which test automation tool(s) will be used.
Advantages of Volume testing
This section discusses some important advantages of volume testing-
- Volume testing results in customer satisfaction. When the system is exposed to a large volume of data, it might cause temporary system failure, or it might reduce system speed. Due to such issues, customers will have a negative experience. If these issues are found early in the testing, customer satisfaction can be increased.
- It also helps in reducing the maintenance of the system by identifying failures arising due to data volume before the system is available to end-users.
- Volume testing helps identify instances or areas of the system that will reduce system response time when the system is exposed to high data volume.
- Volume testing gives assurance to the client and the development team that the system can work effectively in the real-world with a high volume of data.
- Volume testing makes sure the data is stored in the correct tables and no data has been lost in the event when multiple tables are updated with large data.
- Using volume testing, the system can be checked and prepared for future predictions regarding the data volume.
- Volume testing makes it possible to test the capacity of the system with respect to data volume.
- Volume testing helps in reducing the overall risk of failures when it comes to the performance of the system.
Disadvantages of Volume testing
The following are some disadvantages of volume testing-
- Volume testing is a cost and time-consuming non-functional testing type as it requires the use of automation tools and skilled resources.
- The testing team used for volume testing should be familiar with database concepts which might increase the project cost in some cases.
- Sometimes for a small-scaled system, it is very less likely that the system will engage in a large volume of data, in such cases, volume testing becomes an unnecessary step.
- Sometimes it is difficult to prepare test cases in terms of testing with the specific number of data volume as it might not be possible to predict the volume of data that will interact with the system in the future.
- Stimulating an exact type of real-world data for volume testing may not be possible.
Volume Testing Tools
Following is a list of some automation tools used by testers worldwide:
- HammerDB – HammerDB is a load testing software supporting varieties of databases such as Oracle Database, SQL Server, IBM Db2, MySQL, MariaDB, PostgreSQL, and Redis. It is free and open-source software. It is hosted by TPC on GitHub. It supports Linux and Windows operating systems.
- JdbcSlim – JdbcSlim is also an open-source free tool, the framework to integrate database queries and commands into Slim FitNesse testing; it is available on GitHub for download. This framework keeps test data, configuration data, and SQL code separate which helps business users to understand the requirements which are written independently of the implementation. It supports databases with JDBC driver.
- DbFit – DBFit is an open-source tool for automated database testing. It was created by Gojko Adzic and is based on the FitNesse framework. It supports Oracle Database, SQL Server, MySQL, IBM Db2, Derby and PostgreSQL.
For any system, the quantity of data is an important parameter. Volume testing is a non-functional testing type that is used to test the volume of data with which the system interacts or is likely to interact. Volume testing is a time-consuming testing process but at the same time, it helps in identifying issues such as slow responsiveness and data loss.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can find him on LinkedIn.