Software Testing Notes (Unit 1 & Unit 2)
UNIT 1: Basics of Software Testing
Software Testing: Process of executing a program to find defects and ensure quality.
Objectives of Testing:
- Find defects
- Ensure requirements are met
- Improve quality
- Gain customer confidence
Skills of Tester:
- Communication
- Analytical skills
- Technical knowledge
- Domain knowledge
STLC:
1. Requirement Analysis
2. Test Planning
3. Test Case Design
4. Test Execution
5. Defect Reporting
6. Test Closure
Entry Criteria:
- Requirements ready
- Test plan ready
- Environment setup
Exit Criteria:
- Test cases executed
- Bugs fixed
- Coverage achieved
Verification vs Validation:
Verification: Static, checks documents
Validation: Dynamic, checks actual product
Static Testing:
- No code execution
- Review, walkthrough, inspection
Dynamic Testing:
- Code execution
- Functional testing
Black Box Testing:
- No code knowledge
- Focus on inputs/outputs
White Box Testing:
- Code knowledge required
- Focus on internal logic
Equivalence Partitioning:
Divide input into valid/invalid groups
Boundary Value Analysis:
Test min, max, just above/below values
UNIT 2: Types and Levels of Testing
Unit Testing:
- Test individual components
- Done by developer
- First level of testing
Stub:
- Used in top-down
- Simulates lower modules
Driver:
- Used in bottom-up
- Simulates higher modules
Integration Testing:
- Combine modules and test
Types:
- Top-down
- Bottom-up
- Big Bang
- Sandwich
Top-Down Testing:
- Start from main module
- Use stubs
Bottom-Up Testing:
- Start from sub-modules
- Use drivers
Sandwich Testing:
- Combination of top-down and bottom-up
Performance Testing:
Check speed, scalability, stability
Load Testing:
Test under expected load
Stress Testing:
Test beyond limits
Alpha Testing:
- Done by developers
- Controlled environment
Beta Testing:
- Done by users
- Real environment
Smoke Testing:
- Basic testing
- Checks main functions
Sanity Testing:
- Specific testing after changes
Other Testing Types:
- Security Testing
- GUI Testing
- Database Testing
- Client-Server Testing