Verification and Validation

Slides:



Advertisements
Similar presentations
Verification & Validation
Advertisements

Software Testing and Analysis. Ultimate goal for software testing Quality Assurance.
Verification and Validation
Verification and Validation
Software Engineering-II Sir zubair sajid. What’s the difference? Verification – Are you building the product right? – Software must conform to its specification.
©Ian Sommerville 2000Software Engineering. Chapter 22Slide 1 Chapter 22 Verification and Validation.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
1 / 28 CS 425/625 Software Engineering Verification and Validation Based on Chapter 19 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6.
Verification and Validation
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Verification and Validation CIS 376 Bruce R. Maxim UM-Dearborn.
Verification and Validation
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
Chapter 24 - Quality Management Lecture 1 1Chapter 24 Quality management.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
CSCI 5801: Software Engineering
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Adaptive Processes © Adaptive Processes Simpler, Faster, Better Verification and Validation Assuring that a software system meets a user's needs.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Dr. Tom WayCSC Code Reviews & Inspections CSC 4700 Software Engineering.
Verification and Validation Chapter 22 of Ian Sommerville’s Software Engineering.
Verification and Validation Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 22 Slide 1 Verification and Validation Slightly adapted by Anders Børjesson.
Software testing techniques 2.Verification and validation From I. Sommerville textbook Kaunas University of Technology.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Software Testing Testing types Testing strategy Testing principles.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
CS.436 Software Engineering By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 13 Verification and validation Slide 1 1 Chapter 13 Verification and Validation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
SoftwareVerification and Validation
This chapter is extracted from Sommerville’s slides. Textbook chapter
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Verification and Validation
Ch 22 Verification and Validation
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Bzupages.com Verification and Validation.
CHAPTER 9: VERIFICATION AND VALIDATION 1. Objectives  To introduce software verification and validation and to discuss the distinction between them 
Verification and Validation Assuring that a software system meets a user's needs.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Engineering, 8th edition Chapter 22 1 Courtesy: ©Ian Somerville 2006 April 27 th, 2009 Lecture # 19 Verification and Validation.
Verification and Validation Assuring that a software system meets a user's needs.
©Ian Sommerville Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation with edits by Dan Fleck Coming up: Objectives.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation with edits by Dan Fleck.
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Software inspections l Involve people examining the source representation with.
References & User group Reference: Software Testing and Analysis Mauro Pezze Software Engineering Ian Sommerville Eight Edition (2007) User group:
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Pradeep Konduri Niranjan Rao Julapelly.  Introduction and Overview  Verification Vs Validation  Process  Goals  Confidence  Role of V&V in different.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 22 Slide 1 Verification and Validation.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Verification and Validation. Topics covered l Verification and validation planning l Program Testing l Software inspections.
Verification and Validation
Verification and Validation
CSC 480 Software Engineering
Chapter 8 – Software Testing
Verification & Validation
Verification and Validation
Verification and Validation
Verification and Validation
Công nghệ phần mềm Thẩm định và kiểm định.
Verification and Validation Unit Testing
Verification & Validation
Verification and Validation
Chapter 7 Software Testing.
Software Reviews.
Presentation transcript:

Verification and Validation

To describe the code inspection process and its role in V & V Objectives To introduce software verification and validation and to discuss the distinction between them To describe the code inspection process and its role in V & V CMSC 345, Version 1/11

Verification vs. Validation Verification "Are we building the product right?" The software should conform to its specification. Validation "Are we building the right product?" The software should do what the user really requires. How could a system possibly pass verification, but not validation? CMSC 345, Version 1/11

Mainly verification or validation? Or both? The V&V 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 Is a whole life-cycle process Examples Peer document reviews Customer document reviews SDD requirements matrix Code inspections Customer meetings Prototyping Verification Validation Mainly verification or validation? Or both? Verification Verification Validation Verification and Validation CMSC 345, Version 1/11

This does not mean completely free of defects. V&V Goals V&V should establish confidence that the software is fit for its purpose. This does not mean completely free of defects. Rather, it must be good enough for its intended use. CMSC 345, Version 1/11

V&V Confidence Depends on: System purpose User expectations The level of confidence depends on how critical the software is to an organization (e.g. safety critical). 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. CMSC 345, Version 1/11

