Test Execution, Defect Management & Environments
Test Execution
Process
1. Verify entry criteria are met
2. Execute test cases (manual or automated)
3. Record actual results
4. Compare actual vs expected
5. Log defects for any failure
6. Update test case status: PASS / FAIL / BLOCKED / SKIPPED
7. Produce daily / sprint execution report
Status definitions
Status
Meaning
PASS
Actual = expected
FAIL
Actual ≠ expected; defect logged
BLOCKED
Cannot execute — prerequisite missing
SKIPPED
Out of scope or deferred
Defect Management
Defect Report Structure
ID: BUG-042
Title: Checkout button disabled after adding promo code
Severity: High
Priority: High
Environment: Staging v2.1.4
Steps to reproduce:
1. Add item to cart
2. Apply promo code "SAVE20"
3. Observe checkout button state
Expected result: Checkout button is enabled
Actual result: Checkout button is disabled
Attachments: screenshot.png, console.log
Reporter: QA / Date
Defect Lifecycle
New → Open (assigned to dev)
├─ In Progress → Fixed → Ready for Retest
│ ├─ PASS → Closed
│ └─ FAIL → Reopened → In Progress
└─ Rejected (not a bug / duplicate / cannot reproduce) → Closed
Severity vs Priority
These are independent axes — never conflate them.
Definition
Who sets it
Severity
Technical impact on the product
QA / tester
Priority
Business urgency — how fast to fix
Product / business
Severity
Example
Critical
System crash, data loss, security breach
High
Core feature broken, no workaround
Medium
Feature broken but workaround exists
Low
Cosmetic issue, minor UX friction
Classic mismatch examples:
Scenario
Severity
Priority
CEO's name misspelled on homepage
Low
High
Crash in rarely-used admin export
High
Low
Test Environments
Environment Tiers
Environment
Purpose
Who uses it
Dev
Developer testing, debugging
Developers
QA / Test
Functional testing, regression
QA team
Staging
Pre-production validation, UAT
QA, Product, Stakeholders
Production
Live users
Everyone
Environment Management Checklist
Config isolation: each env has its own config (DB, API keys, feature flags).
Data isolation: test data does not bleed into prod; no real PII in test envs.
Dependency management: external services mocked or using sandboxes in lower envs.
Reset strategy: ability to restore a clean state before each test cycle.
Access control: production access is restricted; audit logs enabled.
Test Data Management
Strategy
When to use
Static fixtures
Stable, well-known data needed for specific scenarios
Dynamic generation
Fresh data per test run; avoids shared-state conflicts
Data factories
Programmatically generate realistic objects with defaults + overrides
Masking / synthetic data
When you need prod-like data but cannot use real PII
Data isolation principles
Each test owns its data — do not share mutable state between tests.
Clean up after each test (or use transactions that roll back).
Never run destructive tests (DELETE, truncate) against shared environments.
Use separate DB schemas / namespaces per parallel test worker.
qa
testing