Software Testing. 2. Models. 2. Models. Testing Approaches. Why Models? (in Testing) (Based on Part II: Models of Testing Object-Oriented Systems)

Size: px
Start display at page:

Download "Software Testing. 2. Models. 2. Models. Testing Approaches. Why Models? (in Testing) (Based on Part II: Models of Testing Object-Oriented Systems)"

Transcription

1 2. Models (Based on Part II: Models of Testing Object-Oriented Systems) Software Testing 2. Models Models Why? What? How? Combinational Models Decision Tables: What? How? Test Generation State Machines What? (variants: Mealy & Moore) State Transition Tables (State-to-state, Event-to-state) The FREE State Model (State? Transition?) Test Generation (N+) Part III: Test Patterns Chapter 2 2 (Smart) Poking Around Testing Approaches Brute Force Why Models? (in Testing) Models are what distinguishes craft from engineering! Testing is a search problem trillions and trillions of possible input and state combinations only a few will reach, trigger and propagate bugs Systematic & Focused Solutions? Brute force does not work at this scale Poking around inefficient + false feeling of confidence. Model based = systematic, focused and automated Systematic: we try every target combination (target model) Focused: where are bugs likely? (likely fault model) Automated: more tests; more repeatable test (tools model) 3 4

2 What is a Model? (in Testing) ENGINEERING MODELS subject - e.g. airplanes, buildings, weather, economics point of view/theory - e.g. gravitation, air-pressure, law of demand and offer TEST MODELS subject - e.g. implementation, component, under test point of view/theory - required behaviour, where are bugs likely? representation - wire frame image, blueprint - mathematical equations technique - skill and expertise of modeller matters representation - graphs (nodes & edges), - checklists technique - experience with requirements, design, CARTOONS sketching, refining, documentation - initial analysis, design, coverage Scope: Testing, Validation, Checking, Verification required behaviour Validation observed behaviour Consistency Checking Verification (checklists, proofs) [no execution] a [Bl Implementationbased Testing [White box] - coherent 6 2. Models Models Why? What? How? Combinational Models Decision Tables: What? How? component representation yilit sab ting n spo Tes x] Re sed bo ba ck Different models representing various perspectives necessarily - complete - unambiguous - consistent (Based on Part II: Models of Testing Object-Oriented Systems) meta-model Completeness Checking potentially - incomplete - ambiguous - inconsistent (TEST) MODELS Specify precisely - what is allowed what is NOT allowed - not integrated 5 Covered in this course! Cartoons vs. Models component implementation 7 Test Generation State Machines What? (variants: Mealy & Moore) State Transition Tables (State-to-state, Event-to-state) The FREE State Model (State? Transition?) Test Generation (N+) Part III: Test Patterns 8

3 Decision Table: example Decision Table: alternative views Annual renewal of a hypothetical car insurance policy Condition Section Variant # Claims # Insured Age Premium Increase Action Section Send Warning 1 0 <= No No 2 >= No No 3 1 <= Yes No Cancel Decision Tree None 1 Number of Claims 2-4 >= 5 Age Age Age <= 25 >= 26 <= 25 >= 26 <= 25 >= 26 $50, no letter $25, no letter $100, send warning letter $50, no letter $400, send warning letter $200, send warning letter easier to understand (and program) possibility to overlook a case Column wise view 4 >= No No 5 2 to 4 <= Yes No Cancel Variant >= Yes No 7 5 or more Any 0 No Yes Condition Section Number of Claims Insured Age >= 5 <= 25 >= 26 <= 25 >= 26 <= 25 >= 26 Any Implicit Assumptions Logical operator to interpret a row? (AND) Can a person of 15 really be insured? And what about 99? Action Section Premium increase Send warning No No Yes No Yes Yes No Cancel No No No No No No Yes 9 10 Combinational Models: Basic Approach Identify decision variable and conditions APPLICABLE? One of several distinct responses is to be selected according to distinct cases of input variables (finite!) input cases are mutually exclusive response is independent of order of input variables prior input or output prefer small tables (combinational explosion) typical for business rules, simple protocols (locks), STEPS 1) identify the decision variables and conditions n conditions 2n variants 2) identify the resultant actions to be selected or controlled 3) identify which actions should be produced in response to particular combinations of conditions 4) derive the logic function via truth table validate completeness and consistency decision table with n conditions 2 n variants usually fewer variants, only explicit variants are listed Implicit variants? don t care: condition true or false, doesn t change the action - e.g.: when # claims >= 5, then age is don t care condition can t happen: condition which is assumed never to become true - e.g.: insured age < 16 or 18 (age when driving is allowed) - can sometimes occur when context changes (Ariane crash) - must be tested explicitly (sometimes is a surprise ) don t know: is an incomplete model - e.g. what happens with an age > 300? can t happen + don t know (+ don t care): typical source for bugs - specify resulting action anyway (defaults) - test for the result 11 12

