QA explained: What does a QA engineer do in software testing?

qa engineer testing

Key Takeaways

  • QA Helps Prevent Problems: Quality assurance is not just about finding bugs after software is built. It aims to reduce problems throughout development.
  • QA Engineers Test Real User Scenarios: They check whether websites, apps and software behave as expected under normal and unusual conditions.
  • Testing Can Be Manual Or Automated: QA engineers may click through features themselves or use automated scripts for repetitive checks.
  • QA And QC Are Different: QA focuses more on processes and prevention, while QC focuses more on finding defects in the finished product.
  • QA Does Not Always Require Advanced Coding: Manual QA roles may require limited coding, while automation QA positions tend to be more technical.

A QA engineer helps make sure software works properly before users encounter problems themselves. They test features, look for bugs, check unusual scenarios, document issues and work with developers to verify fixes.

The primary question QA asks is “What could go wrong if a real customer uses this?” 

For a simple contact form, that might mean checking whether the Submit button works. 

For an online store, it could mean testing payments, failed transactions, and what happens when a product sells out halfway through an order.

It’s an important but sometimes overlooked area of expertise, which we like to dedicate a topic on.

What Is QA?

QA, or quality assurance, is the process of maintaining and improving software quality throughout development.

The important word here is assurance.

Good QA starts earlier, often when features are still being discussed. To illustrate this, imagine a food delivery app like Grab is adding scheduled orders.

A developer may initially receive this requirement: “Customers should be able to schedule an order for later.” Now that’s great for normal folks, but someone working in QA may immediately ask:

  • How far in advance can customers order?
  • What if the restaurant closes before the selected time?
  • Can customers edit a scheduled order?
  • What happens if an item becomes unavailable?
  • Can the customer cancel the order?
  • When should payment be processed?

None of those questions involve finding a bug, but they help prevent unclear requirements from becoming bugs later.

What Does QA Actually Check?

Once development begins, QA becomes more hands-on.

A QA process can involve:

  • Reviewing Requirements.
  • Creating Test Cases.
  • Testing New Features.
  • Checking Existing Features After Updates.
  • Finding And Recording Bugs.
  • Retesting Fixed Issues.
  • Testing Different Devices And Browsers.
  • Automating Repetitive Checks.
  • Reporting Quality Risks Before Release.

The aim is to reduce defects and make sure serious problems are found before customers do. 

“An example will be like asking an AI Chatbot if it could call the ambulance for you or ask it to rob a bank. The AI naturally can’t (and shouldn’t do both) but if they say they can, that’s a bug.”

What Is the Role of a QA Engineer?

A QA engineer plans and carries out tests to determine if the software behaves according to its requirements and expected user experience. A small software development team might have one QA engineer who handles everything while a large software company may divide QA into specialist roles.

However, the basic workflow is usually similar.

1. They Review Requirements Before Testing Begins

QA engineers often examine requirements, user stories or product specifications before a feature is developed.

Their job is partly to spot ambiguity.

For example: “Users can reset their password.”

QA may ask:

  • Does the reset link expire?
  • Can it be used twice?
  • What happens if the email is not registered?
  • Should users be logged out of other devices?
  • Are there password complexity requirements?

These questions make the eventual feature easier to test and reduce misunderstandings between product teams and developers.

2. They Create Test Scenarios

QA engineers then decide how a feature should be tested.

Let’s say an application has a login page, pretty standard right? 

The obvious test is: Correct email + correct password = successful login.

QA will go further and test:

  • Correct Email + Wrong Password.
  • Wrong Email + Correct Password.
  • Blank Password.
  • Invalid Email Format.
  • Locked Account.
  • Multiple Failed Login Attempts.
  • Login On Mobile.
  • Login After A Password Reset.

This is why QA requires a slightly different mindset from simply using the software normally because much like a speedrunner in a video game, you are actively trying to find where it might fail and exploit them.

3. They Perform Manual Testing

Manual testing means physically using the software and checking the outcome.

A QA engineer might open an app, tap buttons, enter information, switch between screens and deliberately enter unusual values.

This remains important even when companies use automation. At the end, Human employees are still useful for spotting things such as:

  • Confusing Navigation.
  • Poorly Worded Error Messages.
  • Unexpected Visual Behaviour.
  • Awkward Mobile Layouts.
  • Inconsistent User Experiences.

While an automated test can tell you that a button works, it is much harder for that test to tell you that users will have no idea what the button means.

4. They Use Automated Testing

Some checks are too repetitive to perform manually every time software changes. Hence, companies will use test automation.

