4 ms·
One of the senior engineers I worked with at my last job was very picky about the difference between verification and validation activities. In testing, most de
by jschwartzi 8y ago
One of the senior engineers I worked with at my last job was very picky about the difference between verification and validation activities. In testing, most design engineers will focus very heavily on verification activities which seek to answer the question "does what I built satisfy my design intent?" In contrast, validation activities seek to answer the question "did I design and build a thing that actually solves the problem?"
It's very important when you're building something that you answer both questions in your test activities. So you might write your Readme for your new project, and then as a validation activity before you build your project you shop your Readme around to the target audience of the tool and ask them if the tool sounds useful. You might also elicit feedback about how features could be more useful, or if there are other features that could be added.
From your Readme and your initial validation, you start an initial architecture of the system, laying out the pieces you think you'll need and describing how they will interoperate in broad strokes. Other developers can join you at this point, and knowing your architecture design and implement specific pieces of the tool. All design work references the Readme as a functional specification. And all of your verification activities verifies that the design was implemented and that the implementation satisfies the Readme.
As you're iterating and building new functionality, you integrate periodically and perform validation and verification against integrated versions of your system. And the verification tells you that you're following your Readme, while the validation tells you that your users indeed find the tool that you spec'ced useful.
The only real difference between Waterfall and Agile in this model is the cycle time. Waterfall has a very long cycle time in the specify-design-implement-test-validate cycle, whereas Agile has a very small cycle time. And so the chunks of the system vary in scope as well.
- sah2ed 8y agoSo, essentially: - validation is checking that there exists at least an end user who will need what you are building; - verification is checking that what you have built so far will meet or continue to meet their needs and other end users similar to them.