QA Fundamentals
QA Fundamentals

QA Fundamentals

QA (Quality Assurance) is about preventing defects and ensuring software meets requirements, user expectations, accessibility standards, and business goals.

QA is broader than testing.

  • QA (Quality Assurance) → Process-focused (prevent problems)
  • QC (Quality Control) → Product-focused (find problems)
  • Testing → Execution activity to identify defects

Example:

A checkout page fails when discount codes are entered.

  • QA asks: Why wasn't this scenario covered?
  • QC finds the defect.
  • Testing reproduces it.

1. Test Planning

A Test Plan defines what will be tested, how it will be tested, who will test it, and when testing happens.

Typical Test Plan sections:

Objectives

What are we validating?

Example:

Verify checkout functionality works correctly across browsers and devices.

Scope

In Scope

  • Product search
  • Basket
  • Checkout
  • Payment gateway

Out of Scope

  • Legacy admin reporting

Test Types

Include:

  • Functional testing
  • Regression testing
  • Accessibility testing
  • Performance testing
  • Cross-browser testing
  • Security testing

Environment

Example:

  • QA environment
  • Staging
  • Production smoke validation

Browsers:

  • Chrome
  • Edge
  • Safari
  • Firefox

Devices:

  • Mobile
  • Tablet
  • Desktop

Risks

Example:

Risk Mitigation
Delayed requirements Clarify early
Environment instability Use backup test environment
Third-party API downtime Mock services

Entry Criteria

Conditions before testing starts:

Example:

  • Build deployed
  • Requirements approved
  • Test environment available

Exit Criteria

Conditions to stop testing:

Example:

  • No critical defects open
  • 95% test pass rate
  • UAT signoff complete

2. Test Cases

A Test Case is a documented set of steps to verify functionality.

Basic structure:

Field Example
Test ID CHK-001
Feature Checkout
Objective Verify successful payment
Preconditions User logged in
Test Steps Add product → Checkout → Pay
Test Data Visa card
Expected Result Order confirmed
Actual Result Filled during execution
Status Pass / Fail
Defect ID BUG-123

Example:

Test Case: Login

Precondition
User account exists.

Steps:

  1. Open login page
  2. Enter valid email
  3. Enter password
  4. Click Login

Expected:

  • Dashboard loads
  • User session created

Positive vs Negative Testing

Positive:

Enter valid credentials → Login succeeds

Negative:

Enter invalid password → Error shown

Boundary:

Password minimum length = 8

Test:

  • 7 characters
  • 8 characters
  • 9 characters

3. Regression Testing

Regression testing ensures:

New changes did not break existing functionality.

Example:

Developer changes checkout tax calculation.

Regression suite validates:

✓ Basket
✓ Discounts
✓ Shipping
✓ Payment
✓ Order confirmation

Regression testing happens:

  • New releases
  • Bug fixes
  • Infrastructure changes
  • Browser updates

Good regression suites are:

  • Stable
  • Repeatable
  • Often automated

Typical candidates for automation:

  • Login
  • Checkout
  • Search
  • User registration

4. Smoke Testing

Smoke testing answers:

"Is this build stable enough for deeper testing?"

Quick, high-level validation.

Example release smoke test:

Area Test
Homepage Loads
Login Works
Search Returns results
Checkout Opens
Payment Can initiate

If smoke fails:

❌ Testing stops
❌ Build returned to development

Think:

Smoke = Build verification

Usually 5–30 minutes.


5. Sanity Testing

Sanity testing validates:

"Did the specific fix/change actually work?"

Smaller and focused.

Example:

Bug fixed:

Discount code SAVE10 not applying.

Sanity tests:

✓ SAVE10 works
✓ Basket total updates
✓ Tax recalculates

No need to test full checkout.

Think:

Sanity = Change verification


Smoke vs Sanity

Smoke Sanity
Broad Narrow
Build stability Specific change validation
Before detailed testing After bug fix/change
Short suite Very focused
Entire system areas One impacted area

Example:

New release deployed:

→ Run Smoke

Developer fixes payment timeout:

→ Run Sanity


6. UAT (User Acceptance Testing)

UAT validates:

"Does the software meet business/user needs?"

Usually performed by:

  • Business users
  • Product Owners
  • SMEs
  • Client stakeholders

QA supports but often does not own signoff.

Example eCommerce UAT scenarios:

Business flow

Customer:

  1. Search product
  2. Add to basket
  3. Apply promotion
  4. Checkout
  5. Receive confirmation email

Business validates:

✓ Process matches expectations
✓ Promotions behave correctly
✓ Reports updated


UAT entry criteria:

  • QA complete
  • Major defects resolved
  • Stable environment

UAT exit criteria:

  • Business approval
  • Critical defects fixed
  • Signoff obtained

Simple release flow

Requirements
↓
Test Planning
↓
Test Case Creation
↓
Development
↓
Smoke Testing
↓
Functional Testing
↓
Regression Testing
↓
Accessibility Testing
↓
UAT
↓
Production Deployment
↓
Production Smoke Check

Everything Testing
About Everything Testing

QA Tips - helpful tips, articles, and guidance.

  • Helpful tips
  • Articles
  • Guides
  • Resources

Tips and articles made simple

About Everything Testing