The demand for “all around” testers is growing.
What does the phrase “all around” mean? It means that testers should be equipped with the ability to test the system’s functionality through traditional “point, click, and verify” testing methods AND be able to utilize their technical expertise to verify all aspects of a system. That technical expertise includes operating system, interface, and database verification skills. In this blog, I will highlight the importance of good Structured Query Language (SQL) skills.
How important are SQL skills for a Software Tester?
As a Software Quality Assurance Tester, I have worked on several different applications. Some of the applications require strong SQL verification skills, some of them required medium skills, and for some of the applications, I didn’t need any SQL knowledge.
Even if you are working on front-end testing of different web applications to verify the site functionality, you may require basic SQL skills. SQL skills is required to verify test data: insert, update, and delete the test data values in the database. You will need to use SQL queries against the SQL server database for this particular test approach.
If you are strictly working on back-end testing projects (i.e. Data Warehousing, ETL processing or File-based data load, Interface testing etc.), SQL Query knowledge is a must have skill. As part of this testing, you will need to compare data before and after processing. You may be writing complex queries with select statements and in order to do that you will need to the relation between the tables, columns, and the query before you can write any kind of SQL statements. You will also need to understand how to write the different types of SQL Statements to verify the test data.
SQL skills is also useful if you are working on Business Intelligence (BI) reporting projects. This is where you will require advanced SQL knowledge and need to learn how to write complex SQL queries using Aggregates, Group By and Having along with complex Joins. As part of reports testing, you may need to verify complex calculations and analyze data along with understanding complex data structures in relational or data warehousing (star or snowflake schema).
From my past experiences, I believe a tester should have the below database and SQL knowledge:
-
- Recognize the different types of databases (i.e. SQL Server vs Oracle and Relational database vs Star/Snoflak schemas)
-
- Connect to the database using different SQL connection clients
-
- Understand the relationship between database tables, keys, and indices
-
- Write basic select queries or SQL statement along with more complex join queries
-
- Interpret more complex queries
SQL statements we frequently use in testing are:
-
- Data Manipulation Language (DML): Used to retrieve, store, modify, delete, insert, and update data in the database. Examples: SELECT, UPDATE and INSERT statements.
-
- Data Definition Language (DDL): Used to create and modify the structure of database objects
- in the database. Examples: CREATE, ALTER and DROP statements.
-
- Transactional Control Language (TCL): Manages different transactions occurring within the database. Examples: COMMIT, ROLLBACK statements.
-
- Inner Join: Retrieves the matched records from both tables.
-
- Distinct: Retrieves the different values from one or more fields.
-
- In: This operator is used to find the value is within the list or not.
-
- Between: This operator is used to retrieve the values with in a range.
-
- Like: This operator is used perform pattern matching using wildcards; it is used in the where clause.
-
- Order By Clause: Sorts the table records in ascending or descending order. Default order is ascending.
-
- Group By: Use Group By statements with the aggregate function to group the result set with one or more columns.
-
- Aggregate Functions: Performs a calculation on a set of values and return a single value. Example: Avg, Min, Max, Sum, count etc.
Throughout my 20+ years of IT experience with SQL I’ve seen the benefits and usefulness of SQL Skills applied in the testing projects. I would suggest testers acquire some knowledge of SQL to become the “all around,” versatile tester that clients need and value.
Please reach out if you have any questions on SQL or like to learn SQL. You can also check out our SQL/Database/SSRS Bootcamp here so that you can acquire valuable SQL/Database skills over 3 weekends.