Code Inspection Visually examine the source code Goals To discover logical anomalies and defects. Examples: uninitialized variables unreachable code infinite loops To confirm compliance with coding and commenting conventions Intended for defect detection, not correction Very effective technique for discovering errors Saves time and money The earlier in the development process an error is found, the better. CMSC 345, Version 1/11

Many different defects may be discovered in a single inspection Inspection Pros Many different defects may be discovered in a single inspection With testing, one defect may mask another so that several executions/tests are required. Inspections reuse domain and programming knowledge Reviewers are likely to have seen the types of errors that commonly arise. CMSC 345, Version 1/11

Inspection and Testing Inspection and testing are complementary techniques. Inspection can check conformance with a specification (verification), but not conformance with the customer’s real requirements. Testing can do this (validation). Inspections cannot check non-functional characteristics. CMSC 345, Version 1/11

Inspection Preparation A precise specification must be available. Team members must be familiar with the organization’s coding and commenting standards. Syntactically correct code must be available. An error checklist should be prepared. Management must accept that inspection will increase costs early in the software process. CMSC 345, Version 1/11

Something to Consider … A manager decides to use the reports of program inspections as an input to the staff appraisal process. These reports show who made and who discovered program errors. What do you think about this practice? Might this make a difference in the inspection process itself? CMSC 345, Version 1/11

Inspection Procedure The inspection procedure is planned. A system overview is presented to the inspection team. Code and associated documents are distributed to the inspection team in advance. Inspection takes place and all discovered errors are noted. All modifications are made to repair discovered errors. Re-inspection may or may not be required. CMSC 345, Version 1/11

Inspection Teams Made up of: Author of the code being inspected Inspector who finds errors, omissions, and inconsistencies Reader who reads the code to the team Moderator who chairs the meeting Scribe who makes detailed notes regarding errors Roles may vary from these (e.g., Reader). Multiple roles may be taken on by the same member. CMSC 345, Version 1/11

How would a C or Phython checklist differ from a Java checklist? Inspection Checklist Checklist of common errors is used to drive the inspection Is programming language dependent How would a C or Phython checklist differ from a Java checklist? CMSC 345, Version 1/11

Category Inspection Check Sample of a Partial Inspection Checklist Category Inspection Check Data Are all variables initialized before they are used? Have all constants been named? Control For each conditional statement, is the condition correct? Will each loop terminate? In case statements, are all possible cases accounted for? Input/output Are all input variables used? Are all output variables assigned a value before they are output? Interface Do formal and actual parameters match in: - number? - data type? - what they represent? Exception management Have all possible error conditions been taken into account? CMSC 345, Version 1/11 Ian Sommerville, Software Engineering, 6th ed.

Automated Static Analysis Static analyzers are software tools for source text processing. They parse the program text and try to discover potentially erroneous conditions. They find many of the errors relevant to code inspection. Very effective as an aid to inspections. A supplement to, but not a replacement for, inspections. CMSC 345, Version 1/11

Fault Class Static Analysis Check Sample Static Analysis Checks Fault Class Static Analysis Check Data Undeclared variables Variables used before initialization Variables declared but never used Possible array bounds violations Control Unreachable code Input/Output Variables output twice with no intervening assignment Interface Parameter type mismatches Parameter number mismatches Non-usage of the results of functions Uncalled functions Storage management Unassigned pointers CMSC 345, Version 1/11 Ian Sommerville, Software Engineering, 6th ed.

LINT Static Analysis Example 138% more lint_ex.c #include <stdio.h> printarray (Anarray) int Anarray; { printf(“%d”,Anarray); } main () int Anarray[5]; int i; char c; printarray (Anarray, i, c); printarray (Anarray) ; 139% cc lint_ex.c 140% lint lint_ex.c lint_ex.c(10): warning: c may be used before set lint_ex.c(10): warning: i may be used before set printarray: variable # of args. lint_ex.c(4) :: lint_ex.c(10) printarray, arg. 1 used inconsistently lint_ex.c(4) :: lint_ex.c(10) printarray, arg. 1 used inconsistently lint_ex.c(4) :: lint_ex.c(11) printf returns value which is always ignored LINT Static Analysis Example CMSC 345, Version 1/11 Ian Sommerville, Software Engineering, 6th ed.

References Sommerville, Ian, Software Engineering, 6th ed, 2000. New York: Addison Wesley. CMSC 345, Version 1/11