Take the 2-minute tour ×
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

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?

share|improve this question
1  
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 May 25 '11 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 May 26 '11 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. –  TristaanOgre May 26 '11 at 12:38
add comment

4 Answers 4

up vote 9 down vote accepted

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.

share|improve this answer
    
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. –  TristaanOgre May 25 '11 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 May 25 '11 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 May 25 '11 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! –  Joe Strazzere May 31 '11 at 12:54
add comment

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.

share|improve this answer
    
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. –  John Burley May 26 '11 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. –  TristaanOgre May 26 '11 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 May 26 '11 at 16:51
add comment

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.

share|improve this answer
    
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... –  TristaanOgre May 26 '11 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 May 17 '12 at 20:18
add comment

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.

share|improve this answer
    
+1 for mentioning creating test data, and also for mentioning that it's not a core skill (at least for most testers). –  Ethel Evans May 25 '11 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 Dec 12 '11 at 23:38
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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