Revisiting coverage criteria for Scade models Jean-Louis Colaço 7 December 2016
|
|
- Rosaline Patterson
- 5 years ago
- Views:
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
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 informationLecture #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 informationPart 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 informationTesting. 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 informationObservable 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 informationProgramming 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 informationMTAT : 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 informationLusRegTes: 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 informationAn 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 informationTesting: (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 informationIntroduction 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 information6. 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 informationMTAT : 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 informationMTAT : 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 informationCSC312 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 informationCSC 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 informationLecture 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 informationLecture #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 informationError 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 informationConversion 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 informationCS152: 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 informationTesting 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 informationVerifying 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 informationCS 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 informationVerification 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 informationCS131 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 informationSubject 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 informationDenotational 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 informationSemantics 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 informationTesting & 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 informationAccording 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 informationStructural 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 informationSoftware 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 informationReview. 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 informationCMPSCI 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 informationVariables. 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 informationCSSE 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 informationLecture 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 informationClock-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 informationPrinciples 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 informationFunctional 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 informationFunctional 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 informationStructural 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 informationThe 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 informationTesting: 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 informationSTRUCTURAL 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 informationBoolean 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 informationThe 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 informationOverview. 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 informationDIVERSITY 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 informationChapter 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 informationPython 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 informationCOP4020 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 informationAn 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 informationReview: 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 informationLogic 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 informationGenerating 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 informationSTRUCTURAL 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 informationOperational 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 informationFormal 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 informationCS4120/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 informationLecture 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 informationIBM 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 informationFlang 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 informationLambda 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 informationHandout 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 informationAutomated 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 informationCS558 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 information6.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 informationTesting, 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 informationLexical 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 informationLECTURE 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 informationCombinatorial 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 informationFlat (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 informationSemantics 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 informationThe 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 informationCMSC 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 informationLecture 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 informationAn 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 informationFinite 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 informationTopics 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 informationIntroduction 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 informationTesting 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 informationThe 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 informationCS 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 informationPrinciples 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 informationSemantics 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 informationMeeting14: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 informationInterprocStack 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 informationAdvanced 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 informationInduction 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 informationDecaf 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 information1 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 information1 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 informationFormal 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 informationSML 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 informationProperties 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 informationaxiomatic 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 informationSpecification-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 informationOn 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