4 Deriving the logic function: truth table Logic function: only boolean variables as input and output Expression consisting solely of AND, OR, XOR, NOT + conditions Convert decision table to truth table; truth table into expression Condition section Action section Decision Variable Variant Condition Number of claims 0 T T F F F F F 1 F F T T F F F 2-4 F F F F T T F 5+ F F F F F F T Insured Age 25 or younger T F T F T F DC 26 or older F T F T F T DC Premium increase = 0 F F F F F F T Premium increase = 25 F T F F F F F Premium increase = 50 T F F T F F F Premium increase = 100 F F T F F F F Premium increase = 200 F F F F F T F Premium increase = 400 F F F F T F F Send warning F F T F T T F Cancel F F F F F F T 13 Deriving the Logic Function: logic minimization reduce logic function to compact but equivalent expression - fewer test cases are needed - faster testing (automated) - may reveal omissions or inconsistencies Initial Development Logic Minimization Technique -- inspection s KV matrix s Cause-effect graph s Quine-McCluskey method s Starner-Dietmeyer s Exact minimization s Heuristic minimization upper limit, number of boolean variables 14 Incorrect value assigned to a decision variable Incorrect or missing operator in a predicate Incorrect or missing variable in a predicate Incorrect structure in a predicate - dangling else, misplaced semicolon, Incorrect or missing default case Incorrect or missing action(s) Extra actions Structural error in decision table implementation - falling through (i.e. a missing break in C++), incorrect value for an index or action selector Missing or incorrect class or method signature - when variants are implemented via polymorphism Generic errors Decision Table: Fault Model No empirical models about distribution of faults! - wrong version, incorrect or missing specification item, ambiguous All-Explicit Variants - Most intuitive approach - 1 test case for each explicit variant of all decision variables - example: 0 claims, 1 claim, 2-4 claims, 5+ claims, 25 or younger, 26 or older Applicable Test Generation: All-Explicit Variants - decision tables with non-binary variables - weak for undefined can t happen situations - weak when boundaries are undefined ( don t know situation) Also apply non binary variable domain analysis 15 16

5 All-Variants, All-True, All-False, All-Primes Start from truth table (+ corresponding boolean function) All-Variants: every variant in the table is tested once - 2 n possibilities: works only for smaller tables All-True: every variant that produces TRUE - equivalent to testing all minterms of logical function - inappropriate when important actions follow from false variants All-False: every variant that produces FALSE - equivalent to testing complement of all minterms of logical function - inappropriate when important actions follow from true variants All-Primes: each prime implicant of boolean function at least once - i.e. each product term in a minimal sum-of-products form of boolean expression All-true, all-false, all-primes may miss critical bugs!! Each-Condition/All-Condition each variable is made true once, with all other variables being false + one test case where all variables are true (and logic) + one test case where all variables are false (or logic) Binary Decision Diagram Determinants Starts from the truth table - Produces a binary-decision diagram (see book p ) - Map the diagram into a determinant table (see book p ) Variable Negation Starts from sum-of-products boolean formula - unique true points: - near false points: Non-binary Variable Domain Analysis More test generation techniques domain testing (including boundary values) on decision variables Decision Table Test Suite Size Inclusion Hierarchy Test Strategy Test size, Binary Decision Variables Test Size, Nonbinary Decision Variables Test Power All-Variants All-Variants 2 n 2 n * 4 n 100% Basic Variable Negation 0.1 * 2 n 0.1 * 2 n * 4n 97% Each Condition/All- Conditions m + L(pi) (m + L(pi)) * 4n? All-True All-False All BDD Determinants d d * 4n? All-True t t * 4n? All-False f f * 4n? Each-Condition/ All-Conditions Basic Variable Negation BDD Determinants All-Primes m m * 4n? All-Explicit x x * 4n? For non-binary decision variable we have an expression (A <= x <= B) All-Primes test x = A - 1, x = A + 1, x = B -1, x = B + 1 # tests may become smaller for ranges where x are adjacent 19 20

6 2. Models (Based on Part II: Models of Testing Object-Oriented Systems) Models Why? What? How? Combinational Models Decision Tables: What? How? Test Generation State Machines What? (variants: Mealy & Moore) State Transition Tables (State-to-state, Event-to-state) The FREE State Model (State? Transition?) Test Generation (N+) Part III: Test Patterns What is a state machine? = system whose output is determined by both current and past input (with Decision tables, only current input influences result) identical inputs are not always accepted identical inputs may produce different outputs State machine consists of 4 building blocks State: an abstraction that summarizes the past inputs Transition: an allowable two-state sequence accepting and resulting state Caused by an event; may result in an action Guarded transition: event + guard predicate Event: an input (or an interval of time) Action: the result or output that follows an event Special states: initial state, current state, final state MEALY State Machine transitions are active - may have output action - any output action may be used in more than one transition states are passive Mathematically equivalent Variants: Mealy and Moore MOORE State Machine transitions are passive states are active - may have output action - every output action has at least one state MEALY is preferred for engineering design UML allows both! - Hybrids are bad for test design! p1_winsvolley() [this.p1.score()< 20] / this.p1addpoint() Two-player Squash: Mealy State Machine p1_start()/ player1 served p1_winsvolley() [this.p1.score()== 20] / this.p1addpoint() p1_iswinner()/ return TRUE player1 won game started p1_winsvolley()/ / p2_start()/ player2 served player2 won [this.p2.score()< 20] / this.p2addpoint() [this.p2.score()== 20] / this.p2addpoint() p2_iswinner()/ return TRUE 23 24

