Thursday, May 10, 2007

What Does It Mean to be "Verified?"

Verification: The process of determining whether or not the products of a given phase of the software development cycle meet the implementation steps and can be traced to the incoming objectives established during the previous phase. The techniques for verification are testing, inspection and reviewing.

The verify procedure instructs to verify the software you are installing. The system confirms that your software files are correct and contain the correct number of digits and characters. If any errors are found, it might be necessary to change and install the software product again. The verification process can add as insignificant amount of time to the installation process. There needs to be confirmation by examination and provision of objective evidence that specified requirements have been fulfilled. The process of evaluating the application or component to determine whether the products of the given development phase satisfy the conditions imposed at the start of that phase. Confirmation by examination of evidence that the process fulfills the specified requirements. Verification is the act of proving or disproving the correctness of an application with respect to a certain formal specification,using formal methods. According to the school of logical positivism (ca. 1920), verification serves as the criterion of whether or not a statement is meaningful. Simply,any proposition which is not subject to empirical verification is meaningless. The process of using formal proofs to demonstrate the consistency (design verification) between a formal specification of a system and a formal security policy model or (implementation verification) between the formal specification and its program implementation. Verification is a broad and complex discipline of software engineering whose goal is to assure that the software fully satisfies all the expected requirements.

Dynamic verification is performed during the execution of software, and dynamically checks its behaviour; it is commonly known as the Test phase. Verification is a Review Process. Depending on the scope of tests, we can categorize them in three families:

  • Test in the small: a test that checks a single function or class (Unit test)
  • Test in the large: a test that checks a group of classes, such as
    • Module test (a single module)
    • Integration test (more than one module)
    • System test (the entire system)
  • Acceptance test: a formal test defined to check acceptance criteria for a software
    • Functional test
    • Non functional test (performance, stress test)

Software verification is often confused with software validation. The difference between verification and validation:

  • Software verification asks the question, "Are we building the product right?"; that is, does the software conform to its specification.
  • Software validation asks the question, "Are we building the right product?"; that is, is the software doing what the user really requires.

The aim of software verification is to find the errors introduced by an activity, i.e. check if the product of the activity is as correct as it was at the beginning of the activity.

The aim of software validation is to declare whether the product of an activity is indeed what is expected, i.e. the activity extended the product successfully.

These statements are supported or established by evidence or proof, hence proved to be true, or in other words, we have now verified what it means to be "verified".

0 comments:

Post a Comment