I am newbie to Test Automation.Currently I got an oppurtunity to work with selenium Web driver.I just want to know whether I need to learn Database like MYSQL,OR ORACLE to work with selenium. Also I need to know whether any need comes if I need to create queries for making automation script more power full.?
Strictly speaking you don't need to know how databases work to work with any automation tool. But without an understanding of databases and the ability to query them, you block off a large source of extra information you can use for validation.
- Your application takes a person's name and contact details and stores them in three tables (for example: Customer, Address, Phone). You can verify that the correct information is stored by checking the database or by viewing the customer in the application - but if there's a problem, you won't know whether the failure is in reading the customer data or in saving it. If you check the database, you will know if the data saved correctly, if the address and phone records are properly linked to the customer record, and so forth.
- Your application allows you to delete records with child records. To validate that the record was properly deleted, you really need to go into the database and make sure the child records are gone. In the customer example, you want to make sure that when the customer is deleted, their address and phone records are deleted as well.
- Your application uses the database to store transitional records such as temporary holds on items in a shopping cart. It's a lot easier to check that the transitional records are cleared when the transaction is cancelled than to try to validate through a GUI.
- Your application stores data in a specific format that doesn't match the GUI format. For instance, all dates & times could be stored in Universal Standard (Greenwich Mean) Time but displayed in the user's local system time. Without checking the database, it would be quite challenging to validate correct conversions.
- Your application makes calculations or rule evaluations on data stored in the database. In this case, the application could display everything correctly but reports be incorrect - with a database check you know where the problem is.
- Your application uses data in the database that is not surfaced in the application.
That's not a complete list but it's a starting point. I'd strongly recommend learning any database and query language (they're all very similar), because it will make your automation scripts more powerful and more accurate.
The general answer, for me to 'whether I need to learn' is always 'Yes, if you can find time for it', especially if it makes you progress in your field. There is no clear definition of how much knowledge a test engineer should have. As an automation engineer, you can be as good as any programmer or just know how to automate some testing using tools like Selenium, Watir, QTP, etc. - it is your choice at the end of the day.