Testing Object Oriented Software 2010
|
|
- Bethany Wheeler
- 5 years ago
- Views:
Transcription
1 Testing Object Oriented Software 2010 Graph Coverage Barry van Veen Rick van der Zwet
2 2.1 Graph coverage Introduction into graph coverage Theoretical definition of graphs Theoretical definitions of graph coverage Practical applications of how graphs can be obtained from source code
3 Graph definition A graph G is a set N of nodes a set N 0 of initial nodes, where N 0 N a set N f of final nodes, where N f N a set E of edges, where E is a subset of N N Subgraphs a set of initial nodes is N sub N 0 a set of final nodes is N sub N f a set of edges is (N sub N sub ) E Paths [n 1,n 2,...,n M ]
4 Graph definition (continued)
5 Reachability idea Follow arrows and never go back Syntacticle reachability A node n (or an edge e) is reachable from node n i, if their exists a path p from n i to n (or edge e) Semantical reachability There is some input which makes it possible to execute one of these paths
6 Reachability idea (continued) Testpath ((non) deterministic) A path p, possibly of lenght zero, that starts at some node in N 0 and ends at some node in N f
7 Section 2.1 excises
8 2.2 Graph Coverage criteria Coverage criteria define a set of test requirements (TR) in terms of properties of test paths in a graph G. A test T satisfies the criteria on a graph if and only if for every test requirement (tr) in TR, there is at least one test path p in T such that p meets tr. A requirement is met by touring a particular path (or visiting a particular node).
9 Graph Coverage criteria (2) (NC) Node Coverage (EC) Edge... (EPC) Edge-Pair... (PPC) Prime Path... (SRTC) Simple Round Trip... (CRTC) Complete Round Trip.. (CPC) Complete Path... (SPC) Specific Path... sample only. limitation apply.
10 Graph Coverage criteria (3) (NC) Node Coverage TR contains each reachable node in G (EC) Edge Coverage TR contains each reachable path of length up to 1, inclusive, in G (EPC) Edge-Pair Coverage TR contains each reachable path of length up to 2, inclusive, in G
11 Graph Coverage criteria (4)
12 Graph Coverage criteria (5) Simple path path from n i to n j is simple if no node appears more than once except if the first and last node are the same Prime path path from n i to n j that is a simple path and does not appear as a subpath in any other simple path (PPC) Prime Path Coverage TR contains each prime path in G
13 Graph Coverage criteria (6) Round trip a prime path (of nonzero length) that start and ends at the same node (SRTC) Simple Round Trip Coverage TR contains at least one round-trip path for each reachable node in G that begins and ends a round-trip path (CRTC) Complete Round Trip Coverage TR contains all round-trip paths for each reachable node in G (CPC) Complete Path Coverage - TR contains all paths in G (SPC) Specified Path Coverage - TR contains specified paths
14 Touring, Sidetrips and Detours Touring A path p tours a subpath q if and only if q is a subpath of p. So the nodes have to be in exactly the same order. Sidetrips A path p tours a subpath q with sidetrips if and only if every edge in q is also in p in the same order. Detours A path p tours a subpath q with detours if and only if every node in q is also in p in the same order.
15 Touring, Sidetrips and Detours (2)
16 Infeasible Test Requirements Without sidetrips lots of infeasible requirements can exist. One could drop the strict notion of touring and allow sidetrips. Best Effort Touring Test all tr without sidetrips Test all remaining (unmet) tr with sidetrips
17 Finding Prime Test Paths Find paths of length 0 Find paths of length 1... Find paths of length n Mark paths that cannot be extended with "!" Mark paths that are cycles with "*" When you have the full set, eliminate subpaths. Extend longest prime path to beginning and end nodes. Extend second longest prime path... etc At the end one can optimize the set of test paths.
18 Section 2.2 excises
19 Data Flow Criteria When testing a program we should focus on data values. Definition (Def) A location where a value for a variable is assigned Use A Location where a variable's value is accessed Du-pairs The flow of values from defs to uses Du-Path Simple path that is def-clear with respect to v from node n i for which v is in def(n i ) to node n j for which v is in use(n j )
20 Data Flow Criteria (2)
21 Data Flow Criteria (3) Def-Path du(n i, v) is a set of du-paths wrt v starting at node n i Def-Pair du(n i, n j, v) is a set of du-paths wrt v starting at node n i and ending at node n j (ADC) All-Defs Coverage For each def-path set S, TR contains at least on path in S (AUC) All-Uses Coverage For each def-pair set S, TR contains at least one path in S (ADUPC) All-du-Paths Coverage For each def-pair set S, TR contains every path in S
22 Subsumption Relationships among Graph Coverage Criteria Rules of the ``game'': 1) Every use is preceded by a def. 2) Every def reaches at least one use. 3) for every node with multiple outgoing edges a) at least one variable is used on each out edge and b) the same variables are used on each out edge.
23 Subsumption Relationships among Graph Coverage Criteria assignment: draw graph
24 Structural Graph Coverage for Source Code Control Flow Graph (CFG) A graph in which each edge is associated with a branch in the program. Nodes are associated with sequences of statements.
25 Data Flow Graph Coverage for Source Code def: is a location in the program where a value for variable x is stored into memory: x is left side of an assignment. x is actual parameter in call site and value is changed within the method. x is a formal parameter of a method. x is input to the program.
26 Data Flow Graph Coverage for Source Code (continued) use: is a location in the program where variable's value x is accessed (e.g. read from memory): x appears on the right side of an assignment statement. x appears in a conditional test. x is an actual parameter to a method. x is an output of the program. x is an output of a method in a return statement or returned as parameter.
27 Excersises 2.3. w = x; // node 1 if (m > 0){ w++; // node 2 } else { w=2*w; // node 3 } // node 4 (no executable statement) if (y <= 10) { x = 5*y; // node 5 } else { x = 3*y+5; // node 6 } z = w + x; // node 7
28 Graph Coverage for design elements Call graph Visualize the coupling between software components Nodes represent methods Edges represent method calls Coverage criteria can be applied. Might need more than one call graph when testing a class.
29 Graph Coverage for design elements (2) Inheritance and Polymorphism: OO language features makes it difficult to test We can make a inheritance hierarchy Objects need to be instantiated
30 Graph Coverage for design elements (3) Some more coverage criteria OO Call Coverage (edge coverage): each edge must be applied on at least one object for each class OO All Object Call Coverage: OO Call Coverage must be applied for each instantiated object in each class
31 Data Flow Graph Coverage for Design Elements Caller a unit that invokes another unit, the Callee Call site statement that makes the call Actual parameter is in the caller. It is assigned to a formal parameter in the callee.
32 Data Flow Graph Coverage for Design Elements (2) Interface mapping of actual to formal parameters our point of interest, we want to check the appropiate use of formal parameters in the callee Last-def Set of nodes that define a variable x from which there is a def-clear path from the node through the call site to a use in the other unit. First-use The set of nodes that use a variable y, from which there is a path that is def-clear and use-clear from the entry point or the call site to the nodes
33 Inheritance and Polymorphism (Advanced topic) Direct OO du-pairs Indirect OO du-pairs
34 Inheritance and Polymorphism (Advanced topic) (2)
35 Available tools CLANG+LLVM had some nice tools for Flow Graphing especially c all graphs, but this is limited to LLVM byte code and not to actual C code.
36 References Introduction to Software Testing, Paul Ammann & Jeff Offutt, 2008
Introduction to Software Testing Chapter 2, Sections: 2.1 & 2.2 Overview Graph Coverage Criteria
Introduction to Software Testing Chapter 2, Sections: 2.1 & 2.2 Overview Graph Coverage Criteria Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/softwa retest/ Ch. 2 : Graph Coverage Four Structures
More informationIntroduction to Software Testing Chapter 2.1, 2.2 Overview Graph Coverage Criteria Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 2.1, 2.2 Overview Graph Coverage Criteria Paul Ammann & Jeff Offutt www.introsoftwaretesting.com Ch. 2 : Graph Coverage Four Structures for Modeling Software Graphs
More informationOverview Graph Coverage Criteria
Overview Graph Coverage Criteria Graph Coverage Four Structures for Modeling Software Graphs Logic Input Space Syntax Applied to Applied to Source FSMs Applied to Specs DNF Source Specs Source Models Design
More informationIntroduction to Software Testing Chapter 2.3 Graph Coverage for Source Code. Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 2.3 Graph Coverage for Source Code Paul Ammann & Jeff Offutt Overview The most common application of graph criteria is to program source Graph : Usually the control
More informationIntroduc)on to So,ware Tes)ng (2nd edi(on) Overview Graph Coverage Criteria. Paul Ammann & Jeff OffuA. hap:// so,waretest/
Tes)ng (2nd edi(on) Overview Graph Coverage Criteria Paul Ammann & Jeff OffuA hap://www.cs.gmu.edu/~offua/ so,waretest/ First version, 23 September 2013 Graph Coverage Four Structures for Modeling Software
More informationIntroduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt www.introsoftwaretesting.com OO Software and Designs Emphasis on modularity and reuse puts complexity
More informationCMPT 473 Software Quality Assurance. Graph Coverage. Nick Sumner
CMPT 473 Software Quality Assurance Graph Coverage Nick Sumner Recall: Coverage/Adequacy Can't look at all possible inputs. Need to determine if a test suite covers / is adequate for our quality objectives.
More informationTesting: Dataflow Coverage
Testing: Dataflow Coverage Testing, Quality Assurance, and Maintenance Winter 2018 Arie Gurfinkel based on slides by Thibaud Lutellier, Marsha Chechik and Prof. Lin Tan Non-looping Path Selection Problem
More informationGraph Coverage for Source Code. Data Flow Graph Coverage for Source Code
Graph Coverage for Source Code Data Flow Graph Coverage for Source Code 1 Graph Coverage for Design Elements Use of data abstraction and object oriented software has increased importance on modularity
More informationTesting: Coverage and Structural Coverage
Testing: Coverage and Structural Coverage Testing, Quality Assurance, and Maintenance Winter 2017 Prof. Arie Gurfinkel based on slides by Prof. Marsha Chechik and Prof. Lin Tan How would you test this
More informationTesting: Coverage and Structural Coverage
Testing: Coverage and Structural Coverage Testing, Quality Assurance, and Maintenance Winter 2018 Prof. Arie Gurfinkel based on slides by Prof. Marsha Chechik and Prof. Lin Tan How would you test this
More informationLecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2)
Lecture 2 White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) White- box Tes2ng (aka. Glass- box or structural tes2ng) An error may exist at one (or more) loca2on(s) Line numbers
More informationCOMP 3705 Advanced Software Engineering: Software Testing
COMP 3705 Advanced Software Engineering: Software Testing Prof. Matt Rutherford For Next Week Readings For Midterm: Chapter 1 and Sections 2.1-2.6, 3.1 3.5 New material: Chapter 4 Homework #5 http://mjrutherford.org/teaching/2009/winter/comp3705/homeworks
More informationTesting Role in Unified Approach Coverage: Structural/Coverage Model Based Test Generation from Model Checking (project) Interaction of
Testing Role in Unified Approach Coverage: Structural/Coverage Model Based Test Generation from Model Checking (project) Interaction of Coverage/Model Based Testing Will Not Cover Statistical Methods Partition
More informationIntroduction 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 informationAutomated Software Analysis Techniques For High Reliability: A Concolic Testing Approach. Moonzoo Kim
Automated Software Analysis Techniques For High Reliability: A Concolic Testing Approach Moonzoo Kim Contents Automated Software Analysis Techniques Background Concolic testing process Example of concolic
More informationIntroduction to Software Testing Chapter 5.1 Syntax-based Testing
Introduction to Software Testing Chapter 5.1 Syntax-based Testing Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/ softwaretest/ Ch. 5 : Syntax Coverage Four Structures for Modeling Software Graphs
More informationLogic Coverage for Source Code
Logic Coverage for Source Code CS 4501 / 6501 Software Testing [Ammann and Offutt, Introduction to Software Testing, Ch. 8] 1 Structural Logic Coverage for Source Code Aim: to identify test requirements
More informationThe Spin Model Checker : Part I. Moonzoo Kim KAIST
The Spin Model Checker : Part I Moonzoo Kim KAIST Hierarchy of SW Coverage Criteria Complete Value Coverage CVC (SW) Model checking Complete Path Coverage CPC Concolic testing All-DU-Paths Coverage ADUP
More informationIntroduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt www.introsoftwaretesting.com Ch. 3 : Logic Coverage Four Structures for Modeling Software Graphs Logic Input Space
More informationIntroduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/softwaretest/ Ch. 3 : Logic Coverage Four Structures for Modeling Software Graphs
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 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 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 informationLecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2)
Lecture 2 White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) White- box Tes2ng (aka. Glass- box or structural tes2ng) An error may exist at one (or more) loca2on(s) Line numbers
More informationEVALUATING THE EFFECTIVENESS OF TEST COVERAGE CRITERIA USING MUTATION ANALYSIS. An evaluation of test coverage criteria in C#
EVALUATING THE EFFECTIVENESS OF TEST COVERAGE CRITERIA USING MUTATION ANALYSIS An evaluation of test coverage criteria in C# Examensarbete inom huvudområdet Informationsteknologi Grundnivå 30 Högskolepoäng
More informationIntroduction to Software Testing Chapter 4 Input Space Partition Testing
Introduction to Software Testing Chapter 4 Input Space Partition Testing Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/ softwaretest/ Ch. 4 : Input Space Coverage Four Structures for Modeling
More informationIntroduction to Software Testing Chapter 3, Sec# 3.3 Logic Coverage for Source Code
Introduction to Software Testing Chapter 3, Sec# 3.3 Logic Coverage for Source Code Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/soft waretest/ Logic Expressions from Source Predicates are derived
More informationUsing the code to measure test adequacy (and derive test cases) Structural Testing
Using the code to measure test adequacy (and derive test cases) Structural Testing Objectives To describe a second approach to testing which is geared to find program defects To explain the use of program
More informationCSE 504: Compiler Design. Runtime Environments
Runtime Environments Pradipta De pradipta.de@sunykorea.ac.kr Current Topic Procedure Abstractions Mechanisms to manage procedures and procedure calls from compiler s perspective Runtime Environment Choices
More informationStructural Testing. White Box Testing & Control Flow Analysis
Structural Testing White Box Testing & Control Flow Analysis Functional vs. Structural Functional Have I built the right product? Tests derived from the program specification Internal Structure ignored
More informationCriteria for Testing Polymorphic Relationships
Criteria for Testing Polymorphic Relationships Roger T. Alexander and A. Jefferson Offutt George Mason University Department of Information and Software Engineering Software Engineering Research Laboratory
More informationIntegration Testing. Conrad Hughes School of Informatics. Slides thanks to Stuart Anderson
Integration Testing Conrad Hughes School of Informatics Slides thanks to Stuart Anderson 19 February 2010 Software Testing: Lecture 10 1 Unit Test vs Integration Testing 1 The ideal in unit testing is
More informationInterprocedural Analysis with Data-Dependent Calls. Circularity dilemma. A solution: optimistic iterative analysis. Example
Interprocedural Analysis with Data-Dependent Calls Circularity dilemma In languages with function pointers, first-class functions, or dynamically dispatched messages, callee(s) at call site depend on data
More informationCS 480 Fall Runtime Environments. Mike Lam, Professor. (a.k.a. procedure calls and heap management)
CS 480 Fall 2015 Mike Lam, Professor Runtime Environments (a.k.a. procedure calls and heap management) Subprograms General characteristics Single entry point Caller is suspended while subprogram is executing
More informationAn Experimental Comparison of Four Unit Test Criteria: Mutation, Edge-Pair, All-uses and Prime Path Coverage
An Experimental Comparison of Four Unit Test Criteria: Mutation, Edge-Pair, All-uses and Prime Path Coverage Nan Li, Upsorn Praphamontripong and Jeff Offutt Software Engineering George Mason University
More informationLoop Invariant Code Motion. Background: ud- and du-chains. Upward Exposed Uses. Identifying Loop Invariant Code. Last Time Control flow analysis
Loop Invariant Code Motion Loop Invariant Code Motion Background: ud- and du-chains Last Time Control flow analysis Today Loop invariant code motion ud-chains A ud-chain connects a use of a variable to
More informationCourse Review. Ajitha Rajan. Ajitha Rajan Course Review c 2015
Course Review Ajitha Rajan Ajitha Rajan Course Review c 2015 Software Faults, Errors & Failures Software Fault : A static defect in the software Software Failure : External, incorrect behavior with respect
More informationChapter 8: Class and Method Design
Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined
More informationIntroduction. Easy to get started, based on description of the inputs
Introduction Testing is about choosing elements from input domain. The input domain of a program consists of all possible inputs that could be taken by the program. Easy to get started, based on description
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 informationData Flow Coverage 1. Stuart Anderson. Stuart Anderson Data Flow Coverage 1 c 2011
Data Flow Coverage 1 Stuart Anderson Why Consider Data Flow? 1 Control Flow: Statement and branch coverage criteria are weak. Condition coverage and path coverage are more costly and can become infeasible.
More informationLogic Coverage from Source Code
Logic Coverage from Source Code 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 Expressions from Source Predicates
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 informationOOPLs - call graph construction. Example executed calls
OOPLs - call graph construction Compile-time analysis of reference variables and fields Problem: how to resolve virtual function calls? Need to determine to which objects (or types of objects) a reference
More informationSlicing. Rupesh Nasre. CS6843 Program Analysis IIT Madras Jan 2016
Slicing Rupesh Nasre. CS6843 Program Analysis IIT Madras Jan 2016 Outline Introduction and applications Application time static dynamic Direction forward backward 2 Definition A slice is a subset of program
More informationLecture 2: Control Flow Analysis
COM S/CPRE 513 x: Foundations and Applications of Program Analysis Spring 2018 Instructor: Wei Le Lecture 2: Control Flow Analysis 2.1 What is Control Flow Analysis Given program source code, control flow
More informationPolymorphism. Arizona State University 1
Polymorphism CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 15 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University
More informationIntroduction to Software Testing
Introduction to Software Testing Paul Ammann and Jeff Offutt Solutions to Exercises Student Version November 18, 2015 Copyright Ammann & Offutt, 2002-2009, all rights reserved. 2 Tell me and I may forget.
More informationLiveness Analysis and Register Allocation
Liveness Analysis and Register Allocation Leonidas Fegaras CSE 5317/4305 L10: Liveness Analysis and Register Allocation 1 Liveness Analysis So far we assumed that we have a very large number of temporary
More informationSemantic Subtyping. Alain Frisch (ENS Paris) Giuseppe Castagna (ENS Paris) Véronique Benzaken (LRI U Paris Sud)
Semantic Subtyping Alain Frisch (ENS Paris) Giuseppe Castagna (ENS Paris) Véronique Benzaken (LRI U Paris Sud) http://www.cduce.org/ Semantic Subtyping - Groupe de travail BD LRI p.1/28 CDuce A functional
More informationSoftware Testing and Maintenance 1
Combinatorial Testing!! Introduction!! Combinatorial Coverage Criteria!! Pairwise Test Generation!! Summary Software Testing and Maintenance 1 Motivation!! The behavior of a software application may be
More informationIntegration Testing. Unit Test vs Integration Testing 1. Unit Testing vs Integration Testing 2. Unit testing: isolation, stub/mock objects
Unit Test vs Testing 1 Testing Conrad Hughes School of Informatics Slides thanks to Stuart Anderson The ideal in unit testing is to isolate a single code unit and test it against its behavioural specification.
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 informationINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING Structural Testing d_sinnig@cs.concordia.ca Department for Computer Science and Software Engineering Introduction Testing is simple all a tester needs to do is find
More informationInterprocedural Analysis with Data-Dependent Calls. Circularity dilemma. A solution: optimistic iterative analysis. Example
Interprocedural Analysis with Data-Dependent Calls Circularity dilemma In languages with function pointers, first-class functions, or dynamically dispatched messages, callee(s) at call site depend on data
More informationFaculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology
Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Compiler Construction in4020 July 5, 2007 14.00-15.30 This exam (8 pages) consists of 60 True/False
More information3/18/18. Program Analysis. CYSE 411/AIT 681 Secure Software Engineering. Learning Goal. Program Analysis on Security. Why Program Representations
Program Analysis CYSE 411/AIT 681 Secure Software Engineering Topic #14. Program Analysis Instructor: Dr. Kun Sun The process of automatically analyzing the behavior of computer programs regarding a property
More informationCombination Testing Strategies: A Survey
Combination Testing Strategies: A Survey Mats Grindal Jeff Offutt Sten F. Andler School of Info. and Software Engng School of Humanities and Informatics Humanities and Informatics University of Skövde
More informationParametric Polymorphism for Java: A Reflective Approach
Parametric Polymorphism for Java: A Reflective Approach By Jose H. Solorzano and Suad Alagic Presented by Matt Miller February 20, 2003 Outline Motivation Key Contributions Background Parametric Polymorphism
More informationBT, BST, AVL. Web Resources page on textbook website:
Excercises BT, BST, AVL Web Resources page on textbook website: http://ww3.java3.datastructures.net/resources.html Follow the execution. Consider the following Java code involving a Sequence: for (int
More informationc. Typically results in an intractably large set of test cases even for small programs
Multiple-Choice Questions: 1. True or false? Generally, in practice, developers exhaustively test software. a. True b. False 2. True or false? All real software contains bugs. a. True b. False 3. Which
More information15 Graph Theory Counting the Number of Relations. 2. onto (surjective).
2. onto (surjective). You should convince yourself that if these two properties hold, then it is always going to be the case that f 1 is a function. In order to do this, you should remember the definition
More informationCSc 520 Principles of Programming Languages
CSc 520 Principles of Programming Languages 32: Procedures Inlining Christian Collberg collberg@cs.arizona.edu Department of Computer Science University of Arizona Copyright c 2005 Christian Collberg [1]
More informationExam Questions. Object-Oriented Design, IV1350. Maximum exam score is 100, grade limits are as follows. Score Grade 90 A 80 B 70 C 60 D 50 E
Object-Oriented Design, IV1350 Maximum exam score is 100, grade limits are as follows. Score Grade 90 A 80 B 70 C 60 D 50 E The exam questions will be a subset of the questions below. The exam may contain
More informationCYSE 411/AIT 681 Secure Software Engineering Topic #14. Program Analysis
CYSE 411/AIT 681 Secure Software Engineering Topic #14. Program Analysis Instructor: Dr. Kun Sun Program Analysis The process of automatically analyzing the behavior of computer programs regarding a property
More informationIntroducing Wybe a language for everyone
Introducing Wybe a language for everyone Peter Schachte joint work with Matthew Giuca The University of Melbourne Department of Computing and Information Systems 4 December 2013 Peter Schachte (Melbourne)
More informationOOPLs - call graph construction Compile-time analysis of reference variables and fields. Example
OOPLs - call graph construction Compile-time analysis of reference variables and fields Determines to which objects (or types of objects) a reference variable may refer during execution Primarily hierarchy-based
More informationProgram Testing and Analysis: Manual Testing Prof. Dr. Michael Pradel Software Lab, TU Darmstadt
Program Testing and Analysis: Manual Testing Prof. Dr. Michael Pradel Software Lab, TU Darmstadt Partly based on slides from Peter Müller, ETH Zurich 1 Warm-up Quiz What does the following code print?
More informationECE 2400 Computer Systems Programming Fall 2017 Topic 4: C Pointers
ECE 2400 Computer Systems Programming Fall 2017 Topic 4: C Pointers School of Electrical and Computer Engineering Cornell University revision: 2017-09-23-11-06 1 Pointer Basics 2 2 Call by Value vs. Call
More informationLecture #2 on Object-Oriented Modeling
Outline Lecture #2 on Object-Oriented Modeling Thierry Géraud EPITA Research and Development Laboratory (LRDE) 2006 Thierry Géraud Lecture #2 on Object-Oriented Modeling EPITA-LRDE 2006 1 / 38 Outline
More informationInduction Variable Identification (cont)
Loop Invariant Code Motion Last Time Uses of SSA: reaching constants, dead-code elimination, induction variable identification Today Finish up induction variable identification Loop invariant code motion
More informationCSE 70 Final Exam Fall 2009
Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15
More informationGENERATING COST-EFFECTIVE CRITERIA-BASED TESTS FROM BEHAVIORAL MODELS
GENERATING COST-EFFECTIVE CRITERIA-BASED TESTS FROM BEHAVIORAL MODELS by Nan Li A Dissertation Submitted to the Graduate Faculty of George Mason University In Partial Fulfillment of The Requirements for
More informationDataflow testing of Java programs with DFC
Dataflow testing of Java programs with DFC Ilona Bluemke 1,, Artur Rembiszewski 1 1 Institute of Computer Science, Warsaw University of Technology Nowowiejska 15/19, 00-665 Warsaw, Poland I. Bluemke@ii.pw.edu.pl
More informationCS558 Programming Languages Winter 2013 Lecture 8
OBJECT-ORIENTED PROGRAMMING CS558 Programming Languages Winter 2013 Lecture 8 Object-oriented programs are structured in terms of objects: collections of variables ( fields ) and functions ( methods ).
More informationProgram Structure. Simple Statements. Program consists of blocks Block. Can be represented by a flow graph. Sequence of statements
An Applicable Family of Data Flow Testing Criteria Assumptions about the program No goto statements with variant records Functions having var parameters By reference Procedural or functional parameters
More informationProgram Structure. Simple Statements. Program consists of blocks Block. Can be represented by a flow graph. Sequence of statements
An Applicable Family of Data Flow Testing Criteria Assumptions about the program No goto statements with variant records Functions having var parameters By reference Procedural or functional parameters
More informationCode Generation & Parameter Passing
Code Generation & Parameter Passing Lecture Outline 1. Allocating temporaries in the activation record Let s optimize our code generator a bit 2. A deeper look into calling sequences Caller/Callee responsibilities
More informationLOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado.
LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS by Gary D. Hachtel University of Colorado Fabio Somenzi University of Colorado Springer Contents I Introduction 1 1 Introduction 5 1.1 VLSI: Opportunity and
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 9: Generalization/Specialization 1 Analysis Workflow: Analyze a Use Case The analysis workflow consists of the following activities: Architectural
More informationCoverage Criteria for Testing of Object Interactions in Sequence Diagrams
Coverage Criteria for Testing of Object Interactions in Sequence Diagrams Atanas Rountev, Scott Kagan, and Jason Sawin Ohio State University {rountev, kagan, sawin}@cse.ohio-state.edu Abstract. This work
More informationProgram-based Mutation Testing
Program-based Mutation Testing CS 4501 / 6501 Software Testing [Ammann and Offutt, Introduction to Software Testing, Ch. 9.2] 1 Applying Syntax-Based Testing to Programs Test requirements are derived from
More informationInterprocedural Dataflow Analysis. Galeotti/Gorla/Rau Saarland University
Interprocedural Dataflow Analysis Galeotti/Gorla/Rau Saarland University int divbyx(int x) { [result := 10/x] 1 ; void caller1() { [x := 5] 1 ; [y := divbyx(x)] 2 ; [y := divbyx(5)] 3 ; [y := divbyx(1)]
More informationAlgorithms for Graph Visualization Layered Layout
Algorithms for Graph Visualization INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Tamara Mchedlidze 5.12.2016 1 Example Which are the properties? Which aesthetic ctireria are usefull? 2 Given:
More informationFinal Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format
Final Exam Final Exam Review CS 4354 Fall 2012 Jill Seaman Friday, December 14, 11AM Closed book, closed notes, clean desk Content: Textbook: Chapters 1, 2, 4-10 Java Lectures, GRASP + JUnit 35% of your
More informationCIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)
By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable
More informationProgramming Embedded Systems
Programming Embedded Systems Overview of testing techniques Monday March 3, 2014 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/70 Lecture outline Background, testing in general Unit testing
More informationCode Generation. Lecture 19
Code Generation Lecture 19 Lecture Outline Topic 1: Basic Code Generation The MIPS assembly language A simple source language Stack-machine implementation of the simple language Topic 2: Code Generation
More informationData Flow Testing. Mohammad Mousavi. Testing and Verification, February 2 nd, University of Leicester, UK and GU/Chalmers, Sweden
Data Flow Testing Mohammad Mousavi University of Leicester, UK and GU/Chalmers, Sweden Testing and Verification, February 2 nd, 2018 Outline From Paths to DU-Paths Path Testing: Pros and Cons Pros: Abstract
More informationStatements or Basic Blocks (Maximal sequence of code with branching only allowed at end) Possible transfer of control
Control Flow Graphs Nodes Edges Statements or asic locks (Maximal sequence of code with branching only allowed at end) Possible transfer of control Example: if P then S1 else S2 S3 S1 P S3 S2 CFG P predecessor
More informationGénie Logiciel Avancé
L3 Mention Informatique Parcours Informatique et MIAGE Génie Logiciel Avancé Part VII : White-Box Test Burkhart Wolff wolff@lri.fr Idea: % Lets exploit the structure of the program!!! (and not, as before
More informationSeminar on Algorithms and Data Structures: Multiple-Edge-Fault-Tolerant Approximate Shortest-Path Trees [1]
Seminar on Algorithms and Data Structures: Multiple-Edge-Fault-Tolerant Approximate Shortest-Path Trees [1] Philipp Rimle April 14, 2018 1 Introduction Given a graph with positively real-weighted undirected
More informationWhite-Box Testing Techniques II
White-Box Testing Techniques II Software Testing and Verification Lecture 8 Prepared by Stephen M. Thebaut, Ph.D. University of Florida White-Box Testing Topics Logic coverage (lecture I) Dataflow coverage
More informationIntroduction to Code Optimization. Lecture 36: Local Optimization. Basic Blocks. Basic-Block Example
Lecture 36: Local Optimization [Adapted from notes by R. Bodik and G. Necula] Introduction to Code Optimization Code optimization is the usual term, but is grossly misnamed, since code produced by optimizers
More informationSoftware Verification and Validation. Prof. Lionel Briand Ph.D., IEEE Fellow
Software Verification and Validation Prof. Lionel Briand Ph.D., IEEE Fellow 1 White-Box Testing 2 White-Box vs. Black-BoxTesting: Reminder Software Representation (Model) Associated Criteria Test cases
More informationProgramming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 10 Reference and Pointer Welcome to module 7 of programming in
More informationIntroduction to C++ Introduction to C++ Dr Alex Martin 2013 Slide 1
Introduction to C++ Introduction to C++ Dr Alex Martin 2013 Slide 1 Inheritance Consider a new type Square. Following how we declarations for the Rectangle and Circle classes we could declare it as follows:
More informationEfficiently Monitoring Data-Flow Test Coverage
Efficiently Monitoring Data-Flow Test Coverage Raul Santelices Georgia Institute of Technology College of Computing Atlanta, Georgia, USA 30332 raul@cc.gatech.edu Mary Jean Harrold Georgia Institute of
More informationModules. 6 Hamilton Graphs (4-8 lectures) Introduction Necessary conditions and sufficient conditions Exercises...
Modules 6 Hamilton Graphs (4-8 lectures) 135 6.1 Introduction................................ 136 6.2 Necessary conditions and sufficient conditions............. 137 Exercises..................................
More information