- November 23, 2018
- Posted by: fyber
- Category: Development
Need of QA | Testing Life Cycle |Quality Assurance Engineer
Quality Assurance: Definition
QA is a short form of Quality Assurance. It is also known as QA testing. Quality Assurance is an activity to ensure that an organization is providing the best possible product or service to customers. It focuses on improving the processes of delivering Quality Products to the customer.
Quality Assurance Engineer
The main aim of the Quality Assurance Engineer is to help in creating quality products. It is not about finding bugs or simple testing. The man function of Quality Assurance Engineer is to prevent defects and ensure the quality of the development process and its results.
What do QA Engineers do?
- They identify weakness and differences in the product at all project stages.
- They help to define project requirements.
- QA engineers provide complete information about the level of quality of a product.
- They test the product during all phases of the software development lifecycle (SDLC).
- They test the product’s usability.
- Evaluate the quality of a product.
QA Engineers Responsibilities
The responsibility of QA engineers is to review each feature before it is released and suggest edits to issues and approve code before it reaches the product owner. Hence, not only is the entire site under the QA engineer’s watchful eye, each part of the site is analyzed during its creation.
QA: Why is Necessary For Development?
The responsibilities for QA engineers are laborious. It is needed to dedicate the amount of time by someone who knows your system. QA is not only needed for each release, but regular testing across your site is also important to catch issues that may affect it from external sources.
For example, a flash player is still running on your site. Your browsers are discontinuing support since it is considered deprecated technology. Your QA engineer will know this.
QA: When do you need
In this part of the article, I will explain what QAs do and when they do it. The stages that I will describe are the common parts of the software testing life cycle (STLC).
Requirement Gathering | Test planning | Test Development | Test Execution | Test reporting |
Scope Definition | Test Plan/Strategy | Test environment | Functional Testing | Test Reports/ Results |
Create RTM | Resource | Test Cases/Test Data | Smoke, System, Reg. | |
Automation | Estimation Plan | Test Scripts | Defect Reporting/ Tracking | |
Feasibility |
Stage 1-Requirement Gathering
This is the most important stage in my point of view. Usually, in first meeting clients describes what they want. They outline the functionality of the desired app or service and decide what features it should include. But it rarely happens that the technologies they want it to include.
The examination of functional requirements is the job of Business Analysts (BAs) in many companies. However, they can not ensure the compatibility of the technical components. Therefore BAs share this stage with other experts, including QAs.
The task of the latter include:
- Analyzing and deciding whether the requirements can be combined within a single system.
- Which solution will work and which ones won’t.
- Planning the needed software development testing stages and techniques.
Validation of the product is the process of evaluating a product. Before the development starts to find out whether the product will meet the user’s expectations.
During this stage, to satisfy the user’s need QAs collaborate with BAs to research the degree. Basically, they check whether a product makes sense to the market and users. It is very important to collect feedback from users to see what’s missing or what can be improved in the product, for instance, design, feature, etc to provide a better user experience.
Even though the product may be great from a technical point of view, it may never reach its audience, unless this validation does not complete.
Stage 2-Test Planning
It is the activity that defines the testing strategy. It means that how much time and resources will QAs required to test the entire product. Test Planning includes the project scope, responsible roles, objective, and testing environments.
This stage helps the team to avoid unpredictable contingencies. If you have a plan with a list of action to be taken, makes it easier for QAs not to forget anything at the time of testing.
Stage 3 – Test Development
Now we have a Test Plan, it is time to set up a test environment and create test cases. A test case is a set of steps, QAs need to validate whether the software product is bug-free and works according to the specified requirements.
After this QAs make up the Acceptance Criteria that is, a standard that the software should meet to be considered successful. The actual testing begins when the test cases are ready and the acceptance criteria are agreed on.
Stage 4 — Test Execution
QAs execute tests that fit the technical specifics of the system which is based on the results of the previous stages- Requirements Gathering, Test Planning, and Development. If part of the system works well and the test has not found any defects, QA engineer mark it passed.
But if the test failed, it means there is something wrong with the code and QAs send a report about the code to developers. In this way, we confirm that we are not missing any details and the product is a quality one.
Stage 5 – Test Reporting
After the product testing, the team discusses what was ok, and what went wrong. It helps us to improve the testing in the future testing cycles. It is good to document every detected bug and then check with the reports to avoid misunderstanding between QAs and developers.
A question is revolving in your mind “what is testing cycles”? Testing cycle is the frequency with which we conduct these five test stages.
(STLC) Software Development and Testing Life Cycle
STLC is a testing process which is well executed in a systematic and planned manner. In the SLTC process, many activities are carried out to improve the quality of the product. Below we explain all stages those involved in typical Software Testing Life Cycle (STLC) and each step have its own Entry Criteria and deliverable.
- Requirement Analysis
- Test Planning
- Test Case Development
- Environment Setup
- Test Execution
- Test Cycle Closure
QA: Why do software products need
- Secure business
- Save money
- Protect your reputation
- Ensure your reputation
- Ensure the product’s quality
- Monitor the process
Secure business
Especially that apps which deal with buying stuff. Unless fully checked, It seems that users pay to a random person, and not you. Kindly check twice to prevent money losses.
Save money
Suppose QAs find a bug, the more expensive it is to fix it. One bug may cause another and another. Finally, you will have to rewrite the entire system because of one defect.
Rule of thumb: “Prevention is better than cure”.
Protect your reputation
If you have a bad first experience in front of users when they launch your app with it because of some bugs then they are very unlikely to try it ever again.
Ensure the product’s quality
The software product may just never go live without being tested. The quality includes many aspects, many of them are QAs job.
Monitor the process
However, QA engineers continually remind the team that they are working to please the users and meet the specified requirements. It lets everybody sure that the end product will not differ from the planned product.
In the next part of this article, I will explain how STLC overlaps the development process, and what the difference between QA and QC. I will also give a general description of some testing techniques that QA engineers use.
Quality Assurance and Quality Control
Quality Control encompasses all that activities which ensure a product is of good quality and meets specific requirements. Before the product released, the QC engineers focus on identifying defects in the developed products. Hence we can say that Quality Assurance encompasses Quality Control.
There are some cases where QC is required in place of QA. For instance, when a team gets a product developed by somebody else and is asked to check whether the code meets the requirements. In such type of case, only QC is needed.
However, in some development teams, QA and QC are combined with other engineering roles. Sometimes developers try to check their own code, but it is not good in regards to quality. Because it is much more difficult to find bugs in your own code as compared to someone else’s.
QA Testing Techniques
Test cases is a step-by-step approach to testing the functionality of a software product. Basically, it is a test technique that describes, what and how are going to test.
However, the test design technique is a process of selecting tests will verify that a software product meets the specification before its release.
The choice for the required techniques depends on the type of product, its status and requirements because there are various test design techniques, and each of them identifies defects of a certain type.
This picture shows the most common Test Design Techniques.
Conclusion
When we consider the role of Quality Assurance in the software development life cycle, we will notice that it includes lots of activities. Most products need QA engineer to set a mature development process, ensure the quality of the released software, and prevent errors in the system before users find them.
It is very difficult to test without special skills and an experienced developer. Therefore the best teams have QAs and developers working together so that they can combine their skills in the pursuit of quality software.