One tester got and assignment to generate a set of testing data. Scale of that set was in thousands of records. He created an sql script, and execution of script lasted for hours.
Tester could have various possible responsibilities on project. Some of those responsibilities could be also assigned to developers. More on that you can read in this famous paper “Managing the proportion of testers to other developers by Kaner, Hendricson and Smith-Brock. This paper is required reading in BBST foundation testing course.
Tester could be responsible for creating scripts that load a great amount of testing data into database. In this post I would like to explain what every tester need to know about database transactions concept. And that will be general explanation that could be applied on any database implementation.
Every interaction with database is in the transaction scope. Yes, even when you query the database, you are doing it in transaction scope. And transaction takes database resources and it takes some time to execute. Important parameter of every tool or client that interacts with database is auto- commit parameter and that parameter is usually set to true value.
And that was tester problem. Every insert was in transaction scope. When he turned auto-commit parameter to false, and he put after every 1000 records explicit commit command in sql script, execution time of script was in seconds.
As a tester, your obligation is to understand the concept that are important for your testing activity. Understand those concepts, and mastering testing tool will be an easy task. You will earn your credibility in project team and you would not need to worry about your professional future as a tester.