Verification and Validation Overview

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.
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
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.
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.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
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
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.
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.
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.
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.
Testing and Debugging PPT By :Dr. R. Mall.
Chapter 9, Testing.
Verification and Testing
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.
Software testing strategies 2
Introduction to Software Testing
Lecture 09:Software Testing
Chapter 8 Testing the Programs Shari L. Pfleeger Joann M. Atlee 4th Edition.
Verification and Validation Unit 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
CHAPTER 6 Testing and Debugging.
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 5 minutes What is verification and validation? 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): Fault (a.k.a. bug) 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 Fault correction Debugging 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 Test Test case Oracle 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 Significant test set 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 Test case Test set T P passes T if T is ideal if R: Range. r  R. D: Domain. d  D. S (r,d). The specification. P (r,d). The implementation. 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 Definitions-7 In groups, translate these into English 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’))

Take Home Message If your test set does not identify any bugs, was your testing successful?

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 (not exhaustive) Dynamic Techniques Static Techniques Formal Analysis Informal Analysis Testing Symbolic Execution Model Checking Static Analysis Walkthrough Inspection Proofs Review

Hierarchy of V&V techniques Dynamic Techniques Static Techniques Formal Analysis Informal Analysis Testing Symbolic Execution Model Checking Static Analysis Walkthrough Note: This does not match Van Vliet’s definition of testing: I use “testing” to mean that the program is being executed. He does not. Inspection Proofs Review 17

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 Incorrect or missing requirements Requirements Incorrect translation Incorrect design specification System Design Incorrect design specification Program Design Incorrect design interpretation Program Implementation Incorrect documentation Incorrect semantics Unit Testing Incomplete testing System Testing New faults introduced correcting others

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

Effectiveness of Fault Detection Techniques

What does this slide say? 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