by Hassan Raza

Most of you, who belong to the Software Quality Assurance (SQA) profession, would also have some knowledge about the skills required for a SQA Engineer and there might be some other people reading this article belong to different professions. Today I will explain the skills required for an experienced SQA Engineer during his first four years of SQA profession. This article includes basic introduction and importance of the SQA profession and entering in SQA profession. Then I will explain that what is must to learn for a SQA Engineer during his first four years of SQA profession.

What is Software Quality Assurance?
Software Quality Assurance (SQA) is one of the most important fields in the Software Engineering domain of IT industry. SQA itself a vast field to study and explore. SQA incorporates the entire software development process, which includes processes such as software design, coding, source code control, code reviews, change management, configuration management, and release management. SQA includes the process of assuring that standards and procedures are established and are followed throughout the software acquisition life cycle.

Importance of Software Quality Assurance:
Without SQA department, a software company can earn a business for a short time but not for a long time. So now a days organizations are focusing more on Software Quality Assurance to deliver High Quality products and services to the customers. Software quality assurance engineers measure, test and improve the software development process. They work closely with developers to design and implement all aspects of software testing, including features, functionalities, usability and the prevention of defects and bugs.

Entering in SQA profession:
A bachelor degree in IT or Computer Science is minimum requirement for an individual to enter in SQA profession. Software QA Engineer may start out as Software Engineer or as Testing Engineer. SQA Engineer must be familiar with the entire SDLC and STLC in order to be effective. An experienced SQA Engineer should have strong communication skills, leadership skills, be good at documenting his work, and must be able to work well with different groups. He often becomes the middle person between the developers and the customers, so he needs to be able to understand, and convey, both viewpoints.

What should an experienced SQA Engineer learn during first four years of SQA profession?
SQA Engineer having four year experience should be able to read, understand and correctly interpret business and technical requirements, analyze those requirements and suggest changes to ensure accuracy of documented requirements, participate in reviews of technical documentation and suggest improvements. He should be able to prepare a test plan and responsible for design and execution of test cases and bug logging.

An experienced SQA Engineer should understand relational database schemas and be able to write SQL queries for data validation. He should also have a working knowledge of software development models and standard QA methodologies related to software development and verification. SQA resource should have knowledge about the tools used for test case designing and bug logging and also basic knowledge about the automation testing tools and performance testing tools.

It is very necessary for a SQA Engineer to work closely, collaboratively and communicate effectively with project stakeholders, engineers, and managers. He should be a team player, take initiative and ownership, perform as a mentor and also have basic management skills to lead and help build a positive, productive work team.

At the end I would like to conclude this topic by sharing the skills (tools and techniques) and their expertise levels required during first four years of SQA profession:

Skill (tool & technique)

Description

Expertise Level

Software Development Life Cycle (SDLC) It is a framework that describes the activities performed at each stage of a software development process.Requirement Gathering & Analysisà DesignàImplementationàTestingàDeploymentà Maintenance Advanced
Software Testing Life Cycle (STLC) STLC specifies the different stages of testing process.Requirements StageàTest PlanàTest DesignàTest ExecutionàBug TrackingàBug Reporting Advanced
Software Testing Types SQA Engineer should have detailed knowledge about the software testing types and methodologies used for the testing of software applications. Advanced
Software Development Process Models There are various software development approaches defined and designed which are used during development process of software, these approaches are referred as “Software Development Process Models”.e.g; Waterfall, Iterative, XP, RAD, Spiral, Agile, Scrum. Intermediate
Requirements Review SQA resource reviews the user requirements and performs formal review of the following requirement documents: Requirement Specification document, Functional Specification document, Design Specification document, Use case document etc. Advanced
Requirement Analysis SQA resource is required in requirement analysis stage as well because he can think from the user’s point of view. He analyze the requirement document and finds out that if the requirements mentioned in the documentation are correct, valid and understandable and identify the test requirements (what can be tested). Advanced
Test Planning Test Planning means to predetermine a plan well in advance to reduce further risks. A well designed test plan document plays an important role in achieving process oriented approach. It is the process to plan that how the testing process should flow.It includes:

  • Purpose/Objective
  • Testing Scope
  • Test Strategy (Testing Types, Testing Flow, Testing Cycle)
  • Environment requirements
  • Testing Tools (if required)
  • Training (if required)
  • Team Structure & Role and Responsibilities
  • Reference Documents
  • Exit Criteria
  • Defect Management
  • Dependencies
  • Assumptions
  • Risks
Advanced
Identify Test Scenarios SQA resource identifies and list down the test scenarios according to the user requirements considering the relevant requirement documents. Advanced
Design and Execute Test Cases On the basis of requirements and identified test scenarios, SQA resource designs detailed Test cases and the steps to execute those test cases and then also execute them one by one. Advanced
Bug Reporting and Bug Tracking While executing the test cases if SQA resource finds out any defect then he should log the bugs. He should have detailed knowledge about how to find out the bug, nature of bug, severity, priority and steps to reproduce that bug etc. He can also use bug reporting tools for bug reporting and bug tracking. Advanced
SQL queries for data validation SQA Engineer should have the knowledge of SQL queries for the data validation to retrieve, insert, update and delete record from DB. Intermediate
Tools for Test Case designing SQA Engineer should have knowledge of tools for test case designing. There are multiple tools available.e.g; Test Director, Microsoft Test Manager, Bugzilla Testopia, Mantis. Advanced
Bug Logging and Bug Tracking Tools There are multiple tools available to log and track the bugs. SQA Engineer can use bug tracking system to log the bugs details and track the bugs easily.e.g; Bugzilla, Microsoft Test Manager, Trac, Mantis. Advanced
Performance Testing Tools There are multiple tools available to measure the performance of the software application. SQA Engineer can execute Performance, Load and Stress testing by using these tools.e.g; Selenium, Apache JMeter, Visual Studio 2010, WebInject, Load Runner. Intermediate
Automation Testing Tools There are multiple tools available to automate the testing process. These are mostly used for regression testing or for repetitive tasks/flows. SQA Engineer can automate his testing activities using the automation testing tools.e.g; QTP, Selenium, Visual Studio 2010 Coded UI, TestComplete. Intermediate
Communication skills Communication is also very important skill for SQA Engineer. SQA resource should be capable to communicate with technical or non-technical people. Meetings with development team and status reports are also part of communication. Intermediate
Leadership skills A good experienced QA resource should also have leadership skills. He should have the skills that how to deal with junior team members and how to grab them. He should be capable of handling critical situations as well as his junior resources. Intermediate
Positive attitude An experienced SQA Engineer should show the positive attitude towards his work and he should perform his tasks with full concentration and accept the assignments willingly. Advanced
Team player Experienced SQA Engineer should be a good team player, give respect to others. He should be helping and supportive whenever any other member requires his help. He should accomplish his tasks with dedication and also take the responsibility to groom others as well because the success is always in team effort. Advanced