Verification and Validation: A Quick Introduction Authors Massood Towhidnejad Massood Towhidnejad Mike Rowe Mike Rowe David Dampier David Dampier Sponsored.

Slides:



Advertisements
Similar presentations
Lecture 8: Testing, Verification and Validation
Advertisements

SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Testing and Quality Assurance
Software Quality Assurance Plan
Chapter 4 Quality Assurance in Context
Chapter 2 – Software Processes
Verification and Validation: A Quick Introduction 1-2 Lectures.
SE 555 Software Requirements & Specification Requirements 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.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Introduction to Software Testing
Verification and Validation
Test Design Techniques
Software Integration and Documenting
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Extreme Programming Software Development Written by Sanjay Kumar.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
CPIS 357 Software Quality & Testing I.Rehab Bahaaddin Ashary Faculty of Computing and Information Technology Information Systems Department Fall 2010.
CLEANROOM SOFTWARE ENGINEERING.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Introduction Telerik Software Academy Software Quality Assurance.
Software Testing.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
Software Testing. What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of.
Software Testing Testing types Testing strategy Testing principles.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Software Testing. What is Testing? The process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
This chapter is extracted from Sommerville’s slides. Textbook chapter
Requirements and Testing Peer Reviews and Walkthroughs CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 8, 2007.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Safety Critical Systems 5 Testing T Safety Critical Systems.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Anton Krbaťa Ján Budáč  Verification: "Are we building the product right ?„  Validation: "Are we building the right product ?"
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Testing Process By: M. Muzaffar Hameed.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
LOGO TESTING Team 8: 1.Nguyễn Hoàng Khánh 2.Dương Quốc Việt 3.Trang Thế Vinh.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
© Michael Crosby and Charles Sacker, 2001 Systematic Software Reviews Software reviews are a “quality improvement process for written material”.
Test Plan: Introduction o Primary focus: developer testing –Implementation phase –Release testing –Maintenance and enhancement o Secondary focus: formal.
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
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.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Engineering (CSI 321)
Software Verification and Validation
Software Testing Introduction CS 4501 / 6501 Software Testing
Verification and Validation Overview
Introduction to Software Testing
Lecture 09:Software Testing
Verification and Validation Unit Testing
Baisc Of Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Verification, Validation, and Acceptance Testing
Presentation transcript:

Verification and Validation: A Quick Introduction Authors Massood Towhidnejad Massood Towhidnejad Mike Rowe Mike Rowe David Dampier David Dampier Sponsored In Part by NSF Grant EEC And published on

Learning Objectives 1.The student will be able to define both verification and validation, and to know the difference between them. 2.The student will be able to identify the appropriate activities and their classification as either verification or validation. 3.The student will be able to distinguish between verification and validation, given a set of activities. 4.Given a set of software artifacts, the student will understand the appropriate verification or validation activity to that artifact. 5.Given a set of projects in different categories, the student will be able to determine which category of projects would require more V&V activity, and which would require less. 6.Given a set of defects and the phases of development in which they were found, the student will be able to estimate the relative cost of correcting errors early or late in the lifecycle.

Why Invest in Quality? Cost effective Cost effective Provides competitive edge Provides competitive edge Essential for business survival Essential for business survival Essential for international marketing Essential for international marketing Helps to retain customers, and increase profits Helps to retain customers, and increase profits Hallmark of world class business Hallmark of world class business

Ways to Improve Quality Prevention of Defects Prevention of Defects Process ImprovementProcess Improvement Complexity ReductionComplexity Reduction Risk ManagementRisk Management Causal AnalysisCausal Analysis Detection and Correction of Defects Detection and Correction of Defects VerificationVerification ValidationValidation ReworkRework Causal AnalysisCausal Analysis

Verification Verification – Are we building the product right? Verification – Are we building the product right? Verification is any checking process conducted on software artifacts in an attempt to determine if they work as specified by the designers of the system. Verification is any checking process conducted on software artifacts in an attempt to determine if they work as specified by the designers of the system. Includes reviews, inspections, walkthroughs, unit testing and integration testing. Includes reviews, inspections, walkthroughs, unit testing and integration testing.

Validation Validation – Are we building the right product? Validation – Are we building the right product? Validation is the process of evaluating software artifacts during the software development process in an attempt to determine if the system works as required by the customers. Any evaluation activity that involves the customer can be used for validation purposes. Validation is the process of evaluating software artifacts during the software development process in an attempt to determine if the system works as required by the customers. Any evaluation activity that involves the customer can be used for validation purposes. Includes program reviews, system testing, customer acceptance testing. Includes program reviews, system testing, customer acceptance testing.

Verification vs. Validation Verification Verification Main purpose is to detect defects in the artifacts of the system under development.Main purpose is to detect defects in the artifacts of the system under development. Validation Validation Main purpose is to show that the system under development meets user needs, requirements, and expectations.Main purpose is to show that the system under development meets user needs, requirements, and expectations.

Verification & Validation Techniques Static Methods Static Methods Techniques applied to artifacts without execution.Techniques applied to artifacts without execution. Dynamic Methods Dynamic Methods Techniques applied to artifacts through execution.Techniques applied to artifacts through execution. Mathematically Based Methods Mathematically Based Methods

Static: Reviews Walkthroughs Walkthroughs CodeverificationCodeverification DocumentDocument ConOps, SRSvalidation ConOps, SRSvalidation STEP, SAD, SDDverification STEP, SAD, SDDverification Inspections Inspections CodeverificationCodeverification Document AuditsverificationDocument Auditsverification Program Reviews Program Reviews Customer involvedvalidationCustomer involvedvalidation No customerverificationNo customerverification

Effectiveness of Static Verification More than 60% of program defects can be detected by program inspections. More than 60% of program defects can be detected by program inspections. More than 90% of program defects may be detectable using more rigorous mathematical program verification. More than 90% of program defects may be detectable using more rigorous mathematical program verification. The defect detection process is not confused by the existence of previous defects. The defect detection process is not confused by the existence of previous defects.

Dynamic: Testing (Verification) Unit Test (Detailed Design): Testing the individual software modules, components, or units. Integration Testing (Architectural Design): After unit test, the system is put together in increments. Integration testing focuses on the interfaces between software components (OO thread-based, cluster-based testing) System Testing (Requirements Spec): One goal of system testing is to ensure that the system functions as specified in the specification.

Dynamic: Testing (Validation) System Testing (Requirements Spec): Another goal of system testing is to ensure that the system functions as the client expected in a controlled environment. User Acceptance Test (ConOps): A set of formal tests run for the client, and specified by the client. When the system passes these tests, the software has been accepted by the client as meeting the requirements.

Verification and Validation in the Development Lifecycle Code Execute Unit Tests White-Box & Black-Box Testing Black-Box Testing Requirements Analysis Execute System Tests Execute Integration Tests Design Validate the System Verify Design Verify Implementation Reviews

Mathematics-Based Verification Verification is based on mathematical arguments which demonstrate that a program is consistent with its specification. Verification is based on mathematical arguments which demonstrate that a program is consistent with its specification. Programming language semantics must be formally defined. Programming language semantics must be formally defined. The program must be formally specified. The program must be formally specified.

Why Inspection is important? Relative cost to fix a defect Relative cost to fix a defect Phase in which found Cost ratio (hours) Phase in which found Cost ratio (hours) – Requirement 1 – Design 3-6 – Coding 10 – Testing – Operation Data derived from Capers Jones.

Costs of Finding and Fixing Late Delays in identifying and fixing defects gets geometrically more expensive as the lifecycle progresses! $1 $10 $100 $1000 Cost of Fixing a Defect Defects Time in (Phase of) Development

Cost of Quality Includes all costs of quality-related activities. Includes all costs of quality-related activities. Quality costs = Quality costs = +Prevention costs +Detection and Appraisal costs +Failure costs Internal failure costs Internal failure costs External failure costs External failure costs Cost of Quality (COQ) – refers to the cost of correcting defects once found. Cost of Quality (COQ) – refers to the cost of correcting defects once found.

Quality Cost Components Direct Cost Direct Cost – Reviews/inspections – Unit testing – System testing – Acceptance testing – Test planning and design design – Computer time – Resources (terminals, staffs, etc.) staffs, etc.) Indirect Cost Indirect Cost – Rework – Recovery – Corrective action cost – Failures – Analysis meeting – Debugging – Retesting – Legal fees

Verification or… Validation? Reviews Reviews Unit Testing Unit Testing Integration Testing Integration Testing System Testing System Testing Acceptance Testing Acceptance Testing

Verification or… Validation? ReviewsEither ReviewsEither Unit Testing Unit Testing Integration Testing Integration Testing System Testing System Testing Acceptance Testing Acceptance Testing

Verification or… Validation? ReviewsEither ReviewsEither Unit Testing Verification Unit Testing Verification Integration Testing Integration Testing System Testing System Testing Acceptance Testing Acceptance Testing

Verification or… Validation? ReviewsEither ReviewsEither Unit Testing Verification Unit Testing Verification Integration Testing Verification Integration Testing Verification System Testing System Testing Acceptance Testing Acceptance Testing

Verification or… Validation? ReviewsEither ReviewsEither Unit Testing Verification Unit Testing Verification Integration Testing Verification Integration Testing Verification System Testing Validation System Testing Validation Acceptance Testing Acceptance Testing

Verification or… Validation? ReviewsEither ReviewsEither Unit Testing Verification Unit Testing Verification Integration Testing Verification Integration Testing Verification System Testing Validation System Testing Validation Acceptance Testing Validation Acceptance Testing Validation

Balancing Trade-Offs What is the real requirement? What is the real requirement? What are the expected benefits of V & V vs. What are the expected benefits of V & V vs. – cost of increasing V&V activity – additional time required – technical feasibility – risk of not finding defects » delivery » operation “When is it good enough?” (Bach, 1997)

Summary Verification and Validation are both important to the quality of software. Verification and Validation are both important to the quality of software. Each is different: Each is different: Verification determines that what we are doing is done correctly.Verification determines that what we are doing is done correctly. Validation determines whether we are doing the right thing.Validation determines whether we are doing the right thing. Sometimes, less quality is okay. Some software systems require less V&V, as the cost is not supportable. Some require more no matter what it costs. Sometimes, less quality is okay. Some software systems require less V&V, as the cost is not supportable. Some require more no matter what it costs. The earlier defects are discovered, the less it will cost to correct them. The earlier defects are discovered, the less it will cost to correct them.

Backup Slides

Design Coding System Requirements Contractor Management Evaluate Requirements Evaluate Design Monitor Tests Integration Tested Products Discrepancies Subs Project Manager IV&V Testing Independent Verification and Validation (IV&V)

Static and Dynamic Verification & Validation Sommerville, p. 421

Test Case Development in the V Model Code Execute Unit Tests Test cases designed and executed by developers Test cases designed and executed by independent testers Requirements Analysis Execute System Tests Execute Integration Tests Design Validate Requirements Verify Design Verify Implementation