Verification and Validation

VerificationVerification is to determine the right thing, which involves the testing the implementation of right process. Example: Are we building the product right?

Verification is Static. This means in Verification the s/w is inspected by looking into the code going line by line or function by function. In verification code is reviewed, location of the defect can be found.

Verification Techniques: There are many different verification techniques but they all basically fall into 2 major categories – dynamic testing and static testing.

Dynamic testing – Testing that involves the execution of a system or component. Basically, a number of test cases are chosen where each test case consists of test data. These input test cases are used to determine output test results. Dynamic testing can be further divided into three categories – functional testing, structural testing, and random testing.
Structural testing – Testing that has full knowledge of the implementation of the system and is an example of white-box testing. It uses the information from the internal structure of a system to devise tests to check the operation of individual components. Functional and structural testing both chooses test cases that investigate a particular characteristic of the system.
Functional testing – Testing that involves identifying and testing all the functions of the system as defined within the requirements. This form of testing is an example of black-box testing since it involves no knowledge of the implementation of the system.
Random testing – Testing that freely chooses test cases among the set of all possible test cases. The use of randomly determined inputs can detect faults that go undetected by other systematic testing techniques. Exhaustive testing, where the input test cases consists of every possible set of input values, is a form of random testing. Although exhaustive testing performed at every stage in the life cycle results in a complete verification of the system, it is realistically impossible to accomplish.
Static testing – Testing that does not involve the operation of the system or component. Some of these techniques are performed manually while others are automated. Static testing can be further divided into 2 categories – techniques that analyze consistency and techniques that measure some program property.

Measurement techniques – Techniques that measure properties such as error proneness, understandability, and well-structuredness.
Validation – is to perform the things in right direction, like checking the developed software adheres the requirements of the client. Ex: right product was built.Validation is Dynamic. In Validation, code is executed and s/w is run to find defects.In Validation location of the defect can’t be found.

Validation Techniques: There are also numerous validation techniques, including formal methods, fault injection, and dependability analysis.

Formal methods – Formal methods is not only a verification technique but also a validation technique. Formal methods mean the use of mathematical and logical techniques to express, investigate, and analyze the specification, design, documentation, and behavior of both hardware and software.
Fault injection – Fault injection is the intentional activation of faults by either hardware or software means to observe the system operation under fault conditions.
Software fault injection – Errors are injected into the memory of the computer by software techniques. Software fault injection is basically a simulation of hardware fault injection.
Risk analysis – Takes hazard analysis further by identifying the possible consequences of each hazard and their probability of occurring.
Hardware fault injection – Can also be called physical fault injection because we are actually injecting faults into the physical hardware.

Comments

Popular posts from this blog

Online Selenium Training With Real Time Scenario

Online Tricentis Tosca Automation Training with Real Time Scenarios

Online Training for Manual/Functional