📘 Verification and Validation (V&V) – OOAD
🔹 1. Definition
Verification and Validation (V&V) are two key processes used to ensure that a software system is correct, complete, and meets user needs.
👉 Simple idea:
- Verification → “Are we building the system right?”
- Validation → “Are we building the right system?”
🔹 2. Difference Between Verification and Validation ⭐
| Feature |
Verification |
Validation |
| Focus |
Process correctness |
Product correctness |
| Question |
Are we building it right? |
Are we building the right product? |
| Method |
Reviews, inspections |
Testing, user feedback |
| Stage |
During development |
After development / during testing |
🔹 3. Verification
🔸 Definition:
Verification ensures that the software is developed according to specifications and design.
🔹 Activities in Verification:
- Requirement reviews
- Design reviews
- Code inspections
- Walkthroughs
🔹 Example:
Checking whether the system follows the class diagram design
🔹 Techniques:
- Static testing (no execution of code)
- Document checking
🔹 4. Validation
🔸 Definition:
Validation ensures that the final product meets user requirements and expectations.
🔹 Activities in Validation:
- System testing
- User acceptance testing (UAT)
- Prototyping feedback
🔹 Example:
Checking whether the system actually allows users to borrow books correctly
🔹 Techniques:
- Dynamic testing (code execution)
- Real-world scenarios
🔹 5. Types of Testing (Validation)
🔸 5.1 Unit Testing
- Test individual components
🔸 5.2 Integration Testing
🔸 5.3 System Testing
🔸 5.4 Acceptance Testing
🔹 6. Verification vs Validation Process Flow
Requirements → Verification → Design → Verification → Implementation → Validation → Final Product
🔹 7. Importance of V&V
- Ensures quality software
- Reduces errors
- Saves cost in long run
- Improves user satisfaction
- Ensures system reliability
🔹 8. Example (Library System)
🔹 Verification:
- Check if system design includes Book, Member classes
- Verify correct relationships
🔹 Validation:
- Check if user can issue/return book successfully
🔹 9. Key Concepts
🔸 Static vs Dynamic Testing
| Type |
Description |
| Static |
No execution (verification) |
| Dynamic |
Execution (validation) |
🔸 Error vs Defect vs Failure
| Term |
Meaning |
| Error |
Human mistake |
| Defect (Bug) |
Problem in code |
| Failure |
System not working |
🔹 10. Important Rules / Guidelines
- Perform verification early and continuously
- Perform validation with real users
- Use both processes together
- Document all findings
🔹 11. Likely Exam Questions
- Define verification and validation.
- Differentiate between verification and validation.
- Explain types of testing in validation.
- What is static and dynamic testing?
- Why is V&V important?
- Explain V&V with example.
- What is acceptance testing?
- Define error, defect, and failure.
- Explain verification activities.
- Role of V&V in software development.
🔹 12. Quick Revision Summary 🧠
- Verification → Build system correctly
- Validation → Build correct system
Key Points:
- Verification = Static
- Validation = Dynamic
👉 Trick to Remember:
"VV = Right Way + Right Product"