QA engineers can create scripts that automatically check things such as:

  • Login Functionality.
  • Checkout Processes.
  • APIs.
  • Form Submissions.
  • Existing Features After Updates.

5. They Report Bugs Clearly

Finding a bug is only useful if someone else can reproduce it. But bug reporting is equally as important. How to replicate the bug? What steps are needed to trigger it.

Problem: Payment fails when a promotional code reduces the order below $10.

Steps: Add an item, apply the promotional code and proceed to card payment.

Expected: Payment page loads normally.

Actual: Customer sees an error message.

Clear reporting saves developers from having to guess what happened.

6. They Retest Fixes

Once a developer fixes the problem, QA usually tests it again. This sounds obvious, but fixes can sometimes create new problems.

A change that repairs one discount code could accidentally affect every other promotional code.

QA therefore checks:

  1. If the original bug is fixed.
  2. Whether related functionality still works.

This second process is often called regression testing.

Read more: What are the stages of software testing

What Types of Software Testing Do QA Engineers Perform?

You may come across dozens of testing terms, but most people only need to understand a few common ones.

Functional Testing

Does the feature actually work?

Example: Does clicking “Pay Now” successfully process a valid payment?

Regression Testing

Did a new update accidentally break something that worked previously?

Usability Testing

Is the software understandable and practical for users?

Compatibility Testing

Does it work across relevant browsers, devices and operating systems?

Performance Testing

What happens when the system handles heavier traffic or workloads?

API Testing

Are different software systems exchanging information correctly?

The mix depends heavily on the product.

Testing a basic company website is very different from testing a banking application serving thousands of simultaneous users.

What Is the Difference Between QA and QC?

QA focuses primarily on preventing quality problems through better processes, while QC ( Quality Control) focuses primarily on finding defects in the product itself.

They overlap in many ways, especially in software companies where the term “QA” is often used broadly.

QAQC
Focuses On ProcessesFocuses On The Product
Tries To Prevent DefectsTries To Detect Defects
Starts Earlier In DevelopmentOften Happens During Or After Production
Includes Planning And StandardsIncludes Testing And Inspection
More ProactiveMore Reactive

A simple analogy is a restaurant kitchen.

QA would include creating food-handling procedures, recipes, staff training and preparation standards so mistakes are less likely to happen.

QC would involve checking the finished dish before it reaches the customer.

Software works similarly because reviewing requirements and improving testing processes lean towards QA.

Testing a completed feature and discovering that the Submit button does nothing leans towards QC.

But really one QA engineer will perform both.

When Should QA Start in Software Development?

QA should ideally begin before the software is finished.

Waiting until the final week before launch creates a serious problem.

  1. QA finds a detrimental issue.
  2. Developers fix it.
  3. The fix affects another feature.
  4. That feature needs retesting.
  5. The launch deadline suddenly becomes much harder to meet.

Bringing QA into requirements, design and development allows issues to be identified earlier when they are usually easier and cheaper to correct.

For businesses outsourcing software development, it is therefore worth asking not only who will build the product, but also how the development company handles testing and QA throughout the project. This is super important.

Conclusion: Why Does QA Matter?

QA engineers act as one of the final lines of defence between software problems and real users.

They challenge assumptions, test unusual scenarios, document defects and help development teams improve the quality of each release.

A good QA engineer is therefore not simply someone clicking buttons until something breaks. They all ask the question: “If people use this software right now, what could go wrong?”

Businesses planning a website, app or custom platform should consider QA alongside design and development rather than treating testing as an optional final step. 

When comparing software development companies in Singapore, it is also worth checking whether QA, testing and post-fix verification are included in the development process.

Frequently Asked Questions About Quality Assurance

What Does QA Stand for in Software Development?

QA stands for quality assurance. It refers to processes used to maintain software quality, prevent defects and identify problems throughout development.

What Does a QA Engineer Do?

A QA engineer reviews requirements, creates test scenarios, tests software, reports bugs, verifies fixes and helps prevent quality problems before software reaches users.

Is QA Engineer a Good Career for Beginners?

Manual QA can be relatively accessible for beginners because some roles require limited programming knowledge. Technical and automation QA roles generally require stronger coding skills.

Does QA Require Coding?

Not always. Manual QA positions may require little coding, while automation QA engineers often use programming languages and testing frameworks.

What Is the Difference Between QA and Software Testing?

Software testing mainly evaluates whether a product works correctly. QA is broader and also covers processes designed to prevent defects and improve software quality.

Can Developers Do Their Own QA?

Developers can and should test their own work, but dedicated QA provides an additional perspective. Testers may identify edge cases and user behaviours that developers did not consider while building the feature.