Both in my current job and in my previous job, there are a number of areas of the application to test that require mining data from a relational database, specifically Microsoft SQL Server of various versions.

For the most part, I've gotten by with running simple SELECT queries with various WHERE filters. With my current position, though, I'm finding that adding more complex JOINs are necessary to really get what I need out of the database. Additionally, the database I'm currently working with has a lot more in the way of foreign key constraints, views, and other such things built into it making the relationships between the various normalized tables really slick (but at the same time, a bit of a pain) to navigate.

When looking for a software tester for your database application, what level of proficiency are you looking for?

  • 2
    You didn't specifically ask for this in your question, but if you're looking for resources to brush up on SQL, I asked this question over on the DBA stackexchange and got a ton of good resources: dba.stackexchange.com/questions/29/…
    – testerab
    Commented May 25, 2011 at 21:41
  • The title should be changed to better match the question, "software tester" is a very broad term. Consider something like "database software tester".
    – Rsf
    Commented May 26, 2011 at 6:38
  • @Rsf - There are many software applications that make use of databases. Even if it's not just testing a database, there is still need to have some SQL skill. Commented May 26, 2011 at 12:38

4 Answers 4


For the most part, I've gotten by with running simple SELECT queries with various WHERE filters. With my current position, though, I'm finding that adding more complex JOINs are necessary to really get what I need out of the database.

I think you are answering your own question here.

Basically - "it depends".

Sometimes the position requires just a little bit of proficiency. Other times, more is required. When I'm hiring to fill a particular position, I need to make that decision again each time.

This is no different than filling any other position. Question: How much proficiency in C# should a developer have? Answer: It depends on the position. Some require depth, others require no proficiency in C#, since they require a different language.

  • Is there a base level that a Testing Manager would be looking for, though? Is it simply just the select statements, or is there a higher level of proficiency that is typically required, regardless of product? Taking the C# example, supposedly there's at least a base level. Commented May 25, 2011 at 19:59
  • You could look for someone who knows the basics as well as someone who is willing to learn, I was in your position where I only knew simple statements then learned how to do joins. Mostly its an educational aspect depending on the position.
    – MichaelF
    Commented May 25, 2011 at 21:16
  • Basic SQL statements like SELECT, UPDATE with clauses like having and order by is required. Apart from that JOINs are also frequently used in real-time.
    – Aruna
    Commented May 25, 2011 at 22:09
  • @TristaanOgre "Is there a base level that a Testing Manager would be looking for, though?" I've hired testers with absolutely no knowledge of SQL - because they didn't need any. I've also hired testers with DBA-level knowledge of SQL - because they needed it. As always - it depends! Commented May 31, 2011 at 12:54

Proficiency in SQL is just a start, there is something more that just being competent with the SQL syntax: Select, From, Join, Where, Order by, etc.

A good Software tester in a job requiring DB skills needs to be willing to learn from the Developers and DBAs in the shop. The tester should want to refine and improve their DB data mining skill continuously. Have a sense of caution when using insert, delete, and update. Be willing to experiment (safely of course) with new SQL syntax, they want to master this skill.

Proficiency is gained by diligent practice, period, using good SQL tools can enable the tester greatly here. In the end of the day it's the passion the tester brings to the task of understanding the many data models in the application that will really make them into a great asset for their projects and actually Proficiency with SQL.

  • Excellent answer, John! And your second bolded point is what I've been doing. "Every day you learn something new is not a day wasted" is one of my personal sayings... Commented May 26, 2011 at 12:39
  • For a sample tool to help build queries, you might check out Embarcadero's RapidSQL. I do everything I need now in SQL Server Management Studio, but really liked RapidSQL when I was first starting out. embarcadero.com/products/rapid-sql
    – Jeff
    Commented May 17, 2012 at 20:18

If I am looking for a tester for either a database or for a heavily data driven application then the stronger they are with SQL the better. I think not only should they be comfortable with writing queries including JOINS, UNIONS etc, but they need to have a good understanding of what some of the different performance implications are around inserts and updates, how indexing works for the various database platform they are using and that sort of thing. I think the more knowledge the better in that case. Baseline though would be the ability to write a SQL statement and know when and how to write and inner and outer join.

  • Dan, I like a lot what you would require. But I don't find that many testers (testing DB apps) are actually doing that many inserts and updates. Sure it happens but in small quantities to setup test data. In the shop I am in, the performance implications are taken care of by regular DBAs. More SQL experience is better, I would agree there. Commented May 26, 2011 at 5:38
  • While I don't do a lot of inserts and updates, if I need to tweak a data record for a new scenario, sometimes I need to run updates or inserts....but with EXTREME caution. Most of the time, data inserts and updates are executed by way of the AUT which then brings to question "Is the AUT doing the inserts and updates correctly?"...lot's of layers to testing this kind of stuff. Commented May 26, 2011 at 13:55
  • Again -it depends on the organization. My bias is towards more knowledge. Frankly if you have a tester that knows as much as the dev I think you will end up with far more solid code. In my last org we had a SQL developer but the C# developers did a great deal of their own SQL work as well. Knowing some of the implications of common mistakes is really useful. I worked a lot with the SQL dev to understand what he would want to see as far as performance etc.
    – Dan Snell
    Commented May 26, 2011 at 16:51

If you work in a company using intensively with SQL databases, like in enterprise systems or online shops, you will very likely need at least basic skills in SQL, at least to create some test data in the database, to check results and so on. At least some DML knowledge, SELECT, INSERT, UPDATE, DELETE, will come handy sooner or later.

But keep in mind it's basically not a core knowledge for a tester.

  • +1 for mentioning creating test data, and also for mentioning that it's not a core skill (at least for most testers). Commented May 25, 2011 at 22:24
  • I guess this just shows how different context can be: I'd say it's always been a core skill in the environments I've worked in. Not necessarily always at an advanced level, but at least basic familiarity was essential, and in some projects more advanced skills were essential.
    – testerab
    Commented Dec 12, 2011 at 23:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.