In part of I this post, we have seen what is verification. In this post we will see what is validation.
When we have a software product, we can run it by invoking an executable command. In running mode, the software product responds to many events and commands. These events and commands are part of the environment created by the software product in running mode. These events and commands are used to do some transaction with the software product. For example, a user can select a list item from a list on a user interface and then can push a button to see information related to that list item. The push button here, invokes an event and the software product responds.
During validation, these events and commands are invoked to validate if they are doing what was mentioned in the requirement specification. For example, if the list item selected was to see information regarding a product, then after clicking the push button, the user should see the appropriate product information. If the push button does not do what it should as per requirement specification then it is a defect.
So in validation, the software product is tested when it is in running mode. Software validation is also known as dynamic testing.