Verification and ValidationVerification vs validationThe V & V processStatic and dynamic verificationStatic and dynamic V&VProgram testingTypes of testingV& V goalsV & V confidenceTesting and debuggingThe debugging processV & V planningThe V-model of developmentThe structure of a software test planSoftware inspectionsInspection successInspections and testingProgram inspectionsInspection pre-conditionsThe inspection processInspection procedureInspection teamsInspection checklistsInspection checksAutomated static analysisStatic analysis checksStages of static analysisSlide 28LINT static analysisUse of static analysisCleanroom software developmentThe Cleanroom processCleanroom process characteristicsIncremental developmentFormal specification and inspectionsCleanroom process teamsCleanroom process evaluationKey pointsSlide 39©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 1Verification and ValidationAssuring that a software system meets a user's needs©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 2Verification: "Are we building the product right"The software should conform to its specificationValidation: "Are we building the right product"The software should do what the user really requiresVerification vs validation©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 3Is a whole life-cycle process - V & V must be applied at each stage in the software process.Has two principal objectives•The discovery of defects in a system•The assessment of whether or not the system is usable in an operational situation.The V & V process©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 4Software inspections Concerned with analysis of the static system representation to discover problems (static verification)•May be supplemented by tool-based document and code analysisSoftware testing Concerned with exercising and observing product behaviour (dynamic verification)•The system is executed with test data and its operational behaviour is observedStatic and dynamic verification©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 5Static and dynamic V&VFormalspecificationHigh-leveldesignRequirementsspecificationDetaileddesignProgramPrototypeDynamicvalidationStaticverification©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 6Can reveal the presence of errors NOT their absenceA successful test is a test which discovers one or more errorsThe only validation technique for non-functional requirementsShould be used in conjunction with static verification to provide full V&V coverageProgram testing©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 7Defect testing•Tests designed to discover system defects.•A successful defect test is one which reveals the presence of defects in a system.•Covered in Chapter 20 Statistical testing•tests designed to reflect the frequence of user inputs. Used for reliability estimation.•Covered in Chapter 21 Types of testing©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 8V& V goalsVerification and validation should establish confidence that the software is fit for purposeThis does NOT mean completely free of defectsRather, it must be good enough for its intended use and the type of use will determine the degree of confidence that is needed©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 9V & V confidenceDepends on system’s purpose, user expectations and marketing environment•Software function»The level of confidence depends on how critical the software is to an organisation•User expectations»Users may have low expectations of certain kinds of software•Marketing environment»Getting a product to market early may be more important than finding defects in the program©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 10Defect testing and debugging are distinct processesVerification and validation is concerned with establishing the existence of defects in a programDebugging is concerned with locating and repairing these errorsDebugging involves formulating a hypothesis about program behaviour then testing these hypotheses to find the system errorTesting and debugging©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 11The debugging processLocateerrorDesignerror repairRepairerrorRe-testprogramTestresultsSpecificationTestcases©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 12Careful planning is required to get the most out of testing and inspection processesPlanning should start early in the development processThe plan should identify the balance between static verification and testingTest planning is about defining standards for the testing process rather than describing product testsV & V planning©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 13The V-model of developmentRequirementsspecificationSystemspecificationSystemdesignDetaileddesignModule andunit codeand tessSub-systemintegrationtest planSystemintegrationtest planAcceptancetest planServiceAcceptancetestSystemintegration testSub-systemintegration test©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 14The structure of a software test planThe testing processRequirements traceabilityTested itemsTesting scheduleTest recording proceduresHardware and software requirementsConstraints©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 15Software inspectionsInvolve people examining the source representation with the aim of discovering anomalies and defectsDo not require execution of a system so may be used before implementationMay be applied to any representation of the system (requirements, design, test data, etc.)Very effective technique for discovering errors©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 16Inspection successMany different defects may be discovered in a single inspection. In testing, one defect ,may mask another so several executions are requiredThey reuse domain and programming knowledge so reviewers are likely to have seen the types of error that commonly arise©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 17Inspections and
View Full Document