1. What is Software Testing?
Software testing is the process of evaluating a software application to ensure it meets requirements and works as expected.
Key goals:
- Find defects before release
- Validate functionality
- Improve quality and user satisfaction
2. SDLC vs STLC
SDLC (Software Development Life Cycle)
- Phases: Requirements → Design → Development → Testing → Deployment → Maintenance
- Focus: Building the software
STLC (Software Testing Life Cycle)
- Phases: Requirement Analysis → Test Planning → Test Design → Test Execution → Defect Reporting → Test Closure
- Focus: Testing the software
💡 Key difference: SDLC is about making the product, STLC is about validating the product.
3. Levels of Testing
- Unit Testing
- Performed by developers
- Tests smallest pieces of code (functions, classes)
- Integration Testing
- Ensures modules work together correctly
- Example: login module + database
- System Testing
- Tests the entire application as a whole
- User Acceptance Testing (UAT)
- Done by client/business users
- Checks if product meets business requirements
4. Types of Testing
Functional Testing
- Validates what the system does
- Examples: login, payment, signup
Non-functional Testing
- Validates how the system performs
- Examples: performance, load, security, usability
5. Verification vs Validation
- Verification = “Are we building the product right?”
(reviews, static testing, documentation checks) - Validation = “Are we building the right product?”
(dynamic testing, executing the application)
6. Test Artifacts
- Test Plan → outlines scope, approach, tools, schedule
- Test Case → steps to verify functionality
- Traceability Matrix → links requirements ↔ test cases
- Defect Report → logs bugs with details
7. Practical Example
Requirement: A user should be able to reset password via email link.
- Verification: Check requirement document includes fields for email validation and token expiry.
- Validation: Execute test cases to ensure password reset works on the actual app.
8. Quick Exercise
👉 Try this:
- Pick a real-life app you use daily (WhatsApp, Gmail, LinkedIn).
- Identify one functional and one non-functional test you could run.
- Functional: sending a message
- Non-functional: how fast the message is delivered
9. Summary
- SDLC vs STLC: SDLC = build, STLC = test
- Levels of Testing: Unit → Integration → System → UAT
- Types: Functional vs Non-functional
- Verification vs Validation: process vs execution
- Testers work with test plans, cases, and defect reports
💡 Next Lesson Preview: Test Design Techniques → We’ll cover equivalence partitioning, boundary value analysis, and decision tables.