7 p1_winsvolley() Two-player Squash: Moore State Machine p1_start() Player1 serving Player1 continues p1_addpoint() game started p1_winsvolley() [this.p1_score() < 20] p1_winsvolley() [this.p1_score() == 20] Player1 won p1_addpoint() p1_iswinner() p1_winsvolley() Answering Player1 won return TRUE; p1_winsvolley() p1_iswinner() p2_start() Player2 serving Player2 continues p2_addpoint() Player2 won p2_addpoint() p2_iswinner() Answering Player2 won return TRUE; [ ] [this.p2_score() == 20] p2_iswinner() State Transition Tables state-to-state format row = accepting state; column = resulting state cell = transition = event (with guard) + action event-to-state format row = event (with guard); column = accepting state cell = transition = action + resultant state expanded state-to-state format 2 state-to-state tables: 1 for events and 1 for actions separates the transition function and output function Example: State-to-state Example: Event-to-state Current State Game Started Player 1 served Player 2 served Player 1 won Player 2 won Game Started Resultant State/Event/Action Player 1 Served Player 2 Served Player 1 Won Player 2 Won p1_start() p1_winsvolley() [p1 score < 20] this.p1addpoint(), SimulateVolley() p1_winsvolley() p2_start() p2_winsvolley() p2_winsvolley() [p2 score < 20] this.p2addpoint(), SimulateVolley() p1_winsvolley() [p1 score == 20] p1_iswinner() return TRUE p2_winsvolley() [p2 score == 20] p2_iswinner() return TRUE Current State/Action/Next State Event Guard Game Started Player 1 Served Player 2 Served Player 1 Won Player 2 Won p1_start() p2_start() p2_winsv olley() p1_winsv olley() p1_iswinn er() DC (don t care) p2_score < 20 p2_score == 20 Player 1 Served Player 2 Served Player 2 Served this.p2addpoint(), Player 2 Served this.p2addpoint() Player 2 Served return TRUE Player 1 Won 27 28

8 The FREE State Model Flattened Regular Expression (FREE) class under test is flattened all inherited features are collapsed in class under test assume type-substitution principle instance of a class may be substituted by an instance of a subclass model behaviour as state machine What is State? A particular subset of a class combinational value set Represented by a State Invariant (predicate) Class Account { private: AccountNumber number; Money balance; Date lastupdate} Account.balance restrictions to UML statechart notation few changes to UML statechart notation (e.g., alpha/omega states) can be expressed in UML results in testable model no ambiguities (among others precise definition of state ) automatic generation of test cases states Account.lastUpdate Account.number Open State Inactive State state invariant defines a subset of legal values for a class state invariant is same or stronger than class invariant method postconditions + state invariants = all states don t use hybrids (i.e. no mixing of Mealy and Moore) alpha state null state: represent declared object before construction accept only constructor, new, (alpha transition) is NOT the same as the UML initial state (solid circle) omega state Implications null state: reached after deletion, destruction, out of scope accepted explicit or implicit destructors (omega transition) is NOT the same as the UML final state (bulls-eye) alpha-omega cycle What is a Transition? Transition = 1 state invariant for accepting state 1 state invariant for resulting state 1 associated event message sent to the class under test interrupt or similar external control (timer, ) [optional guard expression] predicate expression evaluated in the context of class under test 0 or more actions message sent to a server object of the class under test response provided by an object of the class under test 31 32

9 What should happen when a state machine in a given state receives an event not specified for this state? ignore standard semantics for state machines unacceptable for testing purposes omitted incomplete specification: extend the state machine illegal (or impossible ) illegal event = valid event, not acceptable for the current state (e.g. pop() on an empty stack) if accepted results in an illegal transition Sneak path Unspecified Event/State Pairs beware: guarded transitions, what if the guard is FALSE? transition to an Illegal event exception state Response Matrix = Modified event-to-state table ROWS: list events + guards unguarded event: 1 row guarded event: 1 row for each unique event/guard combination one row for each truth combination of subexpressions + additional column for all sub expressions if event is sometimes guarded, then include a don t care column COLUMNS: list Accepting states CELLS: list responses error codes for possible responses Response Matrix Response Matrix: Possible Responses 0. Accept (perform specified transition) 1. Queue (queue event for subsequent evaluation and ignore) 2. Ignore 3. Flag (return a non zero error code) 4. Reject (raise an exception) 5. Mute (disable the source of events and ignore) 6. Abend (invoke abnormal termination and halt process) Example: Response Matrix Accepting State/Expected Response Events Guards alpha A B C omega constructor event 1 x == 0 DC F T event 2 i > 10 k == max isreset() DC DC DC F F F F F T F T F destructor

