Revisiting coverage criteria for Scade models Jean-Louis Colaço 7 December 2016

Size: px
Start display at page:

Download "Revisiting coverage criteria for Scade models Jean-Louis Colaço 7 December 2016"

Transcription

1 Revisiting coverage criteria for Scade models Jean-Louis Colaço 7 December 2016

2 Context Code coverage is a measure that characterises how much a given test suite exercises a code, lots of criteria exist, avioncs standard (DO-178) requires MC/DC for the most critical application, in DO-178C (2011), suplement DO-331 about Model Based Design now requires model coverage. SCADE proposes model coverage for about 10 years: was based on ad hoc criteria defined by the user per operator, recent solution is inspired by work of Parissis et al. A. Lakehal and I. Parissis, Structural coverage criteria for LUSTRE/SCADE programs, in Software Testing, Verification and Reliablity, Wiley Interscience, 2009 J-L. Camus, C. Haudebourg and M. Schlickling Data Flow Model Coverage Analysis: Principles and Practice in Embedded Real Time Software and Systems, c ANSYS, Inc.

3 Why revisiting? current solution is based on Paths in the dataflow: quite complex objects; to study the relationship between model coverage and generated code coverage: paths are not well suited; to overcome some limitation of current implementation. 3 c ANSYS, Inc.

4 Why revisiting? current solution is based on Paths in the dataflow: quite complex objects; to study the relationship between model coverage and generated code coverage: paths are not well suited; to overcome some limitation of current implementation. The idea we had for the rework was actually nicely presented in: M. Whalen, G. Gay, Y. Dongjiang, M. P.E. Heimdahl and M. Staats Observable modified condition/decision coverage in Proceedings of the 35th International Conference on Software Engineering, c ANSYS, Inc.

5 Why revisiting? current solution is based on Paths in the dataflow: quite complex objects; to study the relationship between model coverage and generated code coverage: paths are not well suited; to overcome some limitation of current implementation. The idea we had for the rework was actually nicely presented in: M. Whalen, G. Gay, Y. Dongjiang, M. P.E. Heimdahl and M. Staats Observable modified condition/decision coverage in Proceedings of the 35th International Conference on Software Engineering, 2013 present work continues and extends it to full Scade 6 language. 3 c ANSYS, Inc.

6 Agenda Intuition Ideal definition of coverage Scade tagged semantics Tag based definition of coverage Static tag reduction Conclusion 4 c ANSYS, Inc.

7 Intuition Ideal definition of coverage Scade tagged semantics Tag based definition of coverage Static tag reduction Conclusion 5 Intuition c ANSYS, Inc.

8 Glossary flow or stream: infinite sequence of values. model: a Scade program and a root node. monitor: any construction that allows to observe a flow out of the model: (root node) outputs, probes,... outcome (of a test) values taken by all the monitors of the model when running a test. source designates any construction that introduces flow that that does not result from the combination of other flows. (root node) inputs, sensors, literal values, reference to constants. 6 Intuition c ANSYS, Inc.

9 The intuition Covering a stream occurrence s requires exhibiting a test that shows its ability to influence a monitor (red bubles); Covering a model requires covering all its streams occurrences. 7 Intuition c ANSYS, Inc.

10 Criterion 1: Influence A test T shows the influence of stream x of a model M if: T is such that x is in situation to influence an output of M i.e. T is such that modifying stream x in the execution of the test changes the outcome. A test suite T S covers a model M if for all stream x of M, T S contains a test T that covers stream x. 8 Intuition c ANSYS, Inc.

11 Criterion 2: OMC/DC A pair of tests (T 1, T 2 ) satisfies OMC/DC criterion for a Boolean stream b of a model M if T 1 and T 2 are such that: b takes different values in each test case and toggling b in both test cases changes the outcome. A test suite T S covers a model M in the sense of OMC/DC if for all Boolean stream b of M, T S contains two tests T 1 and T 2 such that satisfy the condition above. 9 Intuition c ANSYS, Inc.

12 Intuition Ideal definition of coverage Scade tagged semantics Tag based definition of coverage Static tag reduction Conclusion 10 Ideal definition of coverage c ANSYS, Inc.

13 Notations D n represent the set of stream prefix of size smaller or equal to n. If x is a stream prefix, x represents its size. If x is a stream prefix, (x) i where i x represents i th value. Let M be a Scade model and n in its number of inputs. A test case T of length n cycle is a tuple of n in components of D n. M(T ) represents the execution of test case T ; the outcome of this execution is itself a tuple of values in D n (one per monitor). If v is a stream prefix of a Boolean stream, i (v) represents the prefix with same length built from v by negating its i th value. A stream occurrence is represented as e k where k is an integer and e is a stream expression. 11 Ideal definition of coverage c ANSYS, Inc.

14 Occurrences identification Defined by function Streams (.): Streams (x1,..., xn = e;) def = Streams (e) def = def Streams (x) = { } x k def Streams (1) = { } 1 k Streams ( s;) def = { s k } Streams ( last s;) def = { last s k } Streams (op(e 1,..., e n)) def = { op(e 1,..., e n) k } Streams (e 1 ) def = Ideal definition of coverage c ANSYS, Inc.

