🐞 Manual Testing & QA Engineering Notes
1️⃣ What is Software Testing? (Verification vs Validation)
Definition: Software Testing ek aisi process hai jisme software application ko execute karke verify kiya jata hai ki kya wo specified business requirements ko meet karta hai aur defects/bugs se free hai ya nahi.
| Criteria | Verification (Static Testing) | Validation (Dynamic Testing) |
|---|---|---|
| Focus | "Are we building the product right?" | "Are we building the right product?" |
| Code Execution | Code run nahi hota (Reviews, Walkthroughs, Inspections). | Code execute karke actual outputs check kiye jaate hain. |
| Timing | Development se pehle aur dauran (Documentation phase). | Code compile aur deploy hone ke baad. |
2️⃣ SDLC vs STLC Life Cycle Stages
| STLC Phase | Input / Activities | Deliverable Output |
|---|---|---|
| 1. Requirement Analysis | BRD/FRD documents padhna, RTM (Requirement Traceability Matrix) prepare karna. | RTM Document, QA Queries Sheet |
| 2. Test Planning | Test strategy, scope, resources, schedule aur risks define karna. | Test Plan Document |
| 3. Test Case Design | Detailed test scenarios aur test cases likhna test data ke sath. | Test Cases Sheet, Test Data Set |
| 4. Environment Setup | QA Server build, test tools aur database configurations verify karna. | Test Environment Ready Status |
| 5. Test Execution | Test cases execute karna, bugs report karna aur retest karna. | Execution Logs, Bug Reports (Jira) |
| 6. Test Closure | Metrics analyze karna (Pass %, Defect density) aur sign-off dena. | Test Summary Report (TSR) |
3️⃣ Black-Box Test Design Techniques
Bina internal source code dekhe effective test inputs design karne ke do popular methods:
1. Equivalence Class Partitioning (ECP)
Input data ko valid aur invalid groups me divide karna. Har group se sirf ek representative value test ki jaati hai (e.g. Age field 18 to 60 accept karta hai):
- Invalid Class 1:
< 18(e.g. 15 → Should Reject) - Valid Class:
18 to 60(e.g. 35 → Should Accept) - Invalid Class 2:
> 60(e.g. 68 → Should Reject)
2. Boundary Value Analysis (BVA)
Zyadatar bugs boundaries (kinaron) par aate hain. Extreme edges ko test karna: Min-1, Min, Min+1, Max-1, Max, Max+1.
17 (Reject), 18 (Accept), 19 (Accept) aur 59 (Accept), 60 (Accept), 61 (Reject).
4️⃣ Writing Standard Professional Test Cases
Industry standard format jise QA teams daily spreadsheet ya Jira Test Management tools me likhti hain:
| Field | Example Value |
|---|---|
| Test Case ID | TC_AUTH_LOGIN_001 |
| Module / Feature | Authentication / Login Screen |
| Pre-conditions | User must be registered with email: user@example.com |
| Test Steps | 1. Navigate to /login 2. Enter valid email 3. Enter valid password 4. Click 'Sign In' |
| Expected Result | Redirect to /dashboard with HTTP 200, Welcome banner visible. |
| Actual Result | Successfully redirected to /dashboard. |
| Status | PASS (or FAIL if bug detected) |
5️⃣ The Complete Defect / Bug Life Cycle
Bug create hone se lekar permanently close hone tak ke stages:
6️⃣ Bug Severity vs Priority Matrix
| Criteria | Severity (Technical Impact) | Priority (Business Urgency) |
|---|---|---|
| Driven By | System crash, data loss, security failure | Business revenue, release timeline, client visibility |
| Decided By | QA Tester | Product Manager / Lead Developer |
| Levels | Critical, Major, Moderate, Minor | P1 (High/Immediate), P2 (Medium), P3 (Low) |
• High Severity, Low Priority: Purane rare operating system (e.g. Windows XP) par app crash ho jana (sirf 0.01% users affected).
• Low Severity, High Priority: Landing page ke main company logo par wrong spelling hona (Functionality ok hai par company reputation issue hai).
7️⃣ Types of Software Testing
| Testing Type | When Executed | Primary Objective |
|---|---|---|
| Smoke Testing | Build receive hote hi sabse pehle | Critical features (Login, Home) chal rahe hain ya build reject karni hai. |
| Sanity Testing | Bug fix ke baad chhota verification | Particular fixed component properly kaam kar raha hai ya nahi. |
| Regression Testing | Naya feature add hone par | Ensure karna ki naye code change se purane existing features break to nahi hue. |
| Non-Functional | Performance, Load, Security | System speed, 10,000 concurrent users stress limit aur data privacy audit. |