There is a position called “QA” in the occupation of IT engineer. If you want to get involved in software products from the perspective of software quality control and software testing, QA will be one of your options. This time, I will explain what kind of skills and experience is required to play an active role as a QA, while touching on the work content and positioning of the profession called QA.
When you start working in the IT industry, you will find that development work is broad. Even if you take one programming language, there are various languages. The development process also has different roles such as what part it is responsible for, such as requirement definition/design/implementation test, review, and various management.
QA (Quality Assurance) refers to guarantee the overall quality of developments such as software, and its occupation.
QA generally has different missions and work contents depending on the company or organization, and many companies do not have a job category called QA.
For example, in some cases, the main role is as a test engineer performing testing work, while in other occupations specializes in reviews.
Other occupations specialize in quality control, which collects and analyzes data to provide feedback on the quality of the development process and the quality of the product.
Those who specialize in testing, reviewing, data collection and analysis, etc. are collectively referred to as “QA engineers” in this paper.
The purpose of QA engineers is to test software
You may think that the QA engineer job is not necessary because the developer tests it, but the test performed by the developer and the test performed by the QA engineer has different purposes.
The main purpose of the tests performed by the developer is to “confirm whether the operation conforms to the specifications” within the scope developed by the developer and the scope of responsibility. It tends to be conducted in the form of integration tests based on the range of influence.
On the other hand, the QA engineer conducted a scenario test based on the actual usage assumptions of the users from the viewpoints of “whether the system as a whole is in a form that is easy for the user to use” and “whether the benefits for the user that were initially guaranteed are not impaired”. Or, test by methods such as system load test and screen UI verification.
In this way, as long as the QA engineer has the role of “responsible for the overall quality of the software”, it is characterized by performing quality assurance from a completely different perspective from the testing performed by the developer. Developers aim to improve software quality from the standpoint of making software, but QA aims to improve quality from the standpoint of software users.
Position and role of QA engineer
As a “Quality Assurance Specialist”, QA engineers are involved in the entire development process and work to improve the quality of software.
In the previous chapter, we described the characteristics of testing by QA engineers, but there are various other tasks in charge of the QA engineer occupation. Let’s look at them in order.
Confirmation and evaluation of functional specifications at the design stage
To guarantee quality as QA, we may also review and evaluate functional specifications and design contents. Make sure that there are no omissions or ambiguities in the specifications, that the design/implementation corrections and additions due to specification changes and design changes are appropriate, and that there are no omissions, and avoid creating defects. We may also suggest specifications to developers if necessary.
Test case design and test execution
My main job as a test engineer is to design and execute test cases. Specifically, when a user case or scenario is created and a use case flow based on this is executed, it is confirmed and evaluated whether the expected operation is performed. If a bug is detected during the test, we will obtain evidence regarding the operation of the system from the confirmation of the reproduction procedure and report it to the development side.
Test results and defect analysis
It is also the job of the QA engineer to carry out tests and analyze the number and contents of defect detections obtained from the test results. We may find the tendency of defects from the numerical values and report it to the development leader, or propose and implement measures to prevent a recurrence.
In addition to testing, we also analyze both product and process aspects such as analysis of review results and analysis of man-hours required for each process, and give feedback on the entire development.
Considering test automation
For regression tests that are constantly performed during development, or tests that handle huge amounts of data, we may take steps to automate the tests. We will consider efficient test implementation plans and means, and realize automation while using tools such as Selenium and Jenkins.
The work of building and running automated tests is the same as development work.
QA engineers have different roles from product/system developers, but sometimes they are required to have a background in design and programming from the aspect of quality assurance.
Review/improvement of the development process
A thorough analysis of the results of reviews and tests reveals problems and points for improvement in the development process.
Why did you create the defect, and why couldn’t you detect it?
How should we develop correctly from the beginning without creating the defect, how should we review it to detect it more quickly and reliably, and how should we test it?
In this way, it is also an important task to analyze various data and information, improve the development process, and improve productivity and quality.
Responding to customer inquiries
In situations where there is no specialized contact point for customer inquiries, the QA engineer may respond to the customer’s specifications. In particular, test engineers are often more familiar with the product specifications of the entire product than developers, and may be in charge of troubleshooting.
Some companies have an organizational structure in which the QA department has strong authority in terms of quality control, and the QA department is solely responsible for market defects, not the development department.
The aptitude of QA engineer
As mentioned above, QA engineers have a very wide range of tasks and, like developers, require a variety of skills.
For example, you may need technical skills such as numerical analysis and automation coding skills, as well as skills to design and run software tests. Furthermore, when reviewing the development process and formulating measures to reduce defects, the ability to think logically and solve problems is also required.
Above all, the question is whether or not you have a broad perspective and flexible response capabilities that comprehensively capture the entire software product. If you are a person who wants to solve problems by various approaches when a problem occurs or a system operation is hindered, you can say that it is suitable for a QA engineer.
In this article, I introduced the job type of QA engineer, the job content, and the aptitude for the purpose. QA engineers may be less well known than development engineers, but they play an important role in ensuring the quality of software products. If you are interested, why not consider a career path as a QA engineer?
If you ever want to know about similar things, check out the Facebook page Maga Techs.