10 s states, e events, a actions gives (s x a) es possible implementations 5 states, 2 events and 2 actions: 10 billion possibilities only one correct implementation Possible faults missing or incorrect transition missing or incorrect event missing or incorrect action an extra, missing or corrupt state State Based Testing: Fault Model a sneak path (a message is accepted when it shouldn t be) an illegal message failure (unexpected message causes a failure) trap door (implementation accepts undefined messages) No empirical models about distribution of faults! Verify the State Model structure check-list (Table 7.5) structurally complete and consistent state name check-list (Table 7.6) avoid weak, ambiguous or inappropriate state names guarded transition check-list (Table 7.7) check logic and structure of guard expressions flattened machine check-list (Table 7.8) free of level-to-level conflicts consistent behaviour for inheritance tree reuse of superclass test suites robustness check-list (Table 7.9) safe and correct behaviour under failure modes Test Generation State Machine Coverage N+ Test Generation Features exercise all implicit transitions to reveal sneaky paths implementation must be able to report current state state reporter methods (available? encapsulation?) Steps Develop a FREE model + Derive response matrix Generate round-trip test cases via Transition Tree (see p. 249) cover all branches (= transitions) at least once identify parameter values, expected state and exception Generate sneak path test cases cover all branches with unspecified transitions verify response + resulting state Sensitize the transitions find input values for all guards Based on years of experience with state-based testing of hardware and telecommunications infrastructure All Transitions every specified transition at least once All n-transition sequences every specified transition sequence of n events All round-trip Paths every sequence of specified transitions beginning and ending in the same state is exercised at least once M-Length Signature (when state reporter methods are absent) signature = sequence of output actions unique for given state verify whether we reached the given state by verifying signature 39 40

11 2. Models (Based on Part II: Models of Testing Object-Oriented Systems) Models Why? What? How? Combinational Models Decision Tables: What? How? Test Generation State Machines What? (variants: Mealy & Moore) State Transition Tables (State-to-state, Event-to-state) The FREE State Model (State? Transition?) Test Generation (N+) Part III: Test Patterns (Test) Patterns pattern = generalized solution to a specific recurring (design) problem capture the essence of proven solutions pattern template includes name (design discussions) context when to apply, when NOT to apply forces: different interests pull towards various directions trade-offs advantages and disadvantages in terms of forces known uses Test Pattern Template Test Documentation name intent context (incl. test scope) fault model what kind of faults are the target? motivate: why reach faults + trigger and propagate failures strategy how to design and implement the test suite procedure, oracle, automation example entry criteria preconditions for using this pattern when is the Implementation Under Test (IUT) test ready? exit criteria defines the results necessary to achieve an adequate test (See also IEEE standard 829) prepare a test plan what to test when deliverables stop criteria design the test suite test suite hierarchy (i.e. V-model) procedures for running the tests prepare test cases (using appropriate test pattern) test the component results for each test case: pass / no pass / unable to execute store results (and follow-up action) for later reference prepare test summary report Evaluate the operability of the IUT 43 44

12 Conclusion Models Why? What? How? Combinational Models Decision Tables: What? How? Test Generation State Machines What? (variants: Mealy & Moore) State Transition Tables (State-to-state, Event-to-state) The FREE State Model (State? Transition?) alpha-omega cycle Test Generation (N+) Part III: Test Patterns Patterns are NOT a good vehicle for Analytical comparison (and contrasting) Presenting a general model, theory, point of view Defining terms + conceptual relationship Lengthy and complex system of ideas I want you to teach some of the material & serve as opponent for your colleagues Will force you to acquire deep understanding In depth understanding of parts is preferred over broad understanding of the whole Patterns are not a Panacea Tips Preparing slides for a 2-hour lecture takes 8 hours! scope of the lecture is known message (what do I want the audience to remember?) story (how will I sequence the material from known to unknown?) Avoid death by bullet points use tables / schemas / animation / slides are a tool (not a goal in themselves) Passionate lecturing use personal anecdotes, examples, Examples? Industrial Guest Lectures! relate to your audience 47

Software Testing. 2. Models. 2. Models. Testing Approaches. Why Models? (in Testing) (Based on Part II: Models of Testing Object-Oriented Systems)

Software Testing. 2. Models. 2. Models. Testing Approaches. Why Models? (in Testing) (Based on Part II: Models of Testing Object-Oriented Systems) 2. Models (Based on Part II: Models of Testing Object-Oriented Systems) Software Testing 2. Models Models - Why? What? How? Combinational Models - Decision Tables: What? How? - Test Generation State Machines

More information

Motivation State Machines

Motivation State Machines Motivation State Machines Generating test cases for complex behaviour Textbook Reading: Chapter 7 We are interested in testing the behaviour of object-oriented software systems Behaviour: Interactions

More information

State-Based Testing Part B Error Identification. Generating test cases for complex behaviour

State-Based Testing Part B Error Identification. Generating test cases for complex behaviour State-Based Testing Part B Error Identification Generating test cases for complex behaviour Reference: Robert V. Binder Testing Object-Oriented Systems: Models, Patterns, and Tools Addison-Wesley, 2000,

More information

Decision tables. Combinational Models. Necessary Characteristics of the Implementation. Decision tables. Deriving decision tables

Decision tables. Combinational Models. Necessary Characteristics of the Implementation. Decision tables. Deriving decision tables ombinational Models Generating test cases when the test model is a decision table Textbook Reading: hapter 6 ecision tables Ideal representation for a test model for the following reasons: Straightforward

More information

door Sasa Berberovic

door Sasa Berberovic door Sasa Berberovic Overview Reusable Components Subsystems Reusable Components Reuse Mechanisms The Role of Testing in Reuse Reusing Test Suites Test Design Patterns Abstract Class Test Generic Class

More information

Class Modality. Modality Types. Modality Types. Class Scope Test Design Patterns

Class Modality. Modality Types. Modality Types. Class Scope Test Design Patterns Class Scope Test Design Patterns Testing methods in isolation is not enough Instance variables act like global variables within a class Need to test intraclass interactions Message sequences Class Modality

More information

Błaej Pietrzak

Błaej Pietrzak Błaej Pietrzak blazej.pietrzak@cs.put.poznan.pl Fault model Result-oriented testing Test design approach Domain testing model Category-Partition test pattern Polymorphic message test pattern 1 Exhaustive

More information

17. Assertions. Outline. Built-in tests. Built-in tests 3/29/11. Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen

17. Assertions. Outline. Built-in tests. Built-in tests 3/29/11. Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen 17. Assertions Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen Outline Introduction (BIT, assertion, executable assertion, why?) Implementation-based vs responsability-based assertions Implementation

More information

17. Assertions. Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen

17. Assertions. Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen 17. Assertions Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen Outline Introduction (BIT, assertion, executable assertion, why?) Implementation-based vs responsability-based assertions Implementation

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Part I: Preliminaries 24

Part I: Preliminaries 24 Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................

More information

Part 5. Verification and Validation

Part 5. Verification and Validation Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this

More information

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be

More information

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

Software Testing. 14. Application Systems. International Funds Transfer System Development Team - Objects work, objects are right The System Works!

Software Testing. 14. Application Systems. International Funds Transfer System Development Team - Objects work, objects are right The System Works! Software Testing 14. Application Systems Daniel Riegelhaupt - Thomas De Vylder - Loots Gertjan - Saquet Tim - Philip De Smedt 14. Application Systems Testing Application Systems Test Design Patterns Implementation-specific

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia Topic: Software Verification, Validation and Testing Software Engineering Faculty of Computing Universiti Teknologi Malaysia 2016 Software Engineering 2 Recap on SDLC Phases & Artefacts Domain Analysis

More information

Black-box Testing Techniques

Black-box Testing Techniques T-76.5613 Software Testing and Quality Assurance Lecture 4, 20.9.2006 Black-box Testing Techniques SoberIT Black-box test case design techniques Basic techniques Equivalence partitioning Boundary value

More information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics via Syntax. f (4) = if define f (x) =2 x + 55. 1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)

More information

Błaej Pietrzak Goal. Two approaches. Process. If we limit testing to method scope

Błaej Pietrzak Goal. Two approaches. Process. If we limit testing to method scope Błaej Pietrzak blazej.pietrzak@cs.put.poznan.pl Class scope integration Design by Contract Invariant Boundaries pattern Non-modal class pattern FREE state model Quasi-modal class pattern Modal class pattern

More information

Integration Testing Qualidade de Software 2

Integration Testing Qualidade de Software 2 Integration Testing Integration Testing Software systems are built with components that must interoperate Primary purpose: To reveal component interoperability faults so that testing at system scope may

More information

Software Design and Analysis for Engineers

Software Design and Analysis for Engineers Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 2 Date:

More information

AXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop

AXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop AXIOMS OF AN IMPERATIVE LANGUAGE We will use the same language, with the same abstract syntax that we used for operational semantics. However, we will only be concerned with the commands, since the language

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

Lecture 15 Software Testing

Lecture 15 Software Testing Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered

More information

Chapter 5 Selection Statements. Mr. Dave Clausen La Cañada High School

Chapter 5 Selection Statements. Mr. Dave Clausen La Cañada High School Chapter 5 Selection Statements Mr. Dave Clausen La Cañada High School Objectives Construct and evaluate Boolean expressions Understand how to use selection statements to make decisions Design and test

More information

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing. Overview CS 619 Introduction to OO Design and Development ing! Preliminaries! All sorts of test techniques! Comparison of test techniques! Software reliability Fall 2012! Main issues: There are a great

More information

Requirements Validation and Negotiation

Requirements Validation and Negotiation REQUIREMENTS ENGINEERING LECTURE 2015/2016 Eddy Groen Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of

More information

Lecture Notes on Binary Decision Diagrams

Lecture Notes on Binary Decision Diagrams Lecture Notes on Binary Decision Diagrams 15-122: Principles of Imperative Computation William Lovas Notes by Frank Pfenning Lecture 25 April 21, 2011 1 Introduction In this lecture we revisit the important

More information

Introduction. The Quine-McCluskey Method Handout 5 January 24, CSEE E6861y Prof. Steven Nowick

Introduction. The Quine-McCluskey Method Handout 5 January 24, CSEE E6861y Prof. Steven Nowick CSEE E6861y Prof. Steven Nowick The Quine-McCluskey Method Handout 5 January 24, 2013 Introduction The Quine-McCluskey method is an exact algorithm which finds a minimum-cost sum-of-products implementation

More information

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze

More information

Chapter 3. Set Theory. 3.1 What is a Set?

Chapter 3. Set Theory. 3.1 What is a Set? Chapter 3 Set Theory 3.1 What is a Set? A set is a well-defined collection of objects called elements or members of the set. Here, well-defined means accurately and unambiguously stated or described. Any

More information

Requirements. Requirements. Types of Requirement. What Is a Requirement?

Requirements. Requirements. Types of Requirement. What Is a Requirement? Beatrice Åkerblom beatrice@dsv.su.se Everything else in software development depends on the requirements. If you cannot get stable requirements you cannot get a predictable plan... What Is a Requirement?!

More information

Subsystem Hazard Analysis (SSHA)

Subsystem Hazard Analysis (SSHA) Subsystem Hazard Analysis (SSHA) c "!$#%! Examine subsystems to determine how their Normal performance Operational degradation Functional failure Unintended function Inadvertent function (proper function

More information

Fortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming)

Fortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming) 2014-03-07 Preface Fortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming) Coordinates: Lecturer: Web: Studies: Requirements: No. 185.211, VU, 3 ECTS Franz Puntigam http://www.complang.tuwien.ac.at/franz/foop.html

More information

Introduction to Dynamic Analysis

Introduction to Dynamic Analysis Introduction to Dynamic Analysis Reading assignment Gary T. Leavens, Yoonsik Cheon, "Design by Contract with JML," draft paper, http://www.eecs.ucf.edu/~leavens/jml//jmldbc.pdf G. Kudrjavets, N. Nagappan,

More information

EINDHOVEN UNIVERSITY OF TECHNOLOGY

EINDHOVEN UNIVERSITY OF TECHNOLOGY EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics & Computer Science Exam Programming Methods, 2IP15, Wednesday 17 April 2013, 09:00 12:00 TU/e THIS IS THE EXAMINER S COPY WITH (POSSIBLY INCOMPLETE)

More information

Introduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications

Introduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications Introduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/softwa retest/ Design Specifications A design specification

More information

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs. In this Lecture you will Learn: Testing in Software Development Process Examine the verification and validation activities in software development process stage by stage Introduce some basic concepts of

More information

Safety SPL/2010 SPL/20 1

Safety SPL/2010 SPL/20 1 Safety 1 system designing for concurrent execution environments system: collection of objects and their interactions system properties: Safety - nothing bad ever happens Liveness - anything ever happens

More information

An Introduction to Systematic Software Testing. Robert France CSU

An Introduction to Systematic Software Testing. Robert France CSU An Introduction to Systematic Software Testing Robert France CSU Why do we need to systematically test software? Poor quality products can Inconvenience direct and indirect users Result in severe financial

More information

Discrete Mathematics Lecture 4. Harper Langston New York University

Discrete Mathematics Lecture 4. Harper Langston New York University Discrete Mathematics Lecture 4 Harper Langston New York University Sequences Sequence is a set of (usually infinite number of) ordered elements: a 1, a 2,, a n, Each individual element a k is called a

More information

Input Space Partitioning

Input Space Partitioning Input Space Partitioning Instructor : Ali Sharifara CSE 5321/4321 Summer 2017 CSE 5321/4321, Ali Sharifara, UTA 1 Input Space Partitioning Introduction Equivalence Partitioning Boundary-Value Analysis

More information

«Computer Science» Requirements for applicants by Innopolis University

«Computer Science» Requirements for applicants by Innopolis University «Computer Science» Requirements for applicants by Innopolis University Contents Architecture and Organization... 2 Digital Logic and Digital Systems... 2 Machine Level Representation of Data... 2 Assembly

More information

Theme 2 Program Design and Testing

Theme 2 Program Design and Testing Theme 2 Program Design and Testing Systematic Testing 1 Learning Objectives to present a few systematic testing techniques that increase the chance of finding defects while keeping the number of test cases

More information

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne Two-level Logic Synthesis and Optimization Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial purposes as long as this note and the copyright footers

More information

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD A Comparison of the Booch Method and Shlaer-Mellor OOA/RD Stephen J. Mellor Project Technology, Inc. 7400 N. Oracle Rd., Suite 365 Tucson Arizona 85704 520 544-2881 http://www.projtech.com 2 May 1993 The

More information

Part X. Advanced C ++

Part X. Advanced C ++ Part X Advanced C ++ topics Philip Blakely (LSC) Advanced C++ 158 / 217 References The following are highly regarded books. They are fairly in-depth, and I haven t read them in their entirity. However,

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 10 - Object-Oriented Programming Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages

More information

References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1

References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1 References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,

More information

Simplification of Boolean Functions

Simplification of Boolean Functions COM111 Introduction to Computer Engineering (Fall 2006-2007) NOTES 5 -- page 1 of 5 Introduction Simplification of Boolean Functions You already know one method for simplifying Boolean expressions: Boolean

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Testing Object-Oriented Software. 22 November 2017

Testing Object-Oriented Software. 22 November 2017 Testing Object-Oriented Software 22 November 2017 Testing Object-Oriented Software 2 Problems in object-oriented testing [Binder] Each level in the class hierarchy creates a new context for inherited features:

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Introduction to Software Testing Chapter 3, Sec# 1 & 2 Logic Coverage

Introduction to Software Testing Chapter 3, Sec# 1 & 2 Logic Coverage Introduction to Software Testing Chapter 3, Sec# 1 & 2 Logic Coverage Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/soft waretest/ Ch. 3 : Logic Coverage Four Structures for Modeling Software

More information

Chapter 5 System modeling

Chapter 5 System modeling Chapter 5 System Modeling Lecture 1 1 Topics covered Context models Interaction models Structural models Behavioral models Model-driven driven engineering 2 System modeling System modeling is the process

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a

More information

Verification Overview Testing Theory and Principles Testing in Practice. Verification. Miaoqing Huang University of Arkansas 1 / 80

Verification Overview Testing Theory and Principles Testing in Practice. Verification. Miaoqing Huang University of Arkansas 1 / 80 1 / 80 Verification Miaoqing Huang University of Arkansas Outline 1 Verification Overview 2 Testing Theory and Principles Theoretical Foundations of Testing Empirical Testing Principles 3 Testing in Practice

More information

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013!

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013! Testing Prof. Leon Osterweil CS 520/620 Spring 2013 Relations and Analysis A software product consists of A collection of (types of) artifacts Related to each other by myriad Relations The relations are

More information

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:

Lecturer: Sebastian Coope Ashton Building, Room G.18   COMP 201 web-page: Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Lecture 17 Concepts of Object Oriented Design Object-Oriented

More information

Sample Question Paper. Software Testing (ETIT 414)

Sample Question Paper. Software Testing (ETIT 414) Sample Question Paper Software Testing (ETIT 414) Q 1 i) What is functional testing? This type of testing ignores the internal parts and focus on the output is as per requirement or not. Black-box type

More information

Principles of Testing and Analysis. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Principles of Testing and Analysis. COMP 4004 Fall Notes Adapted from Dr. A. Williams Principles of Testing and Analysis COMP 4004 Fall 2008 Notes Adapted from Dr. A. Williams Software Quality Assurance Lec 3 1 Principles of Testing and Analysis Sensitivity Redundancy Restriction Partition

More information

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification Techniques

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification Techniques Software Testing in the textbook Software Testing Chapter 8 Introduction (Verification and Validation) 8.1 Development testing 8.2 Test-driven development 8.3 Release testing 8.4 User testing 1 2 Verification

More information

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER The Bizarre Truth! Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER By Kimmo Nupponen 1 TABLE OF CONTENTS 1. The context Introduction 2. The approach Know the difference

More information

Topics in Software Testing

Topics in Software Testing Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the

More information

MONIKA HEINER.

MONIKA HEINER. LESSON 1 testing, intro 1 / 25 SOFTWARE TESTING - STATE OF THE ART, METHODS, AND LIMITATIONS MONIKA HEINER monika.heiner@b-tu.de http://www.informatik.tu-cottbus.de PRELIMINARIES testing, intro 2 / 25

More information

CSCI-1200 Data Structures Fall 2009 Lecture 25 Concurrency & Asynchronous Computing

CSCI-1200 Data Structures Fall 2009 Lecture 25 Concurrency & Asynchronous Computing CSCI-1200 Data Structures Fall 2009 Lecture 25 Concurrency & Asynchronous Computing Final Exam General Information The final exam will be held Monday, Dec 21st, 2009, 11:30am-2:30pm, DCC 308. A makeup

More information

CS 4387/5387 SOFTWARE V&V LECTURE 4 BLACK-BOX TESTING

CS 4387/5387 SOFTWARE V&V LECTURE 4 BLACK-BOX TESTING 1 CS 4387/5387 SOFTWARE V&V LECTURE 4 BLACK-BOX TESTING Outline 2 Quiz Black-Box Testing Equivalence Class Testing (Equivalence Partitioning) Boundary value analysis Decision Table Testing 1 3 Quiz - 1

More information

9/21/17. Outline. Expression Evaluation and Control Flow. Arithmetic Expressions. Operators. Operators. Notation & Placement

9/21/17. Outline. Expression Evaluation and Control Flow. Arithmetic Expressions. Operators. Operators. Notation & Placement Outline Expression Evaluation and Control Flow In Text: Chapter 6 Notation Operator evaluation order Operand evaluation order Overloaded operators Type conversions Short-circuit evaluation of conditions

More information

Testing. Unit, integration, regression, validation, system. OO Testing techniques Application of traditional techniques to OO software

Testing. Unit, integration, regression, validation, system. OO Testing techniques Application of traditional techniques to OO software Testing Basic ideas and principles Traditional testing strategies Unit, integration, regression, validation, system OO Testing techniques Application of traditional techniques to OO software Testing-11,

More information

Chapter 8 Software Testing. Chapter 8 Software testing

Chapter 8 Software Testing. Chapter 8 Software testing Chapter 8 Software Testing 1 Topics covered Introduction to testing Stages for testing software system are: Development testing Release testing User testing Test-driven development as interleave approach.

More information

Test Requirement Catalog. Generic Clues, Developer Version

Test Requirement Catalog. Generic Clues, Developer Version Version 4..0 PART 1: DATA TYPES Test Requirement Catalog SIMPLE DATA TYPES... 4 BOOLEAN... 4 CASES... 4 COUNTS... 5 INTERVALS... 5 [LOW, HIGH] an interval that contains both LOW and HIGH... 6 [LOW, HIGH)

More information

Testing and Debugging

Testing and Debugging Testing and Debugging Comp-303 : Programming Techniques Lecture 14 Alexandre Denault Computer Science McGill University Winter 2004 March 1, 2004 Lecture 14 Comp 303 : Testing and Debugging Page 1 Announcements...

More information

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL 5.1 INTRODUCTION The survey presented in Chapter 1 has shown that Model based testing approach for automatic generation of test

More information

Programming Languages Third Edition. Chapter 9 Control I Expressions and Statements

Programming Languages Third Edition. Chapter 9 Control I Expressions and Statements Programming Languages Third Edition Chapter 9 Control I Expressions and Statements Objectives Understand expressions Understand conditional statements and guards Understand loops and variation on WHILE

More information

Administrivia. Wednesday: Requirements and Specification. CS169 Lecture 4. We assign teams and you start on Monday. Determining Stakeholders and Needs

Administrivia. Wednesday: Requirements and Specification. CS169 Lecture 4. We assign teams and you start on Monday. Determining Stakeholders and Needs Administrivia Requirements and Specification CS169 Lecture 4 Wednesday: Groups and one-sentence idea(s) due at class One per group If you have a small group, still submit so that you will be kept together.

More information

15. Regression testing

15. Regression testing Outline 15. Regression testing Tom Verheyen, Jelle Slowack, Bart Smets, Glenn Van Loon Introduction - What, why, when, how - Regression faults - Test automation - Test suite maintenance - Reducing a test

More information

Quality Assurance in Software Development

Quality Assurance in Software Development Quality Assurance in Software Development Qualitätssicherung in der Softwareentwicklung A.o.Univ.-Prof. Dipl.-Ing. Dr. Bernhard Aichernig Graz University of Technology Austria Summer Term 2017 1 / 47 Agenda

More information

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Classes, Class Diagrams Values and Attributes Operations

More information

COURSE 2 DESIGN PATTERNS

COURSE 2 DESIGN PATTERNS COURSE 2 DESIGN PATTERNS CONTENT Fundamental principles of OOP Encapsulation Inheritance Abstractisation Polymorphism [Exception Handling] Fundamental Patterns Inheritance Delegation Interface Abstract

More information

These are notes for the third lecture; if statements and loops.

These are notes for the third lecture; if statements and loops. These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern

More information

XVIII. Software Testing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

XVIII. Software Testing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini XVIII. Software Testing Laurea Triennale in Informatica Corso di Objective General discussion on Testing Testing Phases Approaches to testing Structural testing Functional testing Testing non functional

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

Review sheet for Final Exam (List of objectives for this course)

Review sheet for Final Exam (List of objectives for this course) Review sheet for Final Exam (List of objectives for this course) Please be sure to see other review sheets for this semester Please be sure to review tests from this semester Week 1 Introduction Chapter

More information

Path Testing + Coverage. Chapter 8

Path Testing + Coverage. Chapter 8 Path Testing + Coverage Chapter 8 Structural Testing n Also known as glass/white/open box testing n A software testing technique whereby explicit knowledge of the internal workings of the item being tested

More information

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends! Requirements Spec. Design Coding and Unit Testing Characteristics of System to be built must match required characteristics (high level) Architecture consistent views Software Engineering Computer Science

More information

CS112 Lecture: Working with Numbers

CS112 Lecture: Working with Numbers CS112 Lecture: Working with Numbers Last revised January 30, 2008 Objectives: 1. To introduce arithmetic operators and expressions 2. To expand on accessor methods 3. To expand on variables, declarations

More information

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects Lecture 4: Fundamentals of Object Technology Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture

More information

Software Engineering

Software Engineering Software Engineering Lecture 13: Testing and Debugging Testing Peter Thiemann University of Freiburg, Germany SS 2014 Recap Recap Testing detect the presence of bugs by observing failures Recap Testing

More information

12 Tutorial on UML. TIMe TIMe Electronic Textbook

12 Tutorial on UML. TIMe TIMe Electronic Textbook TIMe TIMe Electronic Textbook 12 Tutorial on UML Introduction......................................................2.................................................3 Diagrams in UML..................................................3

More information

Assertions. Assertions - Example

Assertions. Assertions - Example References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 11/13/2003 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,

More information

6. Hoare Logic and Weakest Preconditions

6. Hoare Logic and Weakest Preconditions 6. Hoare Logic and Weakest Preconditions Program Verification ETH Zurich, Spring Semester 07 Alexander J. Summers 30 Program Correctness There are many notions of correctness properties for a given program

More information

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering Chapter 11, Testing Using UML, Patterns, and Java Object-Oriented Software Engineering Outline Terminology Types of errors Dealing with errors Quality assurance vs Testing Component Testing! Unit testing!

More information

Statecharts 1.- INTRODUCTION 1.- INTRODUCTION

Statecharts 1.- INTRODUCTION 1.- INTRODUCTION Statecharts INDEX 1.- Introduction 2.- When to use Statecharts 3.- Basic components 4.- Connectors and compound transitions Mª Ángeles Martínez Ibáñez University of Bergen Selected topics in programming

More information

Natural Language Specification

Natural Language Specification REQUIREMENTS ENGINEERING LECTURE 2017/2018 Dr. Jörg Dörr Natural Language Specification Most Requirements are Described in Natural Language Free Text (Prose) In Word In Excel (Tabular) In RM-Tools In Sys-ML

More information

Chapter 3. Describing Syntax and Semantics

Chapter 3. Describing Syntax and Semantics Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:

More information

(Refer Slide Time 3:31)

(Refer Slide Time 3:31) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 5 Logic Simplification In the last lecture we talked about logic functions

More information

(Refer Slide Time 6:48)

(Refer Slide Time 6:48) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 8 Karnaugh Map Minimization using Maxterms We have been taking about

More information