A Framework for Testing and Analysis

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

(c) 2007 Mauro Pezzè & Michal Young Ch 17, slide 1 Test Execution.
Verification and Validation
Data Abstraction II SWE 619 Software Construction Last Modified, Spring 2009 Paul Ammann.
(c) 2007 Mauro Pezzè & Michal Young Ch 9, slide 1 Test Case Selection and Adequacy Criteria.
(c) 2007 Mauro Pezzè & Michal Young Ch 9, slide 1 Test Case Selection and Adequacy Criteria.
CS305: HCI in SW Development Evaluation (Return to…)
Inspection (c) 2007 Mauro Pezzè & Michal Young Ch 18, slide 1 Photo credit jurvetson on Flickr.com; creative commons attribution license.
1 Design by Contract Building Reliable Software. 2 Software Correctness Correctness is a relative notion  A program is correct with respect to its specification.
Safety and Liveness. Defining Programs Variables with respective domain –State space of the program Program actions –Guarded commands Program computation.
Testing: Who 3, What 4, Why 1, When 2, How 5 Lian Yu, Peking U. Michal Young, U. Oregon.
ESC Java. Static Analysis Spectrum Power Cost Type checking Data-flow analysis Model checking Program verification AutomatedManual ESC.
Background on Testing and Maintenance CISC 879 Fall 2008.
1 8. Safe Query Languages Safe program – its semantics can be at least partially computed on any valid database input. Safety is tied to program verification,
(c) 2007 Mauro Pezzè & Michal Young Ch 16, slide 1 Fault-Based Testing.
(c) 2007 Mauro Pezzè & Michal Young Ch 4, slide 1 Test and Analysis Activities within a Software Process.
(c) 2007 Mauro Pezzè & Michal Young Ch 24, slide 1 Documenting Analysis and Test.
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 1 Basic Principles.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Recall The Team Skills Analyzing the Problem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
(c) 2007 Mauro Pezzè & Michal Young Ch 2, slide 1 A Framework for Testing and Analysis.
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Software Testing and Validation SWE 434
Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Static program checking and verification Slides: Based.
PART B-UNIT-6-PROCESS FRAMEWORK
(c) 2007 Mauro Pezzè & Michal Young The Big Picture.
©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
Verification and Validation Assuring that a software system meets a user's needs.
PRESENTER PRIYANKA GUPTA.  Testing the complete system with respect to requirements.  In System testing, the functionalities of the system are tested.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Winter 2007SEG2101 Chapter 121 Chapter 12 Verification and Validation.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Section 2.4 Software Testing. 2.4 Software Testing The process of executing a program with data sets designed to discover errors Software testing is one.
Verification and Validation. Topics covered l Verification and validation planning l Program Testing l Software inspections.
Verification and Validation
WP4 Models and Contents Quality Assessment
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Testing Verification and the Joy of Breaking Code
TESTING TOOLS MANUAL APPROACH BY J.ADI SESHU.
Opeoluwa Matthews, Jesse Bingham, Daniel Sorin
CSC 480 Software Engineering
Verification and Validation
CPE555A: Real-Time Embedded Systems
Chapter 8 – Software Testing
Recall The Team Skills Analyzing the Problem
Verification and Validation
Verification and Validation
Threads and Memory Models Hal Perkins Autumn 2011
Lecture 09:Software Testing
How Hard Can It Be?.
Generating Optimal Linear Temporal Logic Monitors by Coinduction
Threads and Memory Models Hal Perkins Autumn 2009
Resolution Proofs for Combinational Equivalence
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
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
ECE 352 Digital System Fundamentals
Software Engineering for Safety: a Roadmap
Gradual Verification Seamlessly and flexibly combine static and dynamic verification by drawing on the general principles from abstract interpretation.
Presentation transcript:

A Framework for Testing and Analysis (c) 2007 Mauro Pezzè & Michal Young

Learning objectives Introduce dimensions and tradeoff between test and analysis activities Distinguish validation from verification activities Understand limitations and possibilities of test and analysis (c) 2007 Mauro Pezzè & Michal Young

Verification and validation Validation: does the software system meets the user's real needs? are we building the right software? Verification: does the software system meets the requirements specifications? are we building the software right? (c) 2007 Mauro Pezzè & Michal Young

Validation and Verification SW Specs Actual Requirements System Validation Verification Includes usability testing, user feedback Includes testing, inspections, static analysis (c) 2007 Mauro Pezzè & Michal Young

Verification or validation depends on the specification 1 2 3 4 5 6 7 8 Example: elevator response Unverifiable (but validatable) spec: ... if a user presses a request button at floor i, an available elevator must arrive at floor i soon... Verifiable spec: ... if a user presses a request button at floor i, an available elevator must arrive at floor i within 30 seconds... (c) 2007 Mauro Pezzè & Michal Young

Validation and Verification Activities (c) 2007 Mauro Pezzè & Michal Young

You can’t always get what you want ever You can’t always get what you want Property Decision Procedure Pass/Fail Program Correctness properties are undecidable the halting problem can be embedded in almost every property of interest (c) 2007 Mauro Pezzè & Michal Young

Getting what you need ... optimistic inaccuracy: we may accept some programs that do not possess the property (i.e., it may not detect all violations). testing pessimistic inaccuracy: it is not guaranteed to accept a program even if the program does possess the property being analyzed automated program analysis techniques simplified properties: reduce the degree of freedom for simplifying the property to check (c) 2007 Mauro Pezzè & Michal Young

Example of simplified property: Unmatched Semaphore Operations original problem simplified property Java prescribes a more restrictive, but statically checkable construct. if ( .... ) { ... lock(S); } ... if ( ... ) { unlock(S); Static checking for match is necessarily inaccurate ... synchronized(S) { ... ... } (c) 2007 Mauro Pezzè & Michal Young

Some Terminology Safe: A safe analysis has no optimistic inaccuracy, i.e., it accepts only correct programs. Sound: An analysis of a program P with respect to a formula F is sound if the analysis returns true only when the program does satisfy the formula. Complete: An analysis of a program P with respect to a formula F is complete if the analysis always returns true when the program actually does satisfy the formula. (c) 2007 Mauro Pezzè & Michal Young

Summary Most interesting properties are undecidable, thus in general we cannot count on tools that work without human intevention Assessing program qualities comprises two complementary sets of activities: validation (daes the software do what it is supposed to do?) and verification (does the system behave as specificed?) There is no single technique for all purposes: test designers need to select a suitable combination of techniques (c) 2007 Mauro Pezzè & Michal Young