Database migration is always a challenging work, no matter whether migrating from a legacy system to a new system, upgrading technology, moving from one software to another, or from on-premises to the cloud. There are many database migration advantages like saving overall cost, added flexibility, reduced redundancy, improved security.
To leverage database migration benefits, confirming the optimum or improved database performance is required. This can be ensured via database migration performance testing.
Database Migration Performance Testing Approach
Database migration performance testing is to confirm that a new system performance is improved and the overall system stability is maintained. To measure this, capturing performance requirements & benchmark values must be available before migration. If not, then you should execute different types of performance testing to capture those performance requirements before migration. Performance requirements parameters such as response time, throughput, scalability will be used for comparison after migration.
Post migration, you should conduct different types of performance testing executions, again, to capture those performance requirements parameters. After comparing your pre and post migration performance test results, a decision will be made whether performance optimisation is required or not. Continuous performance optimisation, or tuning, followed by several rounds of iterative performance testing should then be executed. Once your database performance parameters are within the SLA- service level agreements, the performance team will establish the performance benchmark which can be used for future reference.
Identifying the business critical test scenarios are very crucial in database migration performance testing. Once the business critical scenarios are finalised, the performance testing team will create automated performance test scripts for those business critical scenarios to execute different types of performance testing.
Database Migration Load Testing
Load testing is conducted to know if there is any impact on performance after migration. Also, if any performance optimisation is required to ensure the overall performance. This testing includes complex query execution time, query execution time for fetching large/small data from a large data table, running reports etc. Different types of queries can be used like Select, Update, Callable (for stored procedures), Prepared Select (for execution plan), Prepared Update (for execution plan) statement, Commit, Rollback, AutoCommit (false), AutoCommit (true). The overall objective is to benchmark the response time under a stipulated load (average and peak) before and after migration for easy comparison and future reference.
The most used business-critical scenarios should be part of this testing. If these scenarios do not have optimum performance, then these scenarios might impact the performance of other and so on. High business-critical scenarios will also be part of this testing. These high business critical scenarios are those that have the biggest impact on overall performance. Some critical scenarios for fetching various data counts, at least one editing, and one non-editing critical user scenarios should also be considered for load testing.
Database Migration Stress Testing
Stress testing is carried out to put stress into the database system and observe when it fails. Finding out the stress or breakpoint of the database system by increasing the user load or even with high transactional volume. This testing can also be done both before, and after the migration for easy comparison. However, this testing requires proper planning and careful observation to avoid over usage of system resources.
Database Migration High Availability Testing
High availability testing should be done after migration only. This testing is to ensure the new database system meets all the business recovery requirements. This testing can be failover testing by adding new nodes or removing nodes & verifying the availability. Or, this testing can be endurance testing over a prolonged duration with average load & verifying the stability. Overall, it ensures minimise database downtime.
Database Migration Volume Testing
Volume testing is generally to verify how the system will behave on a large data base size or large data and even when data base size grows, looking at the future. Workflows/concurrent jobs/batches execution in parallel with average/peak load test execution could be a good example of volume testing. Overall objective is to mimic the database replay feature or simulating exactly real-time scenarios like day in life test scenarios.
Database Performance Monitoring
While database performance monitoring is absolutely critical with all database migration performance testing, end-to-end application performance monitoring will be beneficial to get a comprehensive view. These monitoring tools capture the database performance counters to identify or pinpoint the potential performance issues or scope for performance improvement. As an initial observation, looking at query throughput, query execution performance, connections, buffer pool usage performance counters may assist. Together, database performance testing & performance monitoring will ensure successful database migration advantages.
Conclusion
Performance testing is compulsory in database migration. Database migration performance testing with monitoring solutions, ensure optimum or improve database performance as well as overall application performance.
Check out all the software testing webinars and eBooks here on EuroSTARHuddle.com