Posted by: ahmedashfaque | September 4, 2014

Software quality mantra: Verification & Validation … Part I

If you want to have perfect quality software product be made; have a good quality plan right from project inception. The quality plan should have comprehensive verification & validation built into the quality plan. But first of all what is verification and what is validation? Let us discuss it in this post.

The software product becomes a product after going through many transformations. At the onset of the project we have nothing. Then customer requirements are developed and requirement specifications are made. Based on these specifications, a software design is made. This design is then converted into source code during software construction. Once the construction is complete, only then we have a software product. Before this stage; all the artifacts (software designs & requirement specifications) are not a software product but rather specifications.

In the traditional sense, software testing means testing the software product after it is built. But what if the specifications on which it is built are faulty? In that case, the software product will also be faulty. So it is necessary to check and verify that these specifications (artifacts) are correct. So how do we check correctness of these artifacts?

These artifacts (software designs & requirement specifications) are checked for correctness using verification techniques. Each requirement specification is checked for validity, correctness, feasibility, testability and other concerns using either manual techniques or using any automation tool. Similarly the software design is checked for correctness and other attributes either manually or using any automation tools.

If any defects are found in these artifacts then it is corrected at that stage. So if any defects are found in a requirement specification then they are corrected before the software design activities start. This ensures that the software design will not be built on a faulty requirements specification. Similar will be the case with software design checking so that the software construction is done on a defect free software design.

This is all about software verification. Software verification is also known as static testing because in this case, no software program is executed to test it. In the next post we will learn about software validation.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: