Module 01

Testing basics & what SQA really means

Before frameworks and tools, get the foundations right: what testing is, why teams invest in it, and how quality assurance, quality control and testing relate.

What is software testing?

Software testing is the process of checking that software behaves as expected — and hunting for the places where it doesn't. A tester runs the application against requirements, feeds it both normal and hostile inputs, and reports every gap between "what it should do" and "what it actually does".

Testing can never prove software is bug-free. Its real job is to reduce risk: find the important defects before your users do, while they're still cheap to fix.

Example A signup form says "password must be 8+ characters".
A tester tries: a 7-char password (should be rejected),
an 8-char one (accepted), an empty field, a 500-char
paste, and an emoji-only password. Three of those
cases are where real bugs hide.

Why testing matters

  • Cost: a bug found in design costs minutes; the same bug in production can cost a release, revenue, or reputation.
  • Trust: users forgive missing features far more easily than broken ones.
  • Speed: teams with solid testing ship faster, because they aren't afraid of their own codebase.
Illustration of a checklist and a bug icon beside a laptop showing passing tests

SQA vs QC vs Testing — three layers, one goal

Beginners often use these interchangeably. They're related, but they sit at different altitudes:

LayerFocusQuestion it answersExample activity
SQA (Quality Assurance)The process — preventing defects"Are we building it the right way?"Defining coding standards, review checklists, test strategy
QC (Quality Control)The product — detecting defects"Did we build the right thing?"Reviewing the finished build against requirements
TestingThe execution — finding defects"Where exactly does it break?"Running test cases on the login flow and logging bugs

In short: SQA sets up the system, QC checks the output, testing does the hands-on hunting. A good QA engineer works in all three layers.

The main types of testing

Every testing type you'll ever meet falls into one of two families:

Functional testing

Checks what the system does. Does clicking "Pay" actually charge the card and show a receipt? Includes unit, integration, system, smoke, sanity, regression and acceptance testing.

Non-functional testing

Checks how well it does it. Is checkout fast under Black Friday load? Is it secure, accessible, usable? Includes performance, load, security, usability and compatibility testing.

Example Feature: "users can upload a profile photo".
Functional: does a JPG upload and display correctly?
Non-functional: does a 20MB photo upload within 3s?
Is the upload rejected if the file is a disguised script?

You'll meet the concrete types — smoke, regression, UAT, unit, API and more — in the Manual Testing and Automation Testing modules.

Back to path Next: SDLC & STLC