Advanced Topics Combining S. M. T
|
|
- Mark Bruce
- 5 years ago
- Views:
Transcription
1 Advanced Topics Combining S. M. T 1 an empirical study of predicate dependence levels and trends Icse 2003 david binkley mark harman Or How to use slicing to measure testability 2
2 overview evolutionary testing variable dependence empirical study programs results implications 3 DaimlerChrysler approach to test data generation Test Planning the starting point for the study Test Organization Specification Recombination Reinsertion was Test Case Design by Means of EA Selection Program Mutation Evaluation evolutionary test data generation Test Execution Monitoring Test Documentation Test Evaluation 4
3 Target 5 Level 4 Level 3 approximation level control dependence analysis Level 2 Level 1 Target 6
4 Level 4 Level 3 approximation level control dependence analysis Level 2 Level 1 Target local distance calculation if A = B local distance = A - B! fitness = approximation level + local distance 7 search space reduction variable d is not mentioned so we must keep y so c is killed but wait... these are the inputs x, y, and z seem to be killed search space reduction is exponential but suppose we target this predicate of the original 7 variables only 3 matter which variables matter? 8
5 int g1,,gk; how as k many increases? matter? foo(int x1,,int xn) how as n many increases? matter? int a1,,am; if p(a1,x1,a3,g4,x4) if q(a1,x5) 9 an empirical study the question for a typical predicate how much of input space is relevant? why care? how much cohesive easy is do it inputs? to understand affect? the decision? reduce search space implications for slicing slice size for the predicate is closely related comprehension impact analysis measurement 10
6 inputs formal parameters globals in scope du-globals transitively defined or used in the predicate s procedure 11 Name Descriptionreplace Regular expression string replac the programs studied 12
7 data collection modified HRB slicing algorithm implemented using CodeSurfer formals and du-globals become parameters thanks to GrammaTech for CodeSurfer 13 terminology max parameters the maximum number of parameters a predicate could depend upon parameters used the number of parameters a predicate actually depends upon 14
8 result data three results to summarise in one data point max parameters parameters used number of predicates summarised we adopted two diagramatic techniques 15 dependence skyline diagram notice the trend for dependent proportion to drop 8 predicates have max formals of 3 and use 2.2 on average evident savings for prepro replace prepro listed in ascending order of max formals but precise skylines reading give is a lost feeling for size reduction 16
9 dependence bubble chart replace formal parameters prepro angle shows the size reduction these which s predicates max have parameters there bubble x x-axis: y-axis: max depend are at formals s (x,y) max predicates = on parameters of formals average available size used s on used to y them formals trend line 17 over all predicates in all programs 18
10 good news as max formals increases the dependent proportion falls well almost good news for evolutionary testing and also for all the other applications perhaps it is not good for cohesion 19 declining dependent proportion all predicates where max formals < 11 The number of predicates all predicates depended where upon max formals > 10 as a function of max formals available is piecewise linear 20
11 declining dependent proportion max formals < 11 max formals > bad news no such correlation for globals globals could entail untestability using search also bad for other applications is this more evidence that globals are bad 22
12 dependence trends Max formals Max du globals 23 implications formals: as the problem gets worse the solution gets better 24
13 implications globals: large global variable lists present problems hard to generate test data hard to understand high levels of dependence 25 implications cohesion: functions with large numbers of formals may not be so cohesive 26
14 algorithm performance the algorithm used has complexity O(P*S) where P is the number of predicates and S is the size of the procedure PII 450 with 386Mb memory analysis time per procedure = * P * S ms average analysis time 7.6ms per predicate 27 some possible interpretations what do you read into these diagrams? 28
15 flex evolution of du globals version version big bubbles top right big bubbles bottom left profiles sendmail du globals findutils du globals 30
16 conclusions falling formal dependent proportion invariant global dependent proportion analysis is worth performing diagrams may be an aid to understanding evaluation monitoring evolution 31 Testability Transformation Overview or How to use slicing and transformation to improve testing Test Data Generation Evolutionary Test Data Generation The Flag Problem Flag Removal Algorithm Initial Results Testability Transformation Other non meaning-preserving transformations If time permits 32
17 Automatic Test Generation We know that generating good quality test data is hard and knowing what good quality means is hard I do not propose to answer that question today Starting point: structural test adequacy criterion Specifically: that some branch is to be covered and that we are going to use evolutionary testing 33 Distance Based Fitness Level Approximation level Level 3 Relevant branching statements can lead to a miss of the desired target Level 2 Level 1 Target Local distance calculation in in the branching statements with undesired branching Evaluation of predicate in a branching condition in the same manner as described for safety testing, e.g. if A = B Local_Distance = max - ( A - B )! Fitness = Approximation_Level + Local_Distance 34
18 if (A==0)... Suppose we want to make this true Max 10 - ( A-0 ) The Flag Problem flag = A==0; if (flag)... fitness fitness Value of A Value of A Transform program to transform fitness function to transform landscape Better Flag Landscape Tiny plateau of high fitness Large plateau of low fitness 36
19 Informally A transformation is a partial function on programs which preserves meaning,of some kind or other We need to pair the program and test adequacy criterion call this the test pair A testability transformation is a partial function on test pairs such that Testability Transformation Test data which is adequate for the transformed test pair is adequate for the original test pair 38
20 Testability Transformation Paradox We are testing to cover structure but the structure is the problem So we transform the program and this alters the structure So we need to be careful: Are we still testing according to the same criterion? Our transformations will preserve coverage of Statements branches MC/DC Future work: define a semantics to verify this 39 This is not abstract interpretation To preserve if branch (e) skip; coverage: else skip; Cannot be transformed to skip; But the program if (e) x=1; else x=2; Can be transformed to if (e) skip; else skip; 40
21 Flag TT Perhaps Fairly less well well known known Transform the program to remove flags Not always possible but worth doing where possible Our Approach uses Simple transformations Simple amorphous slicing Substitute flag use with definition Brief overview of amorphous slicing Flag Removal Transformation What Suppose initial Suppose we values want n is to of an make n will unsigned achieve flag true integer this? here flag = n < 4; if flag n! (n%2==0) = n; = (n%2==0)?0:(n<4); flag = 0; flag = (n! %2==0)?0:(n! <4); if (a[i]!= 0 && flag) (n! %2==0)?0:(n! <4))... Once we have this We can keep the original flag assignment code Claim: Adding the new flag assignment leaves adequacy criteria invariant 42
22 Simple Flag Removal Algorithm For loop free flag definition code Bush Blossom Slice leaf sequences Convert to conditional assignment Add temporary variables Substitute definition for use 43 Bushing Produces a binary tree p a qqqqqqqqqq q qqqqqqqqqq q b b b rr r r r r r r r r r r rr r r r r r r r r r r r r r r r r c c d cc d d d d c dd ddd c c dd c dd c c dd d d d d d d d dd ccccc dd cccc dd ddddddd d ccccccc ccc c c cc ccccccccccccccc 44
23 Blossoming p Moves all actions to the leaves All internal nodes will be predicates Original predicates may be altered a q q b b r r r r ' b c d c d c d cb b db c d 45 Blossoming is repeated for all internal action nodes Some Now all leaf internal assignments nodes are predicates not to the flag variable p these can be removed using slicing aaa aa a a aa q a q aa ' aa b a a r r''' rr'''' r '' a a a a c d d c d cb db cb db a a a a c d c d cb db c d 46
24 Amorphous slicing gives single assignment at leaves Sometimes But sometimes syntax-preserving Some predicates slicing change slicing does leaves several this too several times during assignments blossoming We assumed freedom from side effects p Fortunately we have a side effect removal transformation q q' b r r'''' r''' r' ' c d bc c bd d ac a ad a cac a ad da c d b b c d Now all leaves are single assignments and they all assign to the flag variable 47 Initial Empirical Analysis Daimler ran their Evolutionary Test Data Generator on both versions Collected coverage information for 6 runs 48
25 Special Values /* date correction for september 1752 */ if(special_days) result = "Day did not exist."; else if (leapflag && is_september && day>13) result = dayname((addmonths(month,year)+ (--day)+firstjanuary(year)+10)%7); else... With flags we never even got up here Remove flags With flags it took longer to get anywhere /* date correction for september 1752 */ if(year==1752 && month==9 && day>=3 && day<= 13) result = "Day did not exist."; else if (year==1752 && month==9 && day>13) result = dayname((addmonths(month,year)+ (--day+firstjanuary(year)+10)%7); else Nothing special flag returnflag = (a==0 b==0 c==0) a>10000 b>10000 c>10000 (c>=a+b) (a>=b+c) (b>=a+c);... Is it hard to find values which make this flag false? true? if (returnflag) return; To have Remove a problem flags we need flag for which few inputs make it true/false There is very little difference Let s look at a bad flag problem if (a==0 b==0 c==0) a>10000 b>10000 c>10000 (c>=a+b) (a>=b+c) (b>=a+c) return; 50
26 Special Value Flag returnflag = (a==99999 b==99999 c==99999);... if (returnflag) return; at less cost There So This than we predicate are seldom this relatively onerandomly has a few smoother values hit this landscape which statement make the flag true... if (a==99999 b==99999 c==99999) return; So we get better coverage 51 Disposable Transformations We generate test data using the transformed program because it is easier then throw away the transformed program Transformation as a means to an end not an end in itself Do the transformations even need to preserve meaning? This is a radically new form of transformation 52
27 Conclusion Test data generation is hard anything which helps is good Test data generation can be impeded by structure so transform the structure We have to be sure to preserve branch coverage but not traditional meaning This suggests a new kind of transformation Testability Transformation 53 References David Binkley and Mark Harman Analysis and Visualization of Predicate Dependence on Formal Parameters and Global Variables. IEEE Transactions on Software Engineering. (journal version of ICSE 2003 paper, to appear) Mark Harman, Lin Hu, Rob Hierons, Joachim Wegener, Harmen Sthamer, Andre Baresel and Marc Roper. Testability Transformation. IEEE Transactions on Software Engineering. 30(1): 3-16, David Binkley and Mark Harman. An Empirical Study of Predicate Dependence Levels and Trends 25th IEEE/ACM International Conference on Software Engineering (ICSE 2003) May, Portland, Oregon, USA, Pages Electronic copies of these papers are available on my website. 54
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 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 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 informationData Dependence Based Testability Transformation in Automated Test Generation
Data Dependence Based Testability Transformation in Automated Test Generation Bogdan Korel Computer Science Department Illinois Institute of Technology Chicago, IL USA Mark Harman King s College London
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 informationOpen Problems in Testability Transformation
Open Problems in Testability Transformation Mark Harman CREST: The Centre for Research on Evolution, Search and Testing, King s College London, Strand, London, WC2R 2LS. Abstract Testability transformation
More informationLexical Analysis - 1. A. Overview A.a) Role of Lexical Analyzer
CMPSC 470 Lecture 02 Topics: Regular Expression Transition Diagram Lexical Analyzer Implementation A. Overview A.a) Role of Lexical Analyzer Lexical Analysis - 1 Lexical analyzer does: read input character
More informationET-based Test Data Generation for Multiple-path Testing
2016 3 rd International Conference on Engineering Technology and Application (ICETA 2016) ISBN: 978-1-60595-383-0 ET-based Test Data Generation for Multiple-path Testing Qingjie Wei* College of Computer
More informationSoftware Testing TEST CASE SELECTION AND ADEQUECY TEST EXECUTION
Software Testing TEST CASE SELECTION AND ADEQUECY TEST EXECUTION Overview, Test specification and cases, Adequacy criteria, comparing criteria, Overview of test execution, From test case 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 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 informationWhite Box Testing III
White Box Testing III Outline Today we continue our look at white box testing methods, with mutation testing We will look at : definition and role of mutation testing what is a mutation? how is mutation
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 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 informationDenotational semantics
1 Denotational semantics 2 What we're doing today We're looking at how to reason about the effect of a program by mapping it into mathematical objects Specifically, answering the question which function
More informationIntroduction. C provides two styles of flow control:
Introduction C provides two styles of flow control: Branching Looping Branching is deciding what actions to take and looping is deciding how many times to take a certain action. Branching constructs: if
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 informationControl Structures. Code can be purely arithmetic assignments. At some point we will need some kind of control or decision making process to occur
Control Structures Code can be purely arithmetic assignments At some point we will need some kind of control or decision making process to occur C uses the if keyword as part of it s control structure
More information15 FUNCTIONS IN C 15.1 INTRODUCTION
15 FUNCTIONS IN C 15.1 INTRODUCTION In the earlier lessons we have already seen that C supports the use of library functions, which are used to carry out a number of commonly used operations or calculations.
More informationA Theorem of Ramsey- Ramsey s Number
A Theorem of Ramsey- Ramsey s Number A simple instance Of 6 (or more) people, either there are 3 each pair of whom are acquainted or there are 3 each pair of whom are unacquainted Can we explain this without
More informationLecture 3: Recursion; Structural Induction
15-150 Lecture 3: Recursion; Structural Induction Lecture by Dan Licata January 24, 2012 Today, we are going to talk about one of the most important ideas in functional programming, structural recursion
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 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 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 informationLogic-based test coverage
Eduardo Marques, Vasco Thudichum Vasconcelos Logic-based test coverage Basic approach Clauses and predicates Basic coverage criteria: CC, PC, CoC Structural logic coverage of source code Logic coverage
More informationLogic-based test coverage
Logic-based test coverage!!! Basic approach Clauses and predicates Basic coverage criteria: CC, PC, CoC Structural logic coverage of source code Logic coverage of specifications Active clause coverage
More information5 The Control Structure Diagram (CSD)
5 The Control Structure Diagram (CSD) The Control Structure Diagram (CSD) is an algorithmic level diagram intended to improve the comprehensibility of source code by clearly depicting control constructs,
More informationASYMPTOTIC COMPLEXITY
Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better. - Edsger Dijkstra ASYMPTOTIC COMPLEXITY Lecture
More information1. For each part (a) through (d) below, state which of the three triangles, if any, are similar and why. a.
Exit Ticket Sample Solutions 1. Given ABC and LMN in the diagram below, determine if the triangles are similar. If so, write a similarity statement, and state the criterion used to support your claim.
More informationLecture 1: Overview
15-150 Lecture 1: Overview Lecture by Stefan Muller May 21, 2018 Welcome to 15-150! Today s lecture was an overview that showed the highlights of everything you re learning this semester, which also meant
More informationASYMPTOTIC COMPLEXITY
Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better. - Edsger Dijkstra ASYMPTOTIC COMPLEXITY Lecture
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 informationMTAT : Software Testing
MTAT.03.159: Software Testing Lecture 04: White-Box Testing (advanced) Part1 Dietmar Pfahl Spring 2018 email: dietmar.pfahl@ut.ee White-Box Testing Techniques Control-Flow Testing Data-Flow Testing Mutation
More informationInterpreters. Prof. Clarkson Fall Today s music: Step by Step by New Kids on the Block
Interpreters Prof. Clarkson Fall 2017 Today s music: Step by Step by New Kids on the Block Review Previously in 3110: functional programming modular programming data structures Today: new unit of course:
More informationSoftware Testing. 1. Testing is the process of demonstrating that errors are not present.
What is Testing? Software Testing Many people understand many definitions of testing :. Testing is the process of demonstrating that errors are not present.. The purpose of testing is to show that a program
More informationToday s Outline. Motivation. Disjoint Sets. Disjoint Sets and Dynamic Equivalence Relations. Announcements. Today s Topics:
Today s Outline Disjoint Sets and Dynamic Equivalence Relations Announcements Assignment # due Thurs 0/ at pm Today s Topics: Disjoint Sets & Dynamic Equivalence CSE Data Structures and Algorithms 0//0
More informationa a= a a =a a 1 =1 Division turned out to be equivalent to multiplication: a b= a b =a 1 b
MATH 245 Extra Effort ( points) My assistant read through my first draft, got half a page in, and skipped to the end. So I will save you the flipping. Here is the assignment. Do just one of them. All the
More informationCPSC213/2014W1 Midterm EXTRA Practice
CPSC213/2014W1 Midterm EXTRA Practice DEC/HEX/BIN NUMERACY 1. Convert into decimal: 1a. 0x33 1b. 0x57 1c. 0xaf 1d. 0x7a 1e. 0x1234 1f. 0x69bd 1g. 0x1a64 1h. 0xdead 2. Convert into hex numbers of the specified
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 informationInsight Knowledge in Search Based Software Testing
Insight Knowledge in Search Based Software Testing Andrea Arcuri The School of Computer Science, The University of Birmingham, Edgbaston, Birmingham B15 2TT, UK. a.arcuri@cs.bham.ac.uk ABSTRACT 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 informationChapter Fourteen Bonus Lessons: Algorithms and Efficiency
: Algorithms and Efficiency The following lessons take a deeper look at Chapter 14 topics regarding algorithms, efficiency, and Big O measurements. They can be completed by AP students after Chapter 14.
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. 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 informationExplorations of Rigid Motions and Congruence
Explorations of Rigid Motions and Congruence James King University of Washington Department of Mathematics king@uw.edu http://www.math.washington.edu/~king The Plan In this session, we will explore exploring.
More informationExcel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller
Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Table of Contents Introduction!... 1 Part 1: Entering Data!... 2 1.a: Typing!... 2 1.b: Editing
More informationCSE 373 Lecture 19: Wrap-Up of Sorting
CSE 373 Lecture 19: Wrap-Up of Sorting What s on our platter today? How fast can the fastest sorting algorithm be? Lower bound on comparison-based sorting Tricks to sort faster than the lower bound External
More informationPrinciple of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore
Principle of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Lecture - 20 Intermediate code generation Part-4 Run-time environments
More informationFlow Chart. The diagrammatic representation shows a solution to a given problem.
low Charts low Chart A flowchart is a type of diagram that represents an algorithm or process, showing the steps as various symbols, and their order by connecting them with arrows. he diagrammatic representation
More informationLecture 3 Local Optimizations, Intro to SSA
Lecture 3 Local Optimizations, Intro to SSA I. Basic blocks & Flow graphs II. Abstraction 1: DAG III. Abstraction 2: Value numbering IV. Intro to SSA ALSU 8.4-8.5, 6.2.4 Phillip B. Gibbons 15-745: Local
More informationData Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data
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 informationWritten exam TDDD04 Software Testing
LiTH, Linköpings tekniska högskola IDA, Institutionen för datavetenskap Ola Leifler Written exam TDDD04 Software Testing 2016-10-26 Permissible aids Dictionary (printed, NOT electronic) Teacher on duty
More informationAlgorithm Efficiency & Sorting. Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms
Algorithm Efficiency & Sorting Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms Overview Writing programs to solve problem consists of a large number of decisions how to represent
More informationCS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 10: Asymptotic Complexity and
CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims Lecture 10: Asymptotic Complexity and What Makes a Good Algorithm? Suppose you have two possible algorithms or
More informationSpecifications. CSE 331 Spring 2010
Specifications CSE 331 Spring 2010 The challenge of scaling software Small programs are simple and malleable easy to write easy to change Big programs are (often) complex and inflexible hard to write hard
More informationCSE341, Fall 2011, Lecture 12 Summary
CSE341, Fall 2011, Lecture 12 Summary Standard Disclaimer: This lecture summary is not necessarily a complete substitute for atting class, reading the associated code, etc. It is dened to be a useful resource
More informationGeometry. Topic 1 Transformations and Congruence
Geometry Topic 1 Transformations and Congruence MAFS.912.G-CO.1.2 Consider the point A at ( 3, 5). A. Find the coordinates of A, the image of A after the transformation: (, ) (, ). B. What type of transformation
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 informationAE52/AC52/AT52 C & Data Structures JUNE 2014
Q.2 a. Write a program to add two numbers using a temporary variable. #include #include int main () int num1, num2; clrscr (); printf( \n Enter the first number : ); scanf ( %d, &num1);
More informationHere is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic:
Pointer Manipulations Pointer Casts and Data Accesses Viewing Memory The contents of a block of memory may be viewed as a collection of hex nybbles indicating the contents of the byte in the memory region;
More informationUNIT 1-2 MARKS QUESTIONS WITH ANSWERS
SUBJECT: SOFTWARE TESTING METHODOLOGIES. UNIT 1-2 MARKS QUESTIONS WITH ANSWERS 1) What is testing? What is the purpose of testing? A) TESTING: After the programs have been developed they must be tested
More informationLecture 20: AVR Programming, Continued. AVR Program Visible State (ones we care about for now)
18 100 Lecture 20: AVR Programming, Continued S 15 L20 1 James C. Hoe Dept of ECE, CMU April 2, 2015 Today s Goal: You will all be ace AVR hackers! Announcements: Midterm 2 can be picked up in lab and
More informationLec-5-HW-1, TM basics
Lec-5-HW-1, TM basics (Problem 0)-------------------- Design a Turing Machine (TM), T_sub, that does unary decrement by one. Assume a legal, initial tape consists of a contiguous set of cells, each containing
More informationASSIGNMENT 3. COMP-202, Fall 2014, All Sections. Due: October 24 th, 2014 (23:59)
ASSIGNMENT 3 COMP-202, Fall 2014, All Sections Due: October 24 th, 2014 (23:59) Please read the entire pdf before starting. You must do this assignment individually and, unless otherwise specified, you
More informationLoops! Loops! Loops! Lecture 5 COP 3014 Fall September 25, 2017
Loops! Loops! Loops! Lecture 5 COP 3014 Fall 2017 September 25, 2017 Repetition Statements Repetition statements are called loops, and are used to repeat the same code mulitple times in succession. The
More informationHoare Logic: Proving Programs Correct
Hoare Logic: Proving Programs Correct 17-654/17-765 Analysis of Software Artifacts Jonathan Aldrich Reading: C.A.R. Hoare, An Axiomatic Basis for Computer Programming Some presentation ideas from a lecture
More informationIntroduction to Programming Languages and Compilers. CS164 11:00-12:30 TT 10 Evans. UPRM ICOM 4029 (Adapted from: Prof. Necula UCB CS 164)
Introduction to Programming Languages and Compilers CS164 11:00-12:30 TT 10 Evans 1 ICOM 4036 - Outline Prontuario Course Outline Brief History of PLs Programming Language Design Criteria Programming Language
More informationOn the Purpose of Object-Oriented Analysis
September 29 On the Purpose of Object-Oriented Analysis The What and How of what Geir Høydalsvik & Guttorm Sindre. The Norwegian Institute of Technology A critical look at: What is this about? The relationship
More informationCMSC 330: Organization of Programming Languages. Formal Semantics of a Prog. Lang. Specifying Syntax, Semantics
Recall Architecture of Compilers, Interpreters CMSC 330: Organization of Programming Languages Source Scanner Parser Static Analyzer Operational Semantics Intermediate Representation Front End Back End
More informationThe Substitution Model. Nate Foster Spring 2018
The Substitution Model Nate Foster Spring 2018 Review Previously in 3110: simple interpreter for expression language abstract syntax tree (AST) evaluation based on single steps parser and lexer (in lab)
More informationD-Optimal Designs. Chapter 888. Introduction. D-Optimal Design Overview
Chapter 888 Introduction This procedure generates D-optimal designs for multi-factor experiments with both quantitative and qualitative factors. The factors can have a mixed number of levels. For example,
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 information[Y2] Counting and understanding number. [Y2] Counting and understanding number. [Y2] Counting and understanding number
Medium Term Plan : Year 2 Autumn Term Block A1.a: Count on and back in 1s or 10s from a 2- digit number; write figures up to 100 Block A1.b: Begin to count up to 100 objects by grouping in 5s or 10s; estimate
More informationCS 242. Fundamentals. Reading: See last slide
CS 242 Fundamentals Reading: See last slide Syntax and Semantics of Programs Syntax The symbols used to write a program Semantics The actions that occur when a program is executed Programming language
More informationPropositional Calculus. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus
More informationAbstract Interpretation
Abstract Interpretation Ranjit Jhala, UC San Diego April 22, 2013 Fundamental Challenge of Program Analysis How to infer (loop) invariants? Fundamental Challenge of Program Analysis Key issue for any analysis
More informationSFWR ENG 3S03: Software Testing
(Slide 1 of 52) Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on [?] Techniques (Slide 2 of 52) 1 2 3 4 Empirical
More informationSuggested problems - solutions
Suggested problems - solutions Quadrilaterals Material for this section references College Geometry: A Discovery Approach, 2/e, David C. Kay, Addison Wesley, 2001. In particular, see section 3.7, pp 190-193.
More informationPropositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson
Propositional Calculus: Boolean Functions and Expressions CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and
More informationAlgorithm Design and Recursion. Search and Sort Algorithms
Algorithm Design and Recursion Search and Sort Algorithms Objectives To understand the basic techniques for analyzing the efficiency of algorithms. To know what searching is and understand the algorithms
More informationPropositional Logic Formal Syntax and Semantics. Computability and Logic
Propositional Logic Formal Syntax and Semantics Computability and Logic Syntax and Semantics Syntax: The study of how expressions are structured (think: grammar) Semantics: The study of the relationship
More informationMidterm 2 Solutions Many acceptable answers; one was the following: (defparameter g1
Midterm 2 Solutions 1. [20 points] Consider the language that consist of possibly empty lists of the identifier x enclosed by parentheses and separated by commas. The language includes { () (x) (x,x) (x,x,x)
More information10. Software Testing Fundamental Concepts
10. Software Testing Fundamental Concepts Department of Computer Science and Engineering Hanyang University ERICA Campus 1 st Semester 2016 Testing in Object-Oriented Point of View Error Correction Cost
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 informationSoftware Paradigms (Lesson 6) Logic Programming
Software Paradigms (Lesson 6) Logic Programming Table of Contents 1 Introduction... 2 2 Facts... 3 3 Predicates (Structured Terms)... 4 3.1 General Structures... 4 3.2 Predicates (Syntax)... 4 3.3 Simple
More informationMC/DC Automatic Test Input Data Generation
MC/DC Automatic Test Input Data Generation Zeina Awedikian, Kamel Ayari, Giuliano Antoniol SOCCER Lab (SOftware Cost-effective Change and Evolution Research) Ecole Polytechnique de Montreal 2009 Introduction
More informationRecursive definition of sets and structural induction
CS2209A 2017 Applied Logic for Computer Science Lecture 21, 22 Recursive definition of sets and structural induction Instructor: Marc Moreno Maza 1 Tower of Hanoi game Rules of the game: Start with all
More informationSlide Set 1. for ENCM 339 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary
Slide Set 1 for ENCM 339 Fall 2016 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary September 2016 ENCM 339 Fall 2016 Slide Set 1 slide 2/43
More informationCurriculum Map Grade(s): Subject: AP Computer Science
Curriculum Map Grade(s): 11-12 Subject: AP Computer Science (Semester 1 - Weeks 1-18) Unit / Weeks Content Skills Assessments Standards Lesson 1 - Background Chapter 1 of Textbook (Weeks 1-3) - 1.1 History
More informationWhat is a Procedure?
2015-12-10 0 Question and Answers What is a Procedure? Eric C.R. Hehner Department of Computer Science, University of Toronto hehner@cs.utoronto.ca What is the meaning of a procedure? This question is
More informationCS 361 Data Structures & Algs Lecture 11. Prof. Tom Hayes University of New Mexico
CS 361 Data Structures & Algs Lecture 11 Prof. Tom Hayes University of New Mexico 09-28-2010 1 Last Time Priority Queues & Heaps Heapify (up and down) 1: Preserve shape of tree 2: Swaps restore heap order
More informationAdvanced Test Coverage Criteria: Specify and Measure, Cover and Unmask
Advanced Test Coverage Criteria: Specify and Measure, Cover and Unmask Sébastien Bardin & Nikolai Kosmatov joint work with Omar Chebaro, Robin David, Mickaël Delahaye, Michaël Marcozzi, Mike Papadakis,
More informationCS 6110 S11 Lecture 25 Typed λ-calculus 6 April 2011
CS 6110 S11 Lecture 25 Typed λ-calculus 6 April 2011 1 Introduction Type checking is a lightweight technique for proving simple properties of programs. Unlike theorem-proving techniques based on axiomatic
More information8. Relational Calculus (Part II)
8. Relational Calculus (Part II) Relational Calculus, as defined in the previous chapter, provides the theoretical foundations for the design of practical data sub-languages (DSL). In this chapter, we
More informationSoftware Engineering using Formal Methods
Software Engineering using Formal Methods Introduction to Promela Wolfgang Ahrendt 03 September 2015 SEFM: Promela /GU 150903 1 / 36 Towards Model Checking System Model Promela Program byte n = 0; active
More informationImproving Evolutionary Real-Time Testing
Improving Evolutionary Real-Time Testing Marouane Tlili Daimler Chrysler AG, Reasearch and Technology Alt-Moabit 96a D-10559 Berlin, Germany marouane.tlili@daimlerchrysler.com Stefan Wappler Technical
More informationMidterm Wednesday Oct. 27, 7pm, room 142
Regression Testing Midterm Wednesday Oct. 27, 7pm, room 142 In class, closed book eam Includes all the material covered up (but not including) symbolic eecution Need to understand the concepts, know the
More informationPLD Semester Exam Study Guide Dec. 2018
Covers material from Chapters 1-8. Semester Exam will be built from these questions and answers, though they will be re-ordered and re-numbered and possibly worded slightly differently than on this study
More informationAXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop
AXIOMS OF AN IMPERATIVE LANGUAGE We will use the same language, with the same abstract syntax that we used for operational semantics. However, we will only be concerned with the commands, since the language
More information