---
title: "Verification versus validation; critical systems"
subject: "Software Engineering"
chapter: 7
key: "semester_5/software_engineering:verification-vs-validation"
source: https://www.bctengineer.com/q/semester_5/software_engineering/verification-vs-validation
site: BCT Engineering
---

# Verification versus validation; critical systems

Software Engineering · Chapter 7: Verification and validation

- Asked in: year not given, 4+2+2+2 marks
- Video: [Software Testing - Verification VS Validation](https://www.youtube.com/watch?v=l-qrwygL7Nc) — TechVedas .learn
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/software_engineering/verification-vs-validation
- Whole chapter: https://www.bctengineer.com/md/semester_5/software_engineering/chapter-7

## Question

Compare and contrast verification and validation. Define critical system. How does partitioning augments in V and V model? Explain with example.

## Short answer

Verification checks conformance to specification, or building the product right, while validation checks user needs, or building the right product. A critical system is one whose failure threatens life, the environment, or serious loss and needs high dependability. Partitioning in the V-model gives each subsystem a test plan, enabling separate unit and integration testing, as in an ATM system.

## Answer

**Verification** checks that the software conforms to its specification ("Are we building the product right?"), while **validation** checks that the software meets the customer's real needs ("Are we building the right product?"), as defined by Boehm.

#### Verification versus validation

| Point | Verification | Validation |
|---|---|---|
| Question | Building the product right? | Building the right product? |
| Checked against | Specification and design | User needs and expectations |
| Main methods | Reviews, inspections, walkthroughs, static analysis | Testing the running system, acceptance tests, prototypes |
| Nature | Mostly static (no execution) | Mostly dynamic (execution) |
| Timing | Every phase, from requirements on | Mainly at the end of stages and at delivery |
| Done by | Developers, QA team | Testers with users and customers |
| Example | Inspecting code to see it follows the design | Users checking that the billing report is useful |

**Similarities:** both aim to find defects and build confidence that the system is fit for purpose. Both together form V&V, which runs through the whole life cycle and can use a large part of the development budget. The level of confidence needed depends on the **software's function** (how critical it is), **user expectations** and the **marketing environment** (time-to-market pressure). V&V uses two complementary approaches: **static** techniques (inspections, reviews, static analysis) that need no execution, and **dynamic** techniques (testing) that run the program.

#### Critical system

A **critical system** is a system whose failure can cause serious economic loss, physical damage, or threat to human life or the environment. Its most important property is **dependability** (availability, reliability, safety, security). Types:
- **Safety-critical**: failure can injure or kill people, e.g. a chemical plant control system or an insulin pump.
- **Mission-critical**: failure stops an important goal, e.g. a spacecraft navigation system.
- **Business-critical**: failure causes high business cost, e.g. a bank's customer accounting system.

Critical systems need much more V&V effort than ordinary systems.

#### How partitioning augments V&V (V-model)

In the V-model, the system is **partitioned** step by step into sub-systems, modules and units. Each level of partitioning has its own **test plan**, prepared during development and used during testing. Partitioning helps V&V because:

1. Each partition can be verified and tested separately and in parallel by different teams.
2. A fault is localised to a small partition, so it is easier to find and fix.
3. Test plans are made early, so testing is planned along with design.
4. Integration is incremental: units, then sub-systems, then the whole system.

```text
Requirements spec ......... Acceptance test
   \                          /
  System spec ..... System integration test
     \                      /
   System design .. Sub-system integration test
        \                 /
      Detailed design    /
           \            /
     Module and unit code and test

  .... = test plan made on the left, used on the right
```

**Example (ATM system):** the system is partitioned into card-reader, account-database, cash-dispenser and user-interface sub-systems. Each module is unit tested; the "withdraw cash" sub-system (UI + account + dispenser) is tested against the sub-system integration test plan; the whole ATM is tested against the system integration test plan; finally the bank runs acceptance tests. At the input level, the withdrawal amount is also partitioned into equivalence classes (below minimum, valid multiple of 500, above daily limit) so that a few test cases cover the whole input range.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. Which pair correctly matches Boehm's questions?
   A. Verification: building the right product; validation: building the product right
   B. Verification: building the product right; validation: building the right product
   C. Both ask whether the product is built right
   D. Both ask whether the product is the right one
   Answer: B. Verification checks conformance to the specification (product right). Validation checks it meets the customer's real needs (right product). (Key point: Verification vs validation)

2. What defines a critical system?
   A. It uses a very large amount of code
   B. Its failure can cause serious economic loss, physical damage or threat to life
   C. It is built by a large team
   D. It has a graphical user interface
   Answer: B. A critical system is one whose failure has serious consequences, so dependability (availability, reliability, safety, security) is its key property. (Key point: Critical system)

3. A bank's customer accounting system whose failure causes high business cost is an example of which type?
   A. Safety-critical
   B. Mission-critical
   C. Business-critical
   D. Non-critical
   Answer: C. Business-critical systems cause high business cost when they fail. Safety-critical ones risk injury, and mission-critical ones stop an important goal. (Key point: Critical system types)

4. How does partitioning help V&V in the V-model?
   A. Each partition gets its own test plan and can be tested separately, localising faults
   B. It removes the need for acceptance testing
   C. It means only the whole system is tested at the end
   D. It replaces test plans with inspections
   Answer: A. The system is split into sub-systems, modules and units, each with its own test plan made early. Separate testing localises faults and allows incremental integration. (Key point: Partitioning in V-model)

## Related in Software Engineering

- [Book store process model](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Abook-store-process-model) — Software Engineering, chapter 2
- [Waterfall versus spiral; user participation](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Awaterfall-vs-spiral) — Software Engineering, chapter 1
- [Client-server versus distributed object architecture](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Aclient-server-vs-distributed-object) — Software Engineering, chapter 3
- [Reuse framework versus program generator](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Aframework-vs-generator) — Software Engineering, chapter 5
- [Real-time versus ordinary software and OS; data acquisition](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Areal-time-vs-non-real-time) — Software Engineering, chapter 4
- [Why verify before launch](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Averification-before-launch) — Software Engineering, chapter 7

## Related in other subjects

- [Compare verification, validation, calibration](https://www.bctengineer.com/question.md?key=semester_8%2Fsimulation_and_modeling%3Averification-validation-calibration-compare) — Simulation and Modeling, chapter 7
- [Model building, verification, validation steps](https://www.bctengineer.com/question.md?key=semester_8%2Fsimulation_and_modeling%3Amodel-building-verification-validation) — Simulation and Modeling, chapter 7
- [Compare and contrast pollution in a city](https://www.bctengineer.com/question.md?key=semester_5%2Fcommunication_english%3Acompare-contrast-pollution-city-nepal) — Communication English, chapter 1
- [Compare software models; propose a fourth model](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Asw-models-compare-fourth) — Instrumentation II, chapter 9
