What Must You Learn During the First Four Years in the SQA Profession?

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

Five Reasons to get into Software Quality Assurance

By Faisal Mahmood

The basic question that arises in a fresh CS/IT graduate’s mind is where to pursue his or her career in the IT industry. Obviously, most of the fresh CS/IT graduates opt to become a software developer, a software architect, a DB expert etc. and there are the very rare people who want to go with the Software Quality Assurance (SQA) profession. The objective of this article is to share some fruitful thoughts that encourage people to understand the importance of Software Quality Assurance as a career. Following are top five reasons SQA is a preferable choice.

Thinking outside of the box

If you are in the SQA discipline, you have to think different from others. The reason this is so important is because you have to occasionally provide ideas to get things implemented and often you have to find mistakes and errors in what others are doing. This is not possible to do in a perfect manner unless you are able to think out of the box. This thinking improves your work in many ways: it empowers your thoughts so that you can bring something that adds value. It improves your problem solving skills and can make you stand out from the crowd, thus growing your stature throughout the organization.

Better SDLC exposure

Software Development Life Cycle (SDLC) and SQAs go hand-in-hand. You cannot set them apart or get SQA out of any of the SDLC phases. If you try to, you cannot claim that you are doing proper QA of a project, application, or a system. If you are in a QA discipline then you need to be vigilant to detect chances of errors that can make go wrong. In order to do this, you have to understand all phases of SDLC very clearly. This is one of the most powerful aspects of a good SQA professional.

Great chances to develop better character

Believe it or not, the SQA discipline provides you more chances to develop your character and create values in your life. When you are hired to help, you actually support the software development teams in order to identify what they currently are or identify potential stumbling blocks. You are actually hired to perform as an internal customer, which is a very powerful position because they can state all of the work done was a waste of time and money if they are unsatisfied. This would hammer the vendor if and put the project in jeopardy.

Actually, the SQA person has an even trickier job to do; He or she has to remain cool & calm and tight & tough all at the same time. This is because you not only have to raise the flags by finding errors in developer’s code but you have to deal with the developer in a way that the developer does not see the QA person as an enemy, thus impacting team moral. So you have to be an empathetic person with great communication skills to maintain balance. A good SQA department or team teaches you how to contain these emotions while you are doing  your work.

Role Importance

If you are in SQA you have to play a key role in the success of a software project. All eyes are on you from the beginning to the end. This can go in either way: i.e. you can get noticed and praised by the managers, which will obviously help you grow. On the other hand, if you do not perform as per expectations you can be in some serious trouble. However, being the lynchpin to protect the ship from sinking is always exciting!

Quick Promotion

If you are in the SQA discipline and do things the developers cannot do in a typical software model, that’s a big leg up and can lead to quick promotion within the company. The reasons why you are more likely to get promoted is your role and your job to deliver. You are mostly a critic and critics can learn faster than anyone else because they get the chance to see things closely and learn how things can be done more properly and effectively. You are always on top of the developers and project managers because you identify what they are doing wrong and what can go wrong in the future. In this role, you naturally become familiar with the activities a senior or a project manager performs and can gain serious insight into these positions. You also review all of the work and analysis done throughout the project including feedback from the business experts or analysts. This makes QAs more likely to learn and get the position of a PM, BA etc. You can prove with your work and the valus you add that you are a valuable asset to the team and should be considered for the next step in your career.