What is Quality Assurance?

alif jati pratama
Bento Tech Innovation
6 min readJul 21, 2023

The role of Quality Assurance (QA) is crucial in software development methodology. QA is responsible for ensuring that the produced software meets the established quality standards and that user requirements are well fulfilled. So, what is Quality Assurance (QA)?

Quality Assurance (QA) is a process designed to ensure that the products or services produced meet the established quality standards. QA involves activities such as test planning, test strategy development, test case design and implementation, and monitoring and evaluating test results to ensure that the products or services meet the specified requirements.

There are two types of approaches used in the software testing process: Automation Testing and Manual Testing. The difference between Manual Testing and Automation Testing lies in how the testing is conducted. Here are their differences:

Manual Testing:

Manual testing is a type of testing where testing is done manually by a human tester. In manual testing, test cases are executed manually, and the results are observed and checked directly. Manual testing requires direct human interaction with the software under test and involves human intuition and evaluation in observing and assessing test results. In manual testing, humans act as active testers and involve a broader context understanding.

Automation Testing:

Automation testing is a type of testing where tools and automated scripts are used to execute test cases. In automation testing, test scripts are created and run using automated testing tools. Automated test scripts can perform tasks such as filling out forms, executing functions, comparing results with expected outputs, and reporting test results. Automation testing is faster and easily repeatable, making it efficient for testing that requires intensive repetition. Automation testing is suitable for large-scale testing, regression testing, and testing that requires high speed and precision.

The main difference between manual testing and automation testing is that manual testing relies on direct human interaction and involves human observation, while automation testing uses tools and automated scripts to execute test cases. Manual testing is more suitable for testing that requires human intuition and evaluation, while automation testing is more efficient for repetitive testing or testing on a large scale. The choice between manual testing and automation testing depends on project requirements, available resources, and the scale and complexity of the desired testing.

Software Testing Phases.

Quality Assurance (QA) is usually involved in several stages of software testing to ensure appropriate quality. Here are some common stages in software testing performed by a QA:

  • Test Planning:

The test planning stage involves formulating a testing strategy aligned with the project’s objectives and requirements. QA will identify testing objectives, required resources, testing scope, and the desired testing schedule. For example at BerandaToko, the QA team conducts Test Planning along with the creation of the Technical Requirement Document (TRD). The impact of Test Planning is to shorten the time required to execute testing when the project reaches the testing phase.

  • Requirement Analysis:

QA will analyze the functional and non-functional requirements of the software to be tested. They ensure a clear understanding of expected requirements, desired usage, and established acceptance criteria.

  • Test Design:

At this stage, QA designs test cases that cover relevant testing scenarios. They determine the necessary test steps, required test data, and expected outcomes for each test step. The creation of test scenarios is done with acceptance criteria provided by the Product team and based on the design provided by the UI/UX team.

  • Test Implementation:

This stage involves implementing the test cases designed by QA. Test cases are executed according to the defined test steps. QA observes and records the test results for further evaluation.

  • Test Reporting:

QA will report the test results to the development team and management. This includes bug reports, error notes, test failures, and an overall evaluation of the tested software’s quality. Test Reporting at BerandaToko usually takes the form of JIRA tickets; the QA team delivers test results to the Product Owner, QA Lead, and Engineer Manager. For testing done after deployment to production, the QA team will report the testing results through a Release note via the notion platform, which will be reported to stakeholders.

  • Test Monitoring and Control:

QA monitors and oversees the overall testing process. They ensure that testing is conducted according to the established plan and procedures. If any issues or changes are found, QA takes necessary actions. In the BerandaToko team, the QA team conducts bug hunting in production, which can affect previously undetected bugs. For the results of bug hunting, the QA team usually validates with the relevant team and creates bug report tickets on the Kanban board. Then, they prioritize the bugs and set deadlines according to their priorities.

  • Retrospective and Improvement:

After completing the testing stages, QA conducts a retrospective to evaluate the testing process and identify areas for improvement. They can provide recommendations and lessons learned for future software development and testing.

It should be noted that the stages of software testing can vary depending on the development methodology used, project size, and the specific context of the organization.

What are the requirements to become a Quality Assurance (QA)?

To become a Quality Assurance (QA), several skills and knowledge are required. Here are some things to consider to become a QA:

1. Knowledge of Software Testing:

Having a strong understanding of the principles and methods of software testing is essential to be a good QA. This includes understanding testing concepts, testing methods, types of testing, and common testing practices.

2. Understanding of Software Development Processes:

Understanding the software development life cycle and how QA interacts with the development process is crucial. Understanding development phases, different development models, and QA’s role in each development phase is an important skill to possess.

3. Analytical Skills:

QA needs to have excellent analytical abilities to analyze requirements, identify testing scenarios, and interpret test results. These abilities help in planning, designing, and executing testing effectively.

4. Communication Skills:

Good communication skills are very important in the QA role. QA needs to communicate with the development team, management, and other team members to understand requirements, report test results, and collaborate in resolving testing issues.

5. Technical Skills:

Good technical skills are also required in the QA role. This includes understanding programming languages, automated testing tools, bug management tools, and the use of relevant software and hardware in testing.

6. Expertise in Automation Testing:

Having knowledge and experience in automation testing can be an added value for a QA. The ability to design, develop, and execute automated test scripts using commonly used automated testing tools is a valued skill.

7. Precision and Attention to Detail:

QA should have a tendency to be very meticulous and pay attention to details. They need to be able to identify issues, verify requirements, and ensure high quality in the testing process.

8. Adaptation and Learning Abilities:

The world of software testing is continuously evolving, and QA needs to be ready to learn and adapt to technological changes, new testing methods, and current industry trends.

In addition to the skills and knowledge above, having certifications like ISTQB (International Software Testing Qualifications Board) can provide additional recognition and confidence in the field of software testing.

--

--