15 Occurrences identification example Streams (o = x*x + pre (2*x) + 1;) = x 1, x 2, x 3, 2 4, 1 5, x 1 x 2 6, 2 4 x 3 7, pre( 2 4 x 3 ) 7 x 1 x (pre 2 4 x 3 7 x 1 x (pre 2 4 x , , 13 Ideal definition of coverage c ANSYS, Inc.

16 Stream occurrence mutation Let M be a model where: e k one of its stream occurrences: e k Streams (M), v is a finite stream prefixe: v D n, e and v are of same type, e is a stream expression with same clock as e: e e 0 e n e n+1 e n+2 v v 0 v n e v 0 v n e n+1 e n+2 M (v e k ) represents the model obtained by substituting e k in M by a e ; we called it a mutant of M for the occurrence e k. 14 Ideal definition of coverage c ANSYS, Inc.

17 Influence ideal definition Coverage of stream x by T : Influence(T, x, M) def = n > 0. v D n. M(T ) M (v x) (T ) Coverage of model M by a test suite T S : x Streams (M). T T S. Influence(T, x, M) 15 Ideal definition of coverage c ANSYS, Inc.

18 OMC/DC Ideal definition Coverage of stream x by (T 1, T 2 ): Omcdc(T 1, T 2, b, M) def = (i, j) N N. (b T1 ) i (b T2 ) j M(T1 ) M ( i (b T1 ) b) (T 1 ) M(T2 ) M ( j (b T2 ) b) (T 2 ) Coverage of model M by a test suite T S : b Streams (M). (T 1, T 2 ) T S T S. ( (b : bool) Omcdc(T 1, T 2, b, M) ) 16 Ideal definition of coverage c ANSYS, Inc.

19 Limit of the ideal definition Not really implementable: based on the exitence of mutants without giving a way to build them (it is a guess); requires both executions on original model and on the mutant; needs one mutant per stream occurrence. 17 Ideal definition of coverage c ANSYS, Inc.

20 Intuition Ideal definition of coverage Scade tagged semantics Tag based definition of coverage Static tag reduction Conclusion 18 Scade tagged semantics c ANSYS, Inc.

21 Tagged semantics Tagged semantics: based on tagged values; defines tag propagation rules. provides primitives for tag introduction; 19 Scade tagged semantics c ANSYS, Inc.

22 Tagged values The values used in a tagged Scade model M # are in V # n,m defined by: V # 0,m V # n+1,m def { } = (bool numeric declared enum values ) P(Tags) def = V n,m # { [v # 1,..., v p # ] } 1 i p m, v # i V n,m # P(Tags) { {l 1 :v # 1,..., lp:v p # } } 1 i p m, v # i V n,m # P(Tags) where Tags is a finite set of tags 20 Scade tagged semantics c ANSYS, Inc.

23 Tag propagation of combinatorial operators For most operators input tags propagate to the outputs: op # ((v 1, τ 1 ),..., (v n, τ n )) = (op(v 1,..., v n ), i [1..n] τ i) 21 Scade tagged semantics c ANSYS, Inc.

24 Tag propagation of temporal operators Behave as usual but on tagged streams: (a, τ a ) (a 0, τ0 a) (a 1, τ1 a) (a 2, τ2 a) (a 3, τ3 a) (b, τ b ) (b 0, τ0 b) (b 1, τ1 b) (b 2, τ2 b) (b 3, τ3 b) pre # (a, τ a ) (nil, ) (a 0, τ0 a) (a 1, τ1 a) (a 2, τ2 a) (a, τ a ) -> # (b, τ b ) (a 0, τ0 a) (b 1, τ1 b) (b 2, τ2 b) (b 3, τ3 b) 22 Scade tagged semantics c ANSYS, Inc.

25 Specific propagation rules and # (also exists for or # ): flow selection: a b a and # b false, τ a false, τ b false, τ a τ b false, τ a true, τ b false, τ a true, τ a false, τ b false, τ b true, τ a true, τ b true, τ a τ b if # (true, τ c ) then # (v 1, τ 1 ) else # (v 2, τ 2 ) =(v 1, τ c τ 1 ) if # ( false, τ c ) then # (v 1, τ 1 ) else # (v 2, τ 2 )=(v 2, τ c τ 2 ) 23 Scade tagged semantics c ANSYS, Inc.

26 Tags introduction sources are extended with an empty set of tags, memories are initialy extended with an empty set of tags, new primitives tag(e, t) and bool_tag(e, t 1, t 2 ) introduce tags: tag((v, τ), t) = (v, {t} τ) bool_tag((true, τ), t 1, t 2 ) = (true, {t 1 } τ) bool_tag(( false, τ), t 1, t 2 ) = ( false, {t 2 } τ) 24 Scade tagged semantics c ANSYS, Inc.

27 Tagged semantics for coverage purpose introduce a tag for each stream occurrence and register tags when reaching a monitor. 25 Scade tagged semantics c ANSYS, Inc.

28 A simple example of propagation model 26 Scade tagged semantics c ANSYS, Inc.

29 A simple example of propagation tagged model 26 Scade tagged semantics c ANSYS, Inc.

30 A simple example of propagation first cycle 26 Scade tagged semantics c ANSYS, Inc.

31 A simple example of propagation second cycle 26 Scade tagged semantics c ANSYS, Inc.

32 A simple example of propagation other cycles 26 Scade tagged semantics c ANSYS, Inc.

33 Intuition Ideal definition of coverage Scade tagged semantics Tag based definition of coverage Static tag reduction Conclusion 27 Tag based definition of coverage c ANSYS, Inc.

34 Influence tagged definition Coverage of stream x by T : Influence # (T, x, M) def = t x Otags(M # (T )) Coverage of model M by T S : x Streams (M). T T S. Influence # (T, x, M) 28 Tag based definition of coverage c ANSYS, Inc.

35 OMC/DC tagged definition Coverage of stream x by (T 1, T 2 ): def = Omcdc # (T 1, T 2, b, M) tb Otags(M# Bool (T 1)) t b Otags(M# Bool (T 2)) Coverage of model M by T S : b Streams (M). (T 1, T 2 ) T S T S. ( (b : bool) Omcdc # (T 1, T 2, b, M) ) 29 Tag based definition of coverage c ANSYS, Inc.

36 Gap with ideal definition There are situations where tags are propagated while no contribution can be observed: absorption: x * 0 unobservable selection: if c then x else x 30 Tag based definition of coverage c ANSYS, Inc.

37 Gap with ideal definition There are situations where tags are propagated while no contribution can be observed: absorption: x * 0 unobservable selection: if c then x else x Gaps exist but it still be a good compromise. 30 Tag based definition of coverage c ANSYS, Inc.

38 Intuition Ideal definition of coverage Scade tagged semantics Tag based definition of coverage Static tag reduction Conclusion 31 Static tag reduction c ANSYS, Inc.

39 Reduction Criteria are based on tags on all the expressions and sub-expressions big number of tags. Many tags are related: each time t 1 is observed t 2 is also observed. Reduction concists in removing tags whose observation can be deduced from other tags observation. Reduction is used in the model instrumentation phase. 32 Static tag reduction c ANSYS, Inc.

40 Example node N(a, b : bool ; i : i n t 1 6 ) r e t u r n s (o : i n t 1 6 ) var m : i n t 1 6 ; l e t m = pre o; o = 0 -> ( i f a and b then 2 * i e l s e i) + ( i f a or b then m / 4 e l s e m); t e l 33 Static tag reduction c ANSYS, Inc.

41 Example: initial tagging 34 Static tag reduction c ANSYS, Inc.

42 Example: initial tagging 27 tags 34 Static tag reduction c ANSYS, Inc.

43 Example: simple tag reduction 35 Static tag reduction c ANSYS, Inc.

44 Example: simple tag reduction 15 tags 35 Static tag reduction c ANSYS, Inc.

45 Example: + Boolean reduction 36 Static tag reduction c ANSYS, Inc.

46 Example: + Boolean reduction 11 tags 36 Static tag reduction c ANSYS, Inc.

47 Intuition Ideal definition of coverage Scade tagged semantics Tag based definition of coverage Static tag reduction Conclusion 37 Conclusion c ANSYS, Inc.

48 Conclusion extends to all Scade 6 language, including automata; implementation: instrumentation of the model (addition of tag(...)) and code generation for the tagged semantics; static reduction is important, divides by 2 to 3 the number of tags; good scale up (tested on big industrial models). 38 Conclusion c ANSYS, Inc.

Ensuring the Observability of Structural Test Obligations

Ensuring the Observability of Structural Test Obligations IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, TBD 1 Ensuring the Observability of Structural Test Obligations Ying Meng, Gregory Gay, Member, IEEE, Michael Whalen, Senior Member, IEEE Abstract Test adequacy

More information

Lecture #13: Type Inference and Unification. Typing In the Language ML. Type Inference. Doing Type Inference

Lecture #13: Type Inference and Unification. Typing In the Language ML. Type Inference. Doing Type Inference Lecture #13: Type Inference and Unification Typing In the Language ML Examples from the language ML: fun map f [] = [] map f (a :: y) = (f a) :: (map f y) fun reduce f init [] = init reduce f init (a ::

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

Testing. Lydie du Bousquet, Ioannis Parissis. TAROT Summer School July (TAROT 2009)

Testing. Lydie du Bousquet, Ioannis Parissis. TAROT Summer School July (TAROT 2009) Testing TAROT Summer School Lustre/SCADE programs 2009 - July 6-10 Lydie du Bousquet, Ioannis Parissis 1 (TAROT 2009) Synchrone Scade/Lustre Siesta Issues 2 Synchronous / safety-critical software control/command

More information

Observable Modified Condition/Decision Coverage

Observable Modified Condition/Decision Coverage Observable Modified Condition/Decision Coverage Michael Whalen, Gregory Gay, Dongjiang You Mats P.E. Heimdahl Department of Computer Science and Engineering University of Minnesota, USA Matt Staats Division

More information

Programming Embedded Systems

Programming Embedded Systems Programming Embedded Systems Lecture 10 An introduction to Lustre Wednesday Feb 15, 2012 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/34 Course topic: programming lang. Which language to

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 03: White-Box Testing (Textbook Ch. 5) Spring 2013 Dietmar Pfahl email: dietmar.pfahl@ut.ee Lecture Chapter 5 White-box testing techniques (Lab 3) Structure of Lecture

More information

LusRegTes: A Regression Testing Tool for Lustre Programs

LusRegTes: A Regression Testing Tool for Lustre Programs International Journal of Electrical and Computer Engineering (IJECE) Vol. 7, No. 5, October 2017, pp. 2635~2644 ISSN: 2088-8708, DOI: 10.11591/ijece.v7i5.pp2635-2644 2635 LusRegTes: A Regression Testing

More information

An Introduction to Lustre

An Introduction to Lustre An Introduction to Lustre Monday Oct 06, 2014 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/35 ES Programming languages Which language to write embedded software in? Traditional: low-level

More information

Testing: (A Little) Logic Coverage

Testing: (A Little) Logic Coverage Testing: (A Little) Logic Coverage Testing, Quality Assurance, and Maintenance Winter 2018 Prof. Arie Gurfinkel Why Logic Coverage? MC/DC (Modified condition/decision coverage) MC/DC is required by the

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

6. Test-Adequacy. Assessment Using Control Flow and Data Flow. Andrea Polini

6. Test-Adequacy. Assessment Using Control Flow and Data Flow. Andrea Polini 6. Test-Adequacy Assessment Using Control Flow and Data Flow Andrea Polini Software Engineering II Software Testing MSc in Computer Science University of Camerino (Software Engineering II Software Testing)

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 03: White-Box Testing (Textbook Ch. 5) Dietmar Pfahl Spring 2017 email: dietmar.pfahl@ut.ee Lecture Chapter 5 White-box testing techniques (Lab 3) Structure of Lecture

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 03: White-Box Testing (Textbook Ch. 5) Dietmar Pfahl Spring 2016 email: dietmar.pfahl@ut.ee Lecture Chapter 5 White-box testing techniques (Lab 3) Structure of Lecture

More information

CSC312 Principles of Programming Languages : Functional Programming Language. Copyright 2006 The McGraw-Hill Companies, Inc.

CSC312 Principles of Programming Languages : Functional Programming Language. Copyright 2006 The McGraw-Hill Companies, Inc. CSC312 Principles of Programming Languages : Functional Programming Language Overview of Functional Languages They emerged in the 1960 s with Lisp Functional programming mirrors mathematical functions:

More information

CSC Discrete Math I, Spring Sets

CSC Discrete Math I, Spring Sets CSC 125 - Discrete Math I, Spring 2017 Sets Sets A set is well-defined, unordered collection of objects The objects in a set are called the elements, or members, of the set A set is said to contain its

More information

Lecture 2. The SCADE Language Data Flow Kernel. Daniel Kästner AbsInt GmbH 2012

Lecture 2. The SCADE Language Data Flow Kernel. Daniel Kästner AbsInt GmbH 2012 Lecture 2 The SCADE Language Data Flow Kernel Daniel Kästner AbsInt GmbH 2012 2 Synchronous Programming Two simple ways of implementing reactive systems: Event-driven Foreach input_event

More information

Lecture #23: Conversion and Type Inference

Lecture #23: Conversion and Type Inference Lecture #23: Conversion and Type Inference Administrivia. Due date for Project #2 moved to midnight tonight. Midterm mean 20, median 21 (my expectation: 17.5). Last modified: Fri Oct 20 10:46:40 2006 CS164:

More information

Error Detection Rate of MC/DC for a Case Study from the Automotive Domain

Error Detection Rate of MC/DC for a Case Study from the Automotive Domain Error Detection Rate of MC/DC for a Case Study from the Automotive Domain Susanne Kandl and Raimund Kirner Institute of Computer Engineering Vienna University of Technology, Austria {susanne,raimund}@vmars.tuwien.ac.at

More information

Conversion vs. Subtyping. Lecture #23: Conversion and Type Inference. Integer Conversions. Conversions: Implicit vs. Explicit. Object x = "Hello";

Conversion vs. Subtyping. Lecture #23: Conversion and Type Inference. Integer Conversions. Conversions: Implicit vs. Explicit. Object x = Hello; Lecture #23: Conversion and Type Inference Administrivia. Due date for Project #2 moved to midnight tonight. Midterm mean 20, median 21 (my expectation: 17.5). In Java, this is legal: Object x = "Hello";

More information

CS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011

CS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011 CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics Dan Grossman Spring 2011 Review e ::= λx. e x e e c v ::= λx. e c τ ::= int τ τ Γ ::= Γ, x : τ (λx. e) v e[v/x] e 1 e 1 e 1 e

More information

Testing Methods: White Box Testing II

Testing Methods: White Box Testing II Testing Methods: White Box Testing II Outline Today we continue our look at white box testing with more code coverage methods, and a data coverage method We ll look at : - code coverage testing - decision

More information

Verifying Safety Property of Lustre Programs: Temporal Induction

Verifying Safety Property of Lustre Programs: Temporal Induction 22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 Verifying Safety Property of Lustre Programs: Temporal Induction Copyright 2008 Cesare Tinelli. These notes are copyrighted

More information

CS 520 Theory and Practice of Software Engineering Fall 2018

CS 520 Theory and Practice of Software Engineering Fall 2018 Today CS 52 Theory and Practice of Software Engineering Fall 218 Software testing October 11, 218 Introduction to software testing Blackbox vs. whitebox testing Unit testing (vs. integration vs. system

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

CS131 Typed Lambda Calculus Worksheet Due Thursday, April 19th

CS131 Typed Lambda Calculus Worksheet Due Thursday, April 19th CS131 Typed Lambda Calculus Worksheet Due Thursday, April 19th Name: CAS ID (e.g., abc01234@pomona.edu): I encourage you to collaborate. collaborations below. Please record your Each question is worth

More information

Subject Software Testing Structural Testing

Subject Software Testing Structural Testing Subject Software Testing Structural Testing Objective: 1. Understand Concept of structural testing 2. How structural (code-based or glass-box) testing complements functional (black-box) testing 3. Recognize

More information

Denotational Semantics. Domain Theory

Denotational Semantics. Domain Theory Denotational Semantics and Domain Theory 1 / 51 Outline Denotational Semantics Basic Domain Theory Introduction and history Primitive and lifted domains Sum and product domains Function domains Meaning

More information

Semantics of programming languages

Semantics of programming languages Semantics of programming languages Informatics 2A: Lecture 28 Mary Cryan School of Informatics University of Edinburgh mcryan@inf.ed.ac.uk 21 November 2018 1 / 18 Two parallel pipelines A large proportion

More information

Testing & Symbolic Execution

Testing & Symbolic Execution Testing & Symbolic Execution Software Testing The most common way of measuring & ensuring correctness Input 2 Software Testing The most common way of measuring & ensuring correctness Input Observed Behavior

More information

According to Larry Wall (designer of PERL): a language by geniuses! for geniuses. Lecture 7: Haskell. Haskell 98. Haskell (cont) - Type-safe!

According to Larry Wall (designer of PERL): a language by geniuses! for geniuses. Lecture 7: Haskell. Haskell 98. Haskell (cont) - Type-safe! Lecture 7: Haskell CSC 131 Fall, 2014 Kim Bruce According to Larry Wall (designer of PERL): a language by geniuses for geniuses He s wrong at least about the latter part though you might agree when we

More information

Structural Testing. (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1

Structural Testing. (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1 Structural Testing (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1 Learning objectives Understand rationale for structural testing How structural (code-based or glass-box) testing complements functional

More information

Software Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks

Software Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks Software Testing for Developer Development Testing Duvan Luong, Ph.D. Operational Excellence Networks Contents R&D Testing Approaches Static Analysis White Box Testing Black Box Testing 4/2/2012 2 Development

More information

Review. CS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Let bindings (CBV) Adding Stuff. Booleans and Conditionals

Review. CS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Let bindings (CBV) Adding Stuff. Booleans and Conditionals Review CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics e ::= λx. e x ee c v ::= λx. e c (λx. e) v e[v/x] e 1 e 2 e 1 e 2 τ ::= int τ τ Γ ::= Γ,x : τ e 2 e 2 ve 2 ve 2 e[e /x]:

More information

CMPSCI 521/621 Homework 2 Solutions

CMPSCI 521/621 Homework 2 Solutions CMPSCI 521/621 Homework 2 Solutions Problem 1 Direct data dependencies: 3 is directly data dependent on 1 and 5 5 is directly data dependent on 1,3, and 5 7 is directly data dependent on 1,3, and 5 Note,

More information

Variables. Substitution

Variables. Substitution Variables Elements of Programming Languages Lecture 4: Variables, binding and substitution James Cheney University of Edinburgh October 6, 2015 A variable is a symbol that can stand for another expression.

More information

CSSE 304 Assignment #13 (interpreter milestone #1) Updated for Fall, 2018

CSSE 304 Assignment #13 (interpreter milestone #1) Updated for Fall, 2018 CSSE 304 Assignment #13 (interpreter milestone #1) Updated for Fall, 2018 Deliverables: Your code (submit to PLC server). A13 participation survey (on Moodle, by the day after the A13 due date). This is

More information

Lecture 7. Search. Search. Foundations of Constraint Programming

Lecture 7. Search. Search. Foundations of Constraint Programming Lecture 7 1 Outline Introduce search trees Discuss various types of labeling trees, in particular trees for - forward checking - partial look ahead - maintaining arc consistency (MAC) Discuss various search

More information

Clock-directed Modular Code-generation for Synchronous Data-flow Languages

Clock-directed Modular Code-generation for Synchronous Data-flow Languages 1 Clock-directed Modular Code-generation for Synchronous Data-flow Languages Dariusz Biernacki Univ. of Worclaw (Poland) Jean-Louis Colaço Prover Technologies (France) Grégoire Hamon The MathWorks (USA)

More information

Principles of Programming Languages

Principles of Programming Languages Principles of Programming Languages Lesson 14 Type Checking Collaboration and Management Dana Fisman www.cs.bgu.ac.il/~ppl172 1 Type Checking We return to the issue of type safety we discussed informally,

More information

Functional abstraction. What is abstraction? Eating apples. Readings: HtDP, sections Language level: Intermediate Student With Lambda

Functional abstraction. What is abstraction? Eating apples. Readings: HtDP, sections Language level: Intermediate Student With Lambda Functional abstraction Readings: HtDP, sections 19-24. Language level: Intermediate Student With Lambda different order used in lecture section 24 material introduced much earlier sections 22, 23 not covered

More information

Functional abstraction

Functional abstraction Functional abstraction Readings: HtDP, sections 19-24. Language level: Intermediate Student With Lambda different order used in lecture section 24 material introduced much earlier sections 22, 23 not covered

More information

Structural Testing. Testing Tactics. Why Structural? Structural white box. Functional black box. Structural white box. Functional black box

Structural Testing. Testing Tactics. Why Structural? Structural white box. Functional black box. Structural white box. Functional black box From Pressman, Software Engineering a practitioner s approach, Chapter 14 and Pezze + Young, Software Testing and Analysis, Chapters 12-13 Structural Testing Software Engineering Andreas Zeller Saarland

More information

The Effect of Program and Model Structure on the Effectiveness of MC/DC Test Adequacy Coverage

The Effect of Program and Model Structure on the Effectiveness of MC/DC Test Adequacy Coverage 0 The Effect of Program and Model Structure on the Effectiveness of MC/DC Test Adequacy Coverage GREGORY GAY, University of South Carolina AJITHA RAJAN, University of Edinburgh MATT STAATS, Google, Inc.

More information

Testing: Test design and testing process

Testing: Test design and testing process Testing: Test design and testing process Zoltán Micskei Based on István Majzik s slides Dept. of Measurement and Information Systems Budapest University of Technology and Economics Department of Measurement

More information

STRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M.

STRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M. F. Tip and M. Weintraub STRUCTURAL TESTING AKA White Box Testing Thanks go to Andreas Zeller for allowing incorporation of his materials STRUCTURAL TESTING Testing based on the structure of the code Test

More information

Boolean expressions. Elements of Programming Languages. Conditionals. What use is this?

Boolean expressions. Elements of Programming Languages. Conditionals. What use is this? Boolean expressions Elements of Programming Languages Lecture 3: Booleans, conditionals, and types James Cheney So far we ve considered only a trivial arithmetic language L Arith Let s extend L Arith with

More information

The Substitution Model

The Substitution Model The Substitution Model Prof. Clarkson Fall 2017 Today s music: Substitute by The Who Review Previously in 3110: simple interpreter for expression language abstract syntax tree (AST) evaluation based on

More information

Overview. A normal-order language. Strictness. Recursion. Infinite data structures. Direct denotational semantics. Transition semantics

Overview. A normal-order language. Strictness. Recursion. Infinite data structures. Direct denotational semantics. Transition semantics Overview A normal-order language Strictness Recursion Infinite data structures Direct denotational semantics Transition semantics Lazy (call-by-need) evaluation and its semantics A Normal-Order Language

More information

DIVERSITY TG Automatic Test Case Generation from Matlab/Simulink models. Diane Bahrami, Alain Faivre, Arnault Lapitre

DIVERSITY TG Automatic Test Case Generation from Matlab/Simulink models. Diane Bahrami, Alain Faivre, Arnault Lapitre DIVERSITY TG Automatic Test Case Generation from Matlab/Simulink models Diane Bahrami, Alain Faivre, Arnault Lapitre CEA, LIST, Laboratory of Model Driven Engineering for Embedded Systems (LISE), Point

More information

Chapter 3: Propositional Languages

Chapter 3: Propositional Languages Chapter 3: Propositional Languages We define here a general notion of a propositional language. We show how to obtain, as specific cases, various languages for propositional classical logic and some non-classical

More information

Python review. 1 Python basics. References. CS 234 Naomi Nishimura

Python review. 1 Python basics. References. CS 234 Naomi Nishimura Python review CS 234 Naomi Nishimura The sections below indicate Python material, the degree to which it will be used in the course, and various resources you can use to review the material. You are not

More information

COP4020 Programming Languages. Functional Programming Prof. Robert van Engelen

COP4020 Programming Languages. Functional Programming Prof. Robert van Engelen COP4020 Programming Languages Functional Programming Prof. Robert van Engelen Overview What is functional programming? Historical origins of functional programming Functional programming today Concepts

More information

An Industry Proof-of-Concept Demonstration of MC/DC from Automated Combinatorial Testing

An Industry Proof-of-Concept Demonstration of MC/DC from Automated Combinatorial Testing An Industry Proof-of-Concept Demonstration of MC/DC from Automated Combinatorial Testing Redge Bartholomew Software Defects Drive Development Cost especially for safety-critical, embedded systems NIST:

More information

Review: Concrete syntax for Impcore

Review: Concrete syntax for Impcore Review: Concrete syntax for Impcore Definitions and expressions: def ::= (define f (x1... xn) exp) (val x exp) exp (use filename) (check-expect exp1 exp2) (check-error exp) exp ::= integer-literal ;; atomic

More information

Logic Coverage. Moonzoo Kim School of Computing KAIST. The original slides are taken from Chap. 8 of Intro. to SW Testing 2 nd ed by Ammann and Offutt

Logic Coverage. Moonzoo Kim School of Computing KAIST. The original slides are taken from Chap. 8 of Intro. to SW Testing 2 nd ed by Ammann and Offutt Logic Coverage Moonzoo Kim School of Computing KAIST The original slides are taken from Chap. 8 of Intro. to SW Testing 2 nd ed by Ammann and Offutt Covering Logic Expressions Logic expressions show up

More information

Generating MC/DC Adequate Test Sequences Through Model Checking

Generating MC/DC Adequate Test Sequences Through Model Checking Generating MC/DC Adequate Test Sequences Through Model Checking Sanjai Rayadurgam Computer Science and Engineering University of Minnesota Minneapolis, MN 55455 rsanjai@cs.umn.edu Mats P.E. Heimdahl Computer

More information

STRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M.

STRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M. F. Tip and M. Weintraub STRUCTURAL TESTING AKA White Box Testing Thanks go to Andreas Zeller for allowing incorporation of his materials STRUCTURAL TESTING Testing based on the structure of the code Test

More information

Operational Semantics. One-Slide Summary. Lecture Outline

Operational Semantics. One-Slide Summary. Lecture Outline Operational Semantics #1 One-Slide Summary Operational semantics are a precise way of specifying how to evaluate a program. A formal semantics tells you what each expression means. Meaning depends on context:

More information

Formal Approach in Software Testing

Formal Approach in Software Testing Formal Approach in Software Testing #Abhishek Dixit, #Shivani Goel 1 csed, TIET biodatadixit@yahoo.co.in 2 csed, TIET shivani@tiet.ac.in Abstract Testing is an important activity for checking the correctness

More information

CS4120/4121/5120/5121 Spring 2018 Xi Type System Specification Cornell University Version of February 18, 2018

CS4120/4121/5120/5121 Spring 2018 Xi Type System Specification Cornell University Version of February 18, 2018 CS4120/4121/5120/5121 Spring 2018 Xi Type System Specification Cornell University Version of February 18, 2018 0 Changes 2/16: Added typing rule for empty blocks 1 Types The Xi type system uses a somewhat

More information

Lecture 19: Functions, Types and Data Structures in Haskell

Lecture 19: Functions, Types and Data Structures in Haskell The University of North Carolina at Chapel Hill Spring 2002 Lecture 19: Functions, Types and Data Structures in Haskell Feb 25 1 Functions Functions are the most important kind of value in functional programming

More information

IBM Rational Rhapsody TestConductor Add On. Code Coverage Limitations

IBM Rational Rhapsody TestConductor Add On. Code Coverage Limitations IBM Rational Rhapsody TestConductor Add On Code Coverage Limitations 1 Rhapsody IBM Rational Rhapsody TestConductor Add On Code Coverage Limitations Release 2.7.1 2 License Agreement No part of this publication

More information

Flang typechecker Due: February 27, 2015

Flang typechecker Due: February 27, 2015 CMSC 22610 Winter 2015 Implementation of Computer Languages I Flang typechecker Due: February 27, 2015 Project 3 February 9, 2015 1 Introduction The third project is to implement a type checker for Flang,

More information

Lambda calculus. Wouter Swierstra and Alejandro Serrano. Advanced functional programming - Lecture 6

Lambda calculus. Wouter Swierstra and Alejandro Serrano. Advanced functional programming - Lecture 6 Lambda calculus Advanced functional programming - Lecture 6 Wouter Swierstra and Alejandro Serrano 1 Today Lambda calculus the foundation of functional programming What makes lambda calculus such a universal

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

Automated Oracle Data Selection Support

Automated Oracle Data Selection Support IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, TBD 1 Automated Oracle Data Selection Support Gregory Gay, Matt Staats, Michael Whalen, Senior Member, IEEE, and Mats P.E. Heimdahl, Senior Member, IEEE Abstract

More information

CS558 Programming Languages

CS558 Programming Languages CS558 Programming Languages Winter 2017 Lecture 7b Andrew Tolmach Portland State University 1994-2017 Values and Types We divide the universe of values according to types A type is a set of values and

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

Testing, Fuzzing, & Symbolic Execution

Testing, Fuzzing, & Symbolic Execution Testing, Fuzzing, & Symbolic Execution Software Testing The most common way of measuring & ensuring correctness Input 2 Software Testing The most common way of measuring & ensuring correctness Input Observed

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 6 Decaf Language Wednesday, September 7 The project for the course is to write a

More information

LECTURE 16. Functional Programming

LECTURE 16. Functional Programming LECTURE 16 Functional Programming WHAT IS FUNCTIONAL PROGRAMMING? Functional programming defines the outputs of a program as a mathematical function of the inputs. Functional programming is a declarative

More information

Combinatorial Clause Coverage CoC

Combinatorial Clause Coverage CoC Introduction to Software Testing Chapter 3.2 Logic Coverage Paul Ammann & Jeff Offutt Covering Logic Expressions Logic expressions show up in many situations Covering logic expressions is required by the

More information

Flat (Draft) Pasqualino Titto Assini 27 th of May 2016

Flat (Draft) Pasqualino Titto Assini 27 th of May 2016 Flat (Draft) Pasqualino Titto Assini (tittoassini@gmail.com) 27 th of May 206 Contents What is Flat?...................................... Design Goals...................................... Design Non-Goals...................................

More information

Semantics of programming languages

Semantics of programming languages Semantics of programming languages Informatics 2A: Lecture 27 John Longley School of Informatics University of Edinburgh jrl@inf.ed.ac.uk 21 November, 2011 1 / 19 1 2 3 4 2 / 19 Semantics for programming

More information

The Lustre Language Synchronous Programming Pascal Raymond, Nicolas Halbwachs Verimag-CNRS

The Lustre Language Synchronous Programming Pascal Raymond, Nicolas Halbwachs Verimag-CNRS The Lustre Language Synchronous Programming Pascal Raymond, Nicolas Halbwachs Verimag-CNRS Data-flow approach 2 A program = a network of operators connected by wires Rather classical (control theory, circuits)

More information

CMSC 330: Organization of Programming Languages

CMSC 330: Organization of Programming Languages CMSC 330: Organization of Programming Languages Operational Semantics CMSC 330 Summer 2018 1 Formal Semantics of a Prog. Lang. Mathematical description of the meaning of programs written in that language

More information

Lecture 18: Structure-based Testing

Lecture 18: Structure-based Testing Test Case First Strategy White box testing: Statement Coverage Branch Coverage Condition Coverage Data Path Coverage Lecture 18: Structure-based Testing Testing with good and bad data Testing Object Oriented

More information

An introduction to Scheme

An introduction to Scheme An introduction to Scheme Introduction A powerful programming language is more than just a means for instructing a computer to perform tasks. The language also serves as a framework within which we organize

More information

Finite State Verification. CSCE Lecture 21-03/28/2017

Finite State Verification. CSCE Lecture 21-03/28/2017 Finite State Verification CSCE 747 - Lecture 21-03/28/2017 So, You Want to Perform Verification... You have a property that you want your program to obey. Great! Let s write some tests! Does testing guarantee

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

Introduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, s

Introduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, s Pascal Raymond, Verimag-CNRS Introduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, sequential style (i.e.

More information

Testing Tactics. Structural Testing. Why Structural? Why Structural? Functional black box. Structural white box. Functional black box

Testing Tactics. Structural Testing. Why Structural? Why Structural? Functional black box. Structural white box. Functional black box ing Tactics Structural ing Functional black box Structural white box Software Engineering Andreas Zeller Saarland University s based on spec covers as much specified behavior as possible s based on code

More information

The Esterel language

The Esterel language Pascal Raymond, Verimag-CNRS Introduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, sequential style (i.e.

More information

CS 457/557: Functional Languages

CS 457/557: Functional Languages CS 457/557: Functional Languages Lists and Algebraic Datatypes Mark P Jones Portland State University 1 Why Lists? Lists are a heavily used data structure in many functional programs Special syntax is

More information

Principles of Programming Languages 2017W, Functional Programming

Principles of Programming Languages 2017W, Functional Programming Principles of Programming Languages 2017W, Functional Programming Assignment 3: Lisp Machine (16 points) Lisp is a language based on the lambda calculus with strict execution semantics and dynamic typing.

More information

Semantics of programming languages

Semantics of programming languages Semantics of programming languages Informatics 2A: Lecture 27 Alex Simpson School of Informatics University of Edinburgh als@inf.ed.ac.uk 18 November, 2014 1 / 18 Two parallel pipelines A large proportion

More information

Meeting14:Denotations

Meeting14:Denotations Meeting14:Denotations Announcements Homework 3 due next week Friday at 6:00pm Reminder: 5-minute feedback discussion with Sean is part of the assignment ("interview light") Talk (with me, with the class

More information

InterprocStack analyzer for recursive programs with finite-type and numerical variables

InterprocStack analyzer for recursive programs with finite-type and numerical variables InterprocStack analyzer for recursive programs with finite-type and numerical variables Bertrand Jeannet Contents 1 Invoking InterprocStack 1 2 The Simple language 2 2.1 Syntax and informal semantics.........................

More information

Advanced Software Testing Understanding Code Coverage

Advanced Software Testing Understanding Code Coverage Advanced Software Testing Understanding Code Coverage Advanced Software Testing A series of webinars, this one excerpted from Advanced Software Testing: V3, a book for technical test analysts, programmers,

More information

Induction and Semantics in Dafny

Induction and Semantics in Dafny 15-414 Lecture 11 1 Instructor: Matt Fredrikson Induction and Semantics in Dafny TA: Ryan Wagner Encoding the syntax of Imp Recall the abstract syntax of Imp: a AExp ::= n Z x Var a 1 + a 2 b BExp ::=

More information

Decaf Language Reference Manual

Decaf Language Reference Manual Decaf Language Reference Manual C. R. Ramakrishnan Department of Computer Science SUNY at Stony Brook Stony Brook, NY 11794-4400 cram@cs.stonybrook.edu February 12, 2012 Decaf is a small object oriented

More information

1 Abstract Data Types (11 Points)

1 Abstract Data Types (11 Points) Legi-Nr.:... 1 Abstract Data Types (11 Points) In this task you will write an abstract data type for a simple tree structure that stores integers in its nodes and whose nodes always have either no children

More information

1 Introduction. 3 Syntax

1 Introduction. 3 Syntax CS 6110 S18 Lecture 19 Typed λ-calculus 1 Introduction Type checking is a lightweight technique for proving simple properties of programs. Unlike theorem-proving techniques based on axiomatic semantics,

More information

Formal Semantics. Prof. Clarkson Fall Today s music: Down to Earth by Peter Gabriel from the WALL-E soundtrack

Formal Semantics. Prof. Clarkson Fall Today s music: Down to Earth by Peter Gabriel from the WALL-E soundtrack Formal Semantics Prof. Clarkson Fall 2015 Today s music: Down to Earth by Peter Gabriel from the WALL-E soundtrack Review Previously in 3110: simple interpreter for expression language: abstract syntax

More information

SML A F unctional Functional Language Language Lecture 19

SML A F unctional Functional Language Language Lecture 19 SML A Functional Language Lecture 19 Introduction to SML SML is a functional programming language and acronym for Standard d Meta Language. SML has basic data objects as expressions, functions and list

More information

Properties of Criteria. 1. Applicability Property. Criteria

Properties of Criteria. 1. Applicability Property. Criteria Properties of Criteria Program-based To recognize a good adequacy criteria And to discard poor choices Objective, well-defined properties 1. Applicability Property For every program, there exists an adequate

More information

axiomatic semantics involving logical rules for deriving relations between preconditions and postconditions.

axiomatic semantics involving logical rules for deriving relations between preconditions and postconditions. CS 6110 S18 Lecture 18 Denotational Semantics 1 What is Denotational Semantics? So far we have looked at operational semantics involving rules for state transitions, definitional semantics involving translations

More information

Specification-based test design

Specification-based test design Software and Systems Verification (VIMIMA01) Specification-based test design Zoltan Micskei, Istvan Majzik Budapest University of Technology and Economics Fault Tolerant Systems Research Group Budapest

More information

On Academic Dishonesty. Declarative Computation Model. Single assignment store. Single assignment store (2) Single assignment store (3)

On Academic Dishonesty. Declarative Computation Model. Single assignment store. Single assignment store (2) Single assignment store (3) Declarative Computation Model Single assignment store (VRH 2.2) Kernel language syntax (VRH 2.3) Carlos Varela RPI October 6, 2009 Adapted with permission from: Seif Haridi KTH Peter Van Roy UCL On Academic

More information