In the software field, software verification is all about examining the process of software development, to ensure that the development phase is carried out on the right path, to build the desired, final software product. It is carried out during the on-going phase of software development, to ensure the detection of defects and faults in the early stage of development life cycle. It gives answer to our query of "Are we building the software product in a right manner?" However, it may be noted that getting passed in the verification process, does not guarantees the validity of the software product. It is highly possible that, an intermediary software product goes well through the verification process, but may fails to achieve the final desired product.
Software Verification is mainly of two types:
Static Verification: Static verification involves inspection of code before its execution, to ensure that software product meet its requirements and specifications. It an analysis based approach, usually carried out by just making analysis of static aspects of the software system such as code conventions, software metrics calculation, anti-pattern detection, etc.
Dynamic Verification: It concerns with the working behaviour of the software and is being carried out along with the execution of software. Also know by 'Test phase', dynamic verification executes test data on the software, to assess the behaviour of the software.
Software Verification process involves assessment of development phase and intermediary software product, with respect to pre-defined specifications, and guidelines that are outlined before the start of development process. It ensures, that the methodology applied for software development and developing software, adheres to the specific specifications, set-up before the phase of development, in order to build correct software product, as expected.
Thus, this process requires cross-checking of these pre-defined specifications with the partially developed software product, so as to satisfy with the process of carrying out the development, in a right way.
The process of software verification can be performed through following approaches:
It is an organized way of examining the documents such as design specifications, requirements specifications, code, etc. by one or more than one person, to explore defects in the software.
It is, usually an informal way of evaluating the software product, where different teams, whether associated or non-associated with the software development, goes through the software product and have discussion on possible errors and other defects, present in the software.
It is one of the preferred and most common methods of the static testing. Unlike, walkthroughs, it's a formal way of testing the software, through examination of documents, carried out by the skilled moderator. This method usually, checklist, rules, entry & exist criteria along with preparation and sharing of reports, in order to take corrective & necessary actions.
In nutshell, it can be said that verification process, increases the development team's confidence of carrying out the development in a right way, so as to achieve expected final product along with the early detection of faults, defects and other issues, that may proves to be time and cost-saving.