Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Lecture 8: Testing, Verification and Validation
Testing and Quality Assurance
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Verification and Validation: A Quick Introduction 1-2 Lectures.
Verification and Validation: A Quick Introduction Authors Massood Towhidnejad Massood Towhidnejad Mike Rowe Mike Rowe David Dampier David Dampier Sponsored.
November 2005J. B. Wordsworth: J5DAMQVT1 Design and Method Quality, Verification, and Testing.
Software Engineering COMP 201
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Lecturer: Dr. AJ Bieszczad Chapter 87-1 How does software fail? Wrong requirement: not what the customer wants Missing requirement Requirement impossible.
 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.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
111 Testing Overview CS 4311 Frank Tsui, Orland Karam, and Barbara Bernal, Essential of Software Engineering, 3rd edition, Jones & Bartett Learning. Sections.
Software Testing Content Essence Terminology Classification –Unit, System … –BlackBox, WhiteBox Debugging IEEE Standards.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 1: Introduction to Software Testing Software Testing
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CS4311 Spring 2011 Verification & Validation Dr. Guoqiang Hu Department of Computer Science UTEP.
Instructor: Peter Clarke
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Software Testing ©Dr. David A. Workman School of EE and Computer Science March 19, 2007.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
This chapter is extracted from Sommerville’s slides. Textbook chapter
1 Phase Implementation. Janice Regan, Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine subphases)
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
The Software Development Process
Software Defects.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Testing the Programs CS4311 – Spring 2008 Software engineering, theory and practice, S. Pfleeger, Prentice Hall ed. Object-oriented and classical software.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
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.
Slide 1SATC June 2000 Dolores R. Wallace* NASA Goddard Space Flight Center Greenbelt, Maryland for the American Society.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
CS223: Software Engineering Lecture 25: Software Testing.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Testing and Debugging PPT By :Dr. R. Mall.
Chapter 9, Testing.
Verification and Testing
Verification and Validation Overview
Some Simple Definitions for Testing
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Introduction to Software Testing
Testing Overview References:
Baisc Of Software Testing
Welcome to Corporate Training -1
Unit 1 :Basic Of Software Testing
Software Verification and Validation
Software Verification, Validation, and Acceptance Testing
Software Verification and Validation
Software Verification and Validation
Presentation transcript:

Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s Approach, McGraw Hill Pfleeger, Software Engineering, Theory and Practice, Prentice Hall Davis, Software Requirements: Objects, Functions, and States, Prentice Hall 1209

Purpose of V&V Groups of 3 2 minutes What is the purpose of verification and validation?

Purpose of V&V Give programmers information they can use to prevent faults Give management information to evaluate risk Provide software that is reasonably defect free Achieve a “testable” design (one that can be easily verified) Validate the software (demonstrate that it works)

Definitions-1 (note: usual definitions, but they do not match all authors or the 1990 IEEE glossary) Validation –Evaluation of an object to demonstrate that it meets expectations. (Did we build the right system?) Verification –Evaluation of an object to demonstrate that it meets its specification. (Did we build the system right?) –Evaluation of the work product of a development phase to determine whether the product satisfies the conditions imposed at the start of the phase. Correct Program –Program matches its specification Correct Specification –Specification matches the client’s intent

Definitions-2 Error (a.k.a. mistake): –A human activity that leads to the creation of a fault –A human error results in a fault which may, at runtime, result in a failure –Kaner: “It’s an error if the software doesn’t do what the user intended” Fault (a.k.a. bug) –May result in a failure –A discrepancy between what something should contain (in order for failure to be impossible) and what it does contain –The physical manifestation of an error Failure (a.k.a. symptom, problem, incident) –Observable misbehavior –Actual output does not match the expected output –Can only happen when a thing is being used

Definitions-3 Fault identification –Process of determining what fault caused a failure Fault correction –Process of changing a system to remove a fault. Debugging –The act of finding and fixing program errors

Definitions-4 Testing –The act of designing, debugging, and executing tests Test –A sample execution to be examined Test case –A particular set of input and the expected output Oracle –Any means used to predict the outcome of a test

Definitions-5 Significant test case –A test case with a high probability of detecting an error –One test case may be more significant than another Significant test set –A test set with a high probability of detecting an error –A test set is more significant than another if the first is a superset of the second –The number of test cases does not determine the significance Regression testing: –rerun a test suite to see if a change fixed a bug a change introduced a new one

Definitions-6 Let S be a relation, a specification of a program. Let P be the implementation of the program. R is the Range. r  R. D is the domain. d  D. S (r,d).The specification. P (r,d).The implementation.

Definitions-7 Failure P (r,d) but not S (r,d) Test case A pair (r,d) such that S (r,d) Test set T A finite set of test cases. P passes T if  t  T, t=(r,d)  S (r,d)  P (r,d) T is ideal if (  d,r | S (r, d)   (P(r, d)))  (  t  T | t=(r’,d’)  S (r’,d’)   P(r’,d’)) R: Range. r  R. D: Domain. d  D. S (r,d).The specification. P (r,d).The implementation.

Definitions-7 Failure P (r,d) but not S (r,d) Test case A pair (r,d) such that S (r,d) Test set T A finite set of test cases. P passes T if  t  T, t=(r,d)  S (r,d)  P (r,d) T is ideal if (  d,r | S (r, d)   (P(r, d)))  (  t  T | t=(r’,d’)  S (r’,d’)   P(r’,d’)) In groups, translate these into English

Parnas: “There are only three engineering techniques for verification” Mathematical analysis Exhaustive case analysis Prolonged realistic testing

Parnas: “There are only three engineering techniques for verification” Mathematical analysis –Works well for continuous functions (software engineering is more difficult than other engineering) –Cannot interpolate reliably for discrete functions Exhaustive case analysis Prolonged realistic testing

Parnas: “There are only three engineering techniques for verification” Mathematical analysis Exhaustive case analysis –Only possible for systems with small state space Prolonged realistic testing

Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Symbolic Execution Testing Informal Analysis Formal Analysis Static Techniques Proofs Review Inspection Walkthrough

Types of Faults In group 3 minutes List all the types and causes of faults: what can go wrong in the development process?

Some Types of Faults Algorithmic: algorithm or logic does not produce the proper output for the given input Syntax: improper use of language constructs Computation (precision): formula’s implementation wrong or result not to correct degree of accuracy Documentation: documentation does not match what program does Stress (overload): data structures filled past capacity Capacity: system’s performance unacceptable as activity reaches its specified limit Timing: code coordinating events is inadequate Throughput: system does not perform at speed required Recovery: failure encountered and does not behave correctly.

Causes of Faults Requirements System Design Program Design Program Implementation Unit Testing System Testing Incorrect or missing requirements Incorrect translation Incorrect design specification Incorrect design interpretation Incorrect semantics Incorrect documentation Incomplete testing New faults introduced correcting others

Some Verification and Validation Techniques Requirements Operation Design Maintenance Implementation Testing Reviews: walkthroughs/inspections Synthesis Model Checking Correctness Proofs Traditional Runtime Monitoring

Effectiveness of Fault Detection Techniques

Groups: 2 min. What does this slide say?

Error Estimates: 3 errors per 1000 keystrokes for trained typists. 1 bug per 100 lines of code (after publication) 1.5 bugs per line of code (all together, including typing errors). Testing is 30-90% of the cost of a product. probability of correctly changing a program 50% if less than 10 lines, 20% if between 10 and 50 lines