Verification and Validation
Verification and Validation
Verification and Validation
Requirements specification
High-level design
Formal specification
Detailed design
Program
Prototype
Dynamic validation
Software Inspection(Static) analyse and check the requirements document, design diagrams and the program source code. You can use inspections at all stages of the process. Software Testing(Dynamic) involves running an implementation of the software with test data. You examine the outputs of the software and its operational behavior to check that it is performing as required.
TYPES OF TESTING Defect Testing Designed to discover system defects. The goal of defect testing is to find inconsistencies between a program and its specification. Validation testing To show that the software is what the customer wants that it meets its requirements. Statistical testing(part of validation testing) The specification for each increment is analyzed to define a set of inputs that cause the software to change its behavior
DEBUGGING PROCESS
Skilled debuggers use their knowledge for type of defect, the output pattern, the programming language & process to locate the defect. After a defect in the program has been discovered, you have to correct it and revalidate the system. Regression testing is used to check that the changes made to a program have not introduced new faults. Test case- set of condition is given under which program tested.
Service
Acceptance test
Software Inspections
Software inspection is a static V & V process in which a software system is reviewed to find errors and anomalies. Inspections not require execution of a system so may be used before implementation. They may be applied to any representation of the system (requirements, design, configuration data, test data, etc.). They have been shown to be an effective technique for discovering program errors.
Inspection process
System overview presented to inspection team Code and associated documents are distributed to team in advance Errors discovered during the inspection are recorded Product modifications are made to repair defects Re-inspection may or may not be required
Stages of static analysis Control flow analysis Checks for loops with multiple exit or entry points, finds unreachable code, etc. Data use analysis Detects uninitialized variables, variables written twice variables which are declared but never used Interface analysis Checks the consistency of routine and procedure declarations and their use.
Verification and formal methods Formal methods can be used when a mathematical specification of the system is produced.
They are the ultimate static verification technique. They involve detailed mathematical analysis of the specification and may develop formal arguments that a program conforms to its mathematical specification.
software development Cleanroom software development is a software development philosophy that uses formal methods to support rigorous software inspection.
The objective of this approach to software development is zero-defect software. The name Cleanroom was derived by analogy with semiconductor fabrication units where defects are avoided by manufacturing in an ultra-clean atmosphere.
Incremental development developed and validated separately using the Cleanroom process.
Structured programming Only a limited number of control and data abstraction constructs are used. Static verification The developed software is statically verified using rigorous software inspections. Statistical testing To determine program reliability.
Independent assessment shows that the process is no more expensive than other approaches. The programs produced were of higher quality than those developed using traditional techniques.