liveBook · Manning

Verification

As explained in Object-Oriented Software Design in C++

A software quality process comprising verification that implementation conforms to specifications and validation that the resulting system satisfies intended needs.

Software verification checks whether implementation builds the specified application correctly. It works with validation: clients confirm that the requirements describe the right application, while developers test whether the implementation fulfills them. section 3.10 section 3.8

A practical verification workflow includes:

  • Define requirements in a jargon-free functional specification, without implementation details. section 3.10 section 3.8
  • Run black-box tests against application behavior and unit tests against individual class functions. section 3.10 section 4.7
  • Repeat earlier tests after changes so regression testing reveals accidentally broken behavior. section 4.7

Testing a class function

A unit test passes different parameter values to a class member function and checks its return values. After modifying the code, rerunning that test checks that previously working behavior has not regressed. section 4.7

How Object-Oriented Software Design in C++ covers it

How deep it goes
Explains functional specifications, black-box tests, unit tests, and regression tests, while noting that tests cannot prove absolute bug freedom.
Examples
Uses functional specifications, external black-box test plans, class-level unit tests, and repeated regression tests.
What it assumes
Assumes requirements and functional specifications, while distinguishing client validation from developer testing.
What you can do after
Apply it via black-box, unit, and regression testing to check implemented requirements and detect change-induced breakage.
How it connects
Connects requirements, functional specification, validation, unit testing, regression testing, and design specification.

Also explained in

Compare how 4 books explain verification →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Object-Oriented Software Design in C++. The section links point to the parts of the book it draws on.