(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 1 Basic Principles.

Slides:



Advertisements
Similar presentations
Object-Oriented Software Development CS 3331 Fall 2009.
Advertisements

CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Software Engineering-II Sir zubair sajid. What’s the difference? Verification – Are you building the product right? – Software must conform to its specification.
Chapter 2 The Software Process
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation 2.
(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.
(c) 2007 Mauro Pezzè & Michal Young Ch 13, slide 1 Data flow testing.
Inspection (c) 2007 Mauro Pezzè & Michal Young Ch 18, slide 1 Photo credit jurvetson on Flickr.com; creative commons attribution license.
November 2005J. B. Wordsworth: J5DAMQVT1 Design and Method Quality, Verification, and Testing.
Testing: Who 3, What 4, Why 1, When 2, How 5 Lian Yu, Peking U. Michal Young, U. Oregon.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
Background on Testing and Maintenance CISC 879 Fall 2008.
Discrete-Event Simulation: A First Course Steve Park and Larry Leemis College of William and Mary.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
(c) 2007 Mauro Pezzè & Michal Young Ch 16, slide 1 Fault-Based Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
(c) 2007 Mauro Pezzè & Michal Young Ch 4, slide 1 Test and Analysis Activities within a Software Process.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Understand.
(c) 2007 Mauro Pezzè & Michal Young Ch 24, slide 1 Documenting Analysis and Test.
(c) 2007 Mauro Pezzè & Michal Young Ch 10, slide 1 Functional testing.
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
CSC 402, Fall Requirements Analysis for Special Properties Systems Engineering (def?) –why? increasing complexity –ICBM’s (then TMI, Therac, Challenger...)
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
(c) 2007 Mauro Pezzè & Michal Young Ch 22, slide 1 System, Acceptance, and Regression Testing.
©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.
Chapter 24 - Quality Management 1Chapter 24 Quality management.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Reliability Categorising and specifying the reliability of software systems.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 23 Slide 1 Software testing Slightly adapted by Anders Børjesson.
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.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Slide 1 Critical Systems Specification 2.
Software Testing Testing types Testing strategy Testing principles.
CS.436 Software Engineering By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 13 Verification and validation Slide 1 1 Chapter 13 Verification and Validation.
(c) 2007 Mauro Pezzè & Michal Young The Big Picture.
Process Improvement. Improving the Test Process In the Software V&V course, Prof. Uwe asked the question: How to improve the Testing Process?
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
RELIABILITY ENGINEERING 28 March 2013 William W. McMillan.
1 Quality Attributes of Requirements Documents Lecture # 25.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
Scientific Debugging. Errors in Software Errors are unexpected behaviors or outputs in programs As long as software is developed by humans, it will contain.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CS223: Software Engineering Lecture 4: Software Development Models.
Software Requirements Specification Document (SRS)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Software Testing. SE, Testing, Hans van Vliet, © Nasty question  Suppose you are being asked to lead the team to test the software that controls.
Cs498dm Software Testing Darko Marinov January 24, 2012.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Paul Ammann & Jeff Offutt
Input Space Partition Testing CS 4501 / 6501 Software Testing
Software Testing An Introduction.
Usability engineering
Software Development Cycle
Software testing strategies 2
Software testing.
Baisc Of Software Testing
A Framework for Testing and Analysis
Software Development Cycle
Presentation transcript:

(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 1 Basic Principles

(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 2 Learning objectives Understand the basic principles undelying A&T techniques Grasp the motivations and applicability of the main principles

(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 3 Main A&T Principles General engineering principles: –Partition: divide and conquer –Visibility: making information accessible –Feedback: tuning the development process Specific A&T principles: –Sensitivity: better to fail every time than sometimes –Redundancy: making intentions explicit –Restriction: making the problem easier

(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 4 Sensitivity: better to fail every time than sometimes Consistency helps: –a test selection criterion works better if every selected test provides the same result, i.e., if the program fails with one of the selected tests, it fails with all of them (reliable criteria) –run time deadlock analysis works better if it is machine independent, i.e., if the program deadlocks when analyzed on one machine, it deadlocks on every machine

(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 5 Redundancy: making intentions explicit Redundant checks can increase the capabilities of catching specific faults early or more efficiently. –Static type checking is redundant with respect to dynamic type checking, but it can reveal many type mismatches earlier and more efficiently. –Validation of requirement specifications is redundant with respect to validation of the final software, but can reveal errors earlier and more efficiently. –Testing and proof of properties are redundant, but are often used together to increase confidence

(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 6 Partition: divide and conquer Hard testing and verification problems can be handled by suitably partitioning the input space: –both structural and functional test selection criteria identify suitable partitions of code or specifications (partitions drive the sampling of the input space) –verification techniques fold the input space according to specific characteristics, grouping homogeneous data together and determining partitions

(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 7 Restriction: making the problem easier Suitable restrictions can reduce hard (unsolvable) problems to simpler (solvable) problems –A weaker spec may be easier to check: it is impossible (in general) to show that pointers are used correctly, but the simple Java requirement that pointers are initialized before use is simple to enforce. –A stronger spec may be easier to check: it is impossible (in general) to show that type errors do not occur at run-time in a dynamically typed language, but statically typed languages impose stronger restrictions that are easily checkable.

(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 8 Visibility: Judging status The ability to measure progress or status against goals X visibility = ability to judge how we are doing on X, e.g., schedule visibility = “Are we ahead or behind schedule,” quality visibility = “Does quality meet our objectives?” –Involves setting goals that can be assessed at each stage of development The biggest challenge is early assessment, e.g., assessing specifications and design with respect to product quality Related to observability –Example: Choosing a simple or standard internal data format to facilitate unit testing

(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 9 Feedback: tuning the development process Learning from experience: Each project provides information to improve the next Examples –Checklists are built on the basis of errors revealed in the past –Error taxonomies can help in building better test selection criteria –Design guidelines can avoid common pitfalls

(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 10 Summary The discipline of test and analysis is characterized by 6 main principles: –Sensitivity: better to fail every time than sometimes –Redundancy: making intentions explicit –Restriction: making the problem easier –Partition: divide and conquer –Visibility: making information accessible –Feedback: tuning the development process They can be used to understand andvantages and limits of different approaches and compare different techniques