CSS Prepare

optional · CSS study notes

Difference between Software Validation and Verification (2017)

CSS CS Optional — Paper-I, Section-B, Topic V.

🔥 Frequency: 5 of last 7 papers (2019, 2020, 2021, 2022, 2025) — single most reliable SE pattern. Do NOT under-prepare.

🔑 Quick Table

VerificationValidation
"Building the product right?""Building the right product?"
Checks vs written specChecks vs customer's real need
Static: reviews, walkthroughs, inspectionsDynamic: acceptance testing, demos
Can be correct but still wrong systemConfirms spec itself was the right target

📌 Worked Example

  • Login page built exactly to spec → passes verification.
  • Spec omitted 2FA requirement client actually needed → fails validation.

🔥 Past Papers

  • 2019 Q7(c), 2020 Q8(b), 2021 Q8(b), 2025 Q7(b)&Q8(a)

⚠️ MCQ Trap

  • Requirement correct but never confirmed with customer → validation failure, not verification (verification only checks the written spec, which can itself be wrong).

📜 Past-Paper Questions & MCQs (CSS 2016–2026)

2017 · Paper-I · Q4(b), 2018 · Q7(a), 2025 · Q7(b) · 6, 4 and 6 marks

Q. Differentiate between software validation and verification. Give examples, the techniques used (including empirical evaluation), and say when each is used.

Ans.

BasisVerificationValidation
Question answered"Are we building the product right?""Are we building the right product?"
ChecksConformance to specification and designConformance to user needs
TypeStatic: no execution neededDynamic: the software is run
TechniquesReviews, walkthroughs, inspections, static analysisTesting (system, acceptance, beta), user trials
WhenThroughout development, earlyAfter a runnable product exists
ExampleInspecting the design for missing requirementsUsers try the app and confirm it meets their needs
  • Empirical software evaluation techniques: usability testing, user surveys and questionnaires, beta testing and field trials, controlled experiments and A/B tests, benchmarking and performance measurement, and case studies.
  • Where to use each: verification early (requirements and design reviews, code inspections) to catch defects cheaply. Validation later (system, acceptance and beta testing) to confirm the product satisfies users.