Software Testing - Detailed Exam-Oriented Notes
1. Basics of Software Testing - Faults, Errors, and Failures
- **Software Testing:** The process of executing a program to find defects and ensure it meets user
requirements.
- **Faults:** A defect in the system that may cause incorrect behavior.
- **Errors:** Mistakes in logic or coding by developers.
- **Failures:** When a system does not function as expected during execution.
**Example:** A login form accepts incorrect passwords due to improper validation.
- **Error:** Developer forgot to implement proper validation.
- **Fault:** Incorrect password check logic.
- **Failure:** User logs in with a wrong password.
**Exam Questions:**
- Define fault, error, and failure. (April 2022)
- Write two differences between bugs, faults & failures. (April 2022)
2. Testing Objectives & Principles
- **Objectives of Testing:**
1. Finding defects before deployment.
2. Ensuring software meets user requirements.
3. Improving software reliability and security.
4. Preventing future defects.
- **Principles of Testing:**
1. Testing shows the presence of defects, not their absence.
2. Exhaustive testing is impossible; focus on key areas.
3. Early testing saves cost and time.
4. Defect clustering: Most defects occur in small modules.
5. Repeating the same tests reduces effectiveness.
**Exam Questions:**
- List two objectives of software testing. (Nov 2023)
3. Verification and Validation (V&V)
- **Verification:** Are we building the product right? (Focus on processes)
- Example: Code reviews, design reviews, inspections.
- **Validation:** Are we building the right product? (Focus on actual testing)
- Example: Running the software to see if it meets requirements.
**V-Model:**
1. Requirement Analysis -> Acceptance Testing
2. Design -> System Testing
3. Coding -> Unit & Integration Testing
**Exam Questions:**
- Define verification and validation. (Nov 2022)
- Explain V-model with a diagram. (April 2022, Nov 2023)
4. White Box & Black Box Testing
- **White Box Testing:** Internal structure is tested (Path Testing, Code Coverage).
- Example: Testing all possible loops and conditions in a login system.
- **Black Box Testing:** Functionality-based testing without looking at code.
- Example: Checking if a login form accepts correct credentials.
**Boundary Value Analysis (BVA):** Testing at extreme input values.
- Example: Age field (Valid: 18-60), test values: 17, 18, 60, 61.
**Equivalence Partitioning (EP):** Dividing input into valid and invalid sets.
- Example: Password length (Valid: 8-16 characters), test groups:
- Below 8 (invalid), 8-16 (valid), Above 16 (invalid).
**Exam Questions:**
- Explain Equivalence Partitioning. (April 2022)
- Difference between Black Box & White Box Testing. (Nov 2022, Nov 2023)
5. Test Case Design & Testing Life Cycle
- **Test Case:** A document with input, execution steps, expected result, and actual result.
- Example Test Case for Login Form:
1. Input: Username & Password.
2. Expected Result: Successful login.
3. Actual Result: Login failed.
**Software Testing Life Cycle (STLC):**
1. Requirement Analysis
2. Test Planning
3. Test Case Development
4. Test Execution
5. Test Closure
**Exam Questions:**
- What is a test case? Explain with an example. (April 2022, Nov 2023)
- Write a test plan for Flipkart login page. (April 2023)
6. Differences Between Testing & Debugging
- **Testing:** Identifies defects but does not fix them.
- **Debugging:** Developers fix defects found during testing.
| Feature | Testing | Debugging |
|---------------|------------------------|-----------------------|
| Who Performs | Testers | Developers |
| Purpose | Finds defects | Fixes defects |
| Process | Execution of test cases | Analyzing & fixing |
**Exam Questions:**
- Differentiate between testing and debugging. (Nov 2022)
7. Agile Testing & Automated Testing
- **Agile Testing:** Continuous testing during development.
- **Automated Testing:** Uses scripts & tools (Selenium, JUnit) to speed up testing.
- **Agile Testing Quadrants:**
1. Unit & Component Testing
2. Functional Testing
3. Non-Functional Testing (Performance, Security)
4. User Acceptance Testing
**Exam Questions:**
- Write short note on Agile Testing Quadrants. (Nov 2023)
- Explain different layers of automated testing. (Nov 2022)