Repair & Refactoring

Size: px
Start display at page:

Download "Repair & Refactoring"

Transcription

1 S C I E N C E P A S S I O N T E C H N O L O G Y Repair & Refactoring Birgit Hofer Institute for Software Technology 1 u

2 Outline Model-based Software Debugging o Traffic Light Example Repair o Genetic programming o Software (C, Java) o Spreadsheets Refactoring Exam 2

3 Outline Model-based Software Debugging o Traffic Light Example Repair o Genetic programming o Software (C, Java) o Spreadsheets Refactoring Exam 3

4 4 Traffic Light Example 1. public static void test () { 2. TrafficLight tl = new TrafficLight(0); // initializes tl.state=0; 3. int i = 0; 4. int finalstate; 5. while (i < 5) { 6. tl.printstate(); 7. if (tl.state == 0) { 8. tl.state = 1; 9. } else { 10. if (tl.state == 1) { 11. tl.state = 2; 12. } else { 13. if (tl.state == 2) { 14. tl.state = 3; 15. } else { 16. tl.state = 3; // should be tl.state = 0; 17. } 18. } 19. } 20. i++; 21. } 22. tl.printstate(); 23. finalstate = tl.state; 24. }

5 Traffic Light Example Hints for the solution #FACTS eq(not_intrace_0,0) # initialization eq(finalstate_0,1) # expected output value eq(state_0,0) # input Intrace variables WHILEs are control-dependent of the previous WHILE The IF in Line 7 is control-dependent on the previous WHILE Each other IF is control-dependent on the previous IF. Lines 8/11/12/16 are control-dependent on the previous IF Line 20 is control-dependent on the previous WHILE Line 23 is control-dependent on intrace_0. 5

6 Traffic Light Example How many single fault solutions do you get? Do you get a solution if you set the watchsumgeq/leg of the AB variables to 0? Would it help if you add more facts to the constraints system, e.g. state_2=2? 6

7 Outline Model-based Software Debugging o Traffic Light Example Repair o Genetic programming o Software (C, Java) o Spreadsheets Refactoring Exam 7

8 Visualization Design & Maintenance Support Static Analysis Modeling Spreadsheet Quality Assurance Techniques Debugging Fault localization Spectrumbased Model-based Testing Repair Genetic Source: Jannach et al. Avoiding, Finding and Fixing Spreadsheet Errors A Survey of Automated Approaches for Spreadsheet QA, in Journal of Systems and Software, Visualization: Patrick Koch,Diploma Seminar, TU Graz,

9 Genetic Programming Evolutionary methodology to find computer programs that perform a user-defined task 9

10 Principles of Genetic Programming (GP) Evolution Mutation Cross-over Survival of the fittest Fitness function, e.g., test cases 10

11 Program Representation in GP + - * 8 / y - x 2 8 x / 2 + y * (-3) 3 11

12 Mutation * 8 / y - x x / 2 + y * (-3) 3 12

13 Crossover * 8 / y - x x / 2 + y * x (-3) / 2 13

14 Crossover 2 Mutant 1 Mutant / x 3 x 2 14

15 Crossover 3 Crossing back Original program - Mutant - 8 / x 3 x 2 15

16 Genetic Programming - Workflow 16 Source: Patrick W. Koch: Framework for Automated Spreadsheet Debugging conducting Evolutionary Strategies, Master-Project, 2013.

17 Outline Model-based Software Debugging o Traffic Light Example Repair o Genetic programming o Software (C, Java) o Spreadsheets Refactoring Exam 17

18 Genetic Programming For Automated Software Repair Faulty program AST (abstract syntax tree) Copy Copy Copy 1 Copy 2 1 n Test cases Evaluation (Fitness) Elimination Copy Copy 1 Copy 2 Mutant 1 n Copy 1 Mutant n 18 Source: Forrest et al.: A Genetic Programming Approach to Automated Software Repair, GECCO, 2009.

19 Genetic Programming For Automated Software Repair Faulty program AST (abstract syntax tree) Copy Copy Copy 1 Copy 2 1 n Test cases Evaluation (Fitness) Elimination Copy Copy 1 Copy 2 Mutant 1 n Copy Mutant 1 n Minimized Solution 19 Source: Forrest et al.: A Genetic Programming Approach to Automated Software Repair, GECCO, 2009.

20 Smart statement selection for mutation Weighted path Statement visited by Negative TC 1.0 Positive and negative TC 0.1 Positive TC 0.0 Finer-grained selection possible Do you have ideas for a finer selection? 20

21 Mutation operators Delete statement Insert statement Swap statements 21

22 GCD Example Test case gcc(0,55) 22 Source: Weimer et al.: automatically finding patches using genetic programming, ICSE, 2009.

23 GCD Example Program passes test case We need more test cases Test case gcc(0,55) gcc(1071,1029) 23 Source: Weimer et al.: automatically finding patches using genetic programming, ICSE, 2009.

24 Test Cases and Fitness Function Negative Test Cases Characterize the fault Positive Test Cases Encode the functionality requirements Fitness Function The more passing test cases - the better the score All test cases pass repair found 24

25 GCD Example Primary Repair Test case gcc(0,55) gcc(1071,1029) 25 Source: Weimer et al.: automatically finding patches using genetic programming, ICSE, 2009.

26 The Zune Bug Test cases 26 Source: Forrest et al.: A Genetic Programming Approach to Automated Software Repair, GECCO, 2009.

27 The Zune Bug Possible Mutations 27

28 The Zune Bug Solution 28

29 ASTOR Automatic Software Transformation for program Repair Tool for automatically repairing Java programs Under GPL v2 (GNU General Public License) Uses Spoon (library for Java code analysis and manipulation) 29 Source: Martinez and Monperrrus: ASTOR - Evolutionary Automatic Software Repair for Java, Technical Report hal , Inria, 2014

30 Outline Model-based Software Debugging o Traffic Light Example Repair o Genetic programming o Software (C, Java) o Spreadsheets Refactoring Exam 30

31 GP for Spreadsheets Mutations Constants Change Boolean values Permutate digits Increase / decrease number by 1 Use a random number Change sign References Increase/decrease the borders of areas Change a single reference Formulas Replace a binary operator with another binary operator A1+A2 A1-A2 Replace a formula with another formula which can process the same arguments SUM(A1:A4) AVG(A1:A4) Remove parts of a formula A3+A4*3 A3*3 Relocate parts of a formula if(a1>1;a2;a3) if(a1>1;a3;a2) 31

32 Genetic Programming for Spreadsheet Repair I 32

33 Genetic Programming for Spreadsheet Repair II 33

34 Genetic Programming for Spreadsheets 34

35 Outline Model-based Software Debugging o Traffic Light Example Repair o Genetic programming Refactoring Exam 35

36 Refactoring Process of changing the internal structure of a program without changing the functionality 36

37 How does refactoring contribute to the quality of spreadsheets? 37

38 BumbleBee f1 f2 SUM(R)/COUNT(R) AVERAGE(R) Parameterized references via variables A1+A2+A3 SUM(A1:A3) {i,j} + {i,j+1} SUM({i,j}:{j,j+1}) Areas {i,j}+ +{m,n} SUM({i,j}:{m,n}) Source: Hermans and Dig: BumbleBee: A Refactoring Environment for Spreadsheet Formulas, FSE

39 TableProg 39 Source: Harris and Gulwani: Spreadsheet Table Transformations from Examples, PLDI, 2011.

40 TableProg 40 Source: Harris and Gulwani: Spreadsheet Table Transformations from Examples, PLDI, 2011.

41 TableProg 41 Source: Harris and Gulwani: Spreadsheet Table Transformations from Examples, PLDI, 2011.

42 Outline Model-based Software Debugging o Traffic Light Example Repair o Genetic programming o Software (C, Java) o Spreadsheets Refactoring Exam 42

43 Exam General List Fault Types List Quality Assurance Techniques (+ subcategories) Explain R1C1 cell reference system Static Code Analysis techniques Explain the terms Code Smells and Refactoring List, explain and identity Software/Spreadsheet Code Smells List and explain Static Spreadsheet Analysis Techniques (UCheck, ) Spectrum-based fault localization Explain and apply SFL to software snippets and spreadsheets Explain the terms o Observation matrix o Error vector o Similarity coefficient o Best/worst/average case ranking o Cone 43

44 Exam Model-based fault localization List + explain all parts of diagnosis problem Explain the terms o Conflict / Conflict set o Diagnosis / Minimal diagnosis o Hitting Set / Minimal hitting set o SSA form Solve simple examples via conflicts and hitting sets (hardware, simple software) Write (in pseudo code) a dependency-/value-based model for a given spreadsheet Explain how to compute double fault diagnoses List, explain and compare (+/-) the different types of behavior models Explain how to derive a dependency-based model from a value-based model (+ apply by means of an example) Explain coincidental correctness + list examples Explain how MBSD for Software works Compare SFL with MBSD w.r.t. complexity, granularity, input, result 44

45 Exam Automatic repair Explain the terms o Genetic Programming o Mutation (+ list different types) o Crossover (+ list / explain different types) o Fitness function Explain how automatic repair with genetic programming works for software/spreadsheets 45

46 Haven t you had enough of spreadsheets yet? Master Project Diploma Thesis 46

47 Thank you for participating in this lecture. Are there any suggestions/wishes for changes/improvements? 47

Model-based Software Debugging. Part III

Model-based Software Debugging. Part III S C I E N C E P A S S I O N T E C H N O L O G Y Part III Birgit Hofer Institute for Software Technology 60 u www.tugraz.at Outline Model-based debugging for Spreadsheets o Dependency-based models Model-based

More information

Model-based Software Debugging

Model-based Software Debugging S C I E N C E P A S S I O N T E C H N O L O G Y Birgit Hofer Institute for Software Technology 1 u www.tugraz.at 2 Visualization Design & Maintenance Support Static Analysis Modeling Spreadsheet Quality

More information

Talking about apples and oranges

Talking about apples and oranges S C I E N C E P A S S I O N T E C H N O L O G Y Talking about apples and oranges Static analysis techniques Part II Birgit Hofer Institute for Software Technology 1 u www.tugraz.at Risk comes from not

More information

Automatically Finding Patches Using Genetic Programming

Automatically Finding Patches Using Genetic Programming Automatically Finding Patches Using Genetic Programming Authors: Westley Weimer, ThanhVu Nguyen, Claire Le Goues, Stephanie Forrest Presented by: David DeBonis, Qi Lu, Shuang Yang Department of Computer

More information

Why does my spreadsheet compute wrong values?

Why does my spreadsheet compute wrong values? S C I E N C E P A S S I O N T E C H N O L O G Y Why does my spreadsheet compute wrong values? Birgit Hofer, and Franz Wotawa Graz University of Technology, Austria 25th 1 IEEE Int. Symposium on Software

More information

On the Empirical Evaluation of Fault Localization Techniques for Spreadsheets

On the Empirical Evaluation of Fault Localization Techniques for Spreadsheets On the Empirical Evaluation of Fault Localization Techniques for Spreadsheets Birgit Hofer, Franz Wotawa, Elisabeth Getzner André Riboira, Rui Abreu 1 Spreadsheet Debugging Spreadsheet users outnumber

More information

A Systematic Study of Automated Program Repair: Fixing 55 out of 105 Bugs for $8 Each

A Systematic Study of Automated Program Repair: Fixing 55 out of 105 Bugs for $8 Each A Systematic Study of Automated Program Repair: Fixing 55 out of 105 Bugs for $8 Each Claire Le Goues (Virginia), Michael Dewey-Vogt (Virginia), Stephanie Forrest (New Mexico), Westley Weimer (Virginia)

More information

Fixing software bugs in 10 minutes or less using evolutionary computation

Fixing software bugs in 10 minutes or less using evolutionary computation Fixing software bugs in 10 minutes or less using evolutionary computation University of New Mexico Stephanie Forrest ThanhVu Nguyen University of Virginia Claire Le Goues Westley Weimer Summary of method

More information

Program Synthesis. SWE 795, Spring 2017 Software Engineering Environments

Program Synthesis. SWE 795, Spring 2017 Software Engineering Environments Program Synthesis SWE 795, Spring 2017 Software Engineering Environments Today HW3 is due next week in class! Part 1 (Lecture)(~50 mins) Break! Part 2 (Discussion)(~60 mins) Discussion of readings Part

More information

Using Execution Paths to Evolve Software Patches

Using Execution Paths to Evolve Software Patches Using Execution Paths to Evolve Software Patches ThanhVu Nguyen*, Westley Weimer**, Claires Le Gouges**, Stephanie Forrest* * University of New Mexico ** University of Virginia Tuesday, March 31, 2009

More information

Automatically Finding Patches Using Genetic Programming. Westley Weimer, Claire Le Goues, ThanVu Nguyen, Stephanie Forrest

Automatically Finding Patches Using Genetic Programming. Westley Weimer, Claire Le Goues, ThanVu Nguyen, Stephanie Forrest Automatically Finding Patches Using Genetic Programming Westley Weimer, Claire Le Goues, ThanVu Nguyen, Stephanie Forrest Motivation Software Quality remains a key problem Over one half of 1 percent of

More information

Automated Program Repair

Automated Program Repair #1 Automated Program Repair Motivation Software maintenance is expensive Up to 90% of the cost of software [Seacord] Up to $70 Billion per year in US [Jorgensen, Sutherland] Bug repair is the majority

More information

An Unsystematic Review of Genetic Improvement. David R. White University of Glasgow UCL Crest Open Workshop, Jan 2016

An Unsystematic Review of Genetic Improvement. David R. White University of Glasgow UCL Crest Open Workshop, Jan 2016 An Unsystematic Review of Genetic Improvement David R. White University of Glasgow UCL Crest Open Workshop, Jan 2016 A Systematic Study of GI is currently under preparation. Justyna Petke Mark Harman Bill

More information

Automatically Finding Patches Using Genetic Programming

Automatically Finding Patches Using Genetic Programming Automatically Finding Patches Using Genetic Programming Westley Weimer, Stephanie Forrest, Claire Le Goues, ThanVu Nguyen, Ethan Fast, Briana Satchell, Eric Schulte Motivation Software Quality remains

More information

SemFix: Program Repair via Semantic Analysis. Ye Wang, PhD student Department of Computer Science Virginia Tech

SemFix: Program Repair via Semantic Analysis. Ye Wang, PhD student Department of Computer Science Virginia Tech SemFix: Program Repair via Semantic Analysis Ye Wang, PhD student Department of Computer Science Virginia Tech Problem Statement Debugging takes much time and effort Even after root cause of a bug is identified,

More information

DynaMoth: Dynamic Code Synthesis for Automatic Program Repair

DynaMoth: Dynamic Code Synthesis for Automatic Program Repair DynaMoth: Dynamic Code Synthesis for Automatic Program Repair AST 2016 Thomas Durieux & Martin Monperrus March 6, 2017 Inria & University of Lille Automatic test-suite based repair DynaMoth is an automatic

More information

Qualitative deviation models vs. quantitative models for fault localization in spreadsheets

Qualitative deviation models vs. quantitative models for fault localization in spreadsheets Qualitative deviation models vs. quantitative models for fault localization in spreadsheets Birgit Hofer, Iulia Nica, and Franz Wotawa Graz University of Technology, Institute for Software Technology,

More information

Evolutionary Computation. Chao Lan

Evolutionary Computation. Chao Lan Evolutionary Computation Chao Lan Outline Introduction Genetic Algorithm Evolutionary Strategy Genetic Programming Introduction Evolutionary strategy can jointly optimize multiple variables. - e.g., max

More information

Automatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset

Automatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset Automatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset Matias Martinez, Thomas Durieux, Romain Sommerard, Jifeng Xuan, Martin Monperrus 1 Automatic Software Repair Automatic

More information

Automated Documentation Inference to Explain Failed Tests

Automated Documentation Inference to Explain Failed Tests Automated Documentation Inference to Explain Failed Tests Sai Zhang University of Washington Joint work with: Cheng Zhang, Michael D. Ernst A failed test reveals a potential bug Before bug-fixing, programmers

More information

Statistical Debugging for Real-World Performance Problems

Statistical Debugging for Real-World Performance Problems Statistical Debugging for Real-World Performance Problems Linhai Song 1 and Shan Lu 2 1 University of Wisconsin-Madison 2 University of Chicago What are Performance Problems? Definition of Performance

More information

Searching for Program Invariants using Genetic Programming and Mutation Testing

Searching for Program Invariants using Genetic Programming and Mutation Testing Searching for Program Invariants using Genetic Programming and Mutation Testing Sam Ratcliff, David R. White and John A. Clark. The 13th CREST Open Workshop Thursday 12 May 2011 Outline Invariants Using

More information

Evaluating and Improving Fault Localization

Evaluating and Improving Fault Localization Evaluating and Improving Fault Localization Spencer Pearson, Jose Campos*, Rene Just, Gordon Fraser*, Rui Abreu, Michael D. Ernst, Deric Pang, Benjamin Keller University of Massachusetts University of

More information

LEVERAGING LIGHTWEIGHT ANALYSES TO AID SOFTWARE MAINTENANCE ZACHARY P. FRY PHD PROPOSAL

LEVERAGING LIGHTWEIGHT ANALYSES TO AID SOFTWARE MAINTENANCE ZACHARY P. FRY PHD PROPOSAL LEVERAGING LIGHTWEIGHT ANALYSES TO AID SOFTWARE MAINTENANCE ZACHARY P. FRY PHD PROPOSAL MAINTENANCE COSTS For persistent systems, software maintenance can account for up to 90% of the software lifecycle

More information

Evolving Human Competitive Research Spectra-Based Note Fault Localisation Techniques

Evolving Human Competitive Research Spectra-Based Note Fault Localisation Techniques UCL DEPARTMENT OF COMPUTER SCIENCE Research Note RN/12/03 Evolving Human Competitive Research Spectra-Based Note Fault Localisation Techniques RN/17/07 Deep Parameter Optimisation for Face Detection Using

More information

Statistical Debugging for Real-World Performance Problems. Linhai Song Advisor: Prof. Shan Lu

Statistical Debugging for Real-World Performance Problems. Linhai Song Advisor: Prof. Shan Lu Statistical Debugging for Real-World Performance Problems Linhai Song Advisor: Prof. Shan Lu 1 Software Efficiency is Critical No one wants slow and inefficient software Frustrate end users Cause economic

More information

Heuristic Optimisation

Heuristic Optimisation Heuristic Optimisation Part 10: Genetic Algorithm Basics Sándor Zoltán Németh http://web.mat.bham.ac.uk/s.z.nemeth s.nemeth@bham.ac.uk University of Birmingham S Z Németh (s.nemeth@bham.ac.uk) Heuristic

More information

Smelling Faults in Spreadsheets

Smelling Faults in Spreadsheets Smelling Faults in Spreadsheets Rui Abreu Universidade do Porto, Portugal Email: rui@computer.org Pedro Martins Universidade do Minho, Portugal Email: prmartins@di.uminho.pt Jácome Cunha Universidade Nova

More information

Quality Assurance of a Mobile Network Measurement Testbed Through Systematic Software Testing

Quality Assurance of a Mobile Network Measurement Testbed Through Systematic Software Testing Quality Assurance of a Mobile Network Measurement Testbed Through Systematic Software Testing Utkarsh Goel, James Espeland, Upulee Kanewala, and Mike P. Wittie SEDE 2016 Motivation Application developers

More information

Comparative Analysis of Genetic Algorithm Implementations

Comparative Analysis of Genetic Algorithm Implementations Comparative Analysis of Genetic Algorithm Implementations Robert Soricone Dr. Melvin Neville Department of Computer Science Northern Arizona University Flagstaff, Arizona SIGAda 24 Outline Introduction

More information

Genetic programming. Lecture Genetic Programming. LISP as a GP language. LISP structure. S-expressions

Genetic programming. Lecture Genetic Programming. LISP as a GP language. LISP structure. S-expressions Genetic programming Lecture Genetic Programming CIS 412 Artificial Intelligence Umass, Dartmouth One of the central problems in computer science is how to make computers solve problems without being explicitly

More information

Automated Program Repair through the Evolution of Assembly Code

Automated Program Repair through the Evolution of Assembly Code Automated Program Repair through the Evolution of Assembly Code Eric Schulte University of New Mexico 08 August 2010 1 / 26 Introduction We present a method of automated program repair through the evolution

More information

Optimization Technique for Maximization Problem in Evolutionary Programming of Genetic Algorithm in Data Mining

Optimization Technique for Maximization Problem in Evolutionary Programming of Genetic Algorithm in Data Mining Optimization Technique for Maximization Problem in Evolutionary Programming of Genetic Algorithm in Data Mining R. Karthick Assistant Professor, Dept. of MCA Karpagam Institute of Technology karthick2885@yahoo.com

More information

Spectrum-based Fault Localization: A Pair Scoring Approach

Spectrum-based Fault Localization: A Pair Scoring Approach Journal of Industrial and Intelligent Information Vol. 1, No. 4, December 2013 Spectrum-based Fault Localization: A Pair Scoring Approach Patrick Daniel and Kwan Yong Sim Faculty of Engineering, Computing

More information

REPAIRING PROGRAMS WITH SEMANTIC CODE SEARCH. Yalin Ke Kathryn T. Stolee Claire Le Goues Yuriy Brun

REPAIRING PROGRAMS WITH SEMANTIC CODE SEARCH. Yalin Ke Kathryn T. Stolee Claire Le Goues Yuriy Brun REPAIRING PROGRAMS WITH SEMANTIC CODE SEARCH Yalin Ke Kathryn T. Stolee Claire Le Goues Yuriy Brun Iowa State Iowa State Carnegie Mellon UMass Amherst 1 Input: buggy program, tests Output: fixed program

More information

ASTOR: A Program Repair Library for Java

ASTOR: A Program Repair Library for Java ASTOR: A Program Repair Library for Java Matias Martinez University of Lugano, Switzerland Martin Monperrus University of Lille & Inria, France ABSTRACT During the last years, the software engineering

More information

Constraint Handling. Fernando Lobo. University of Algarve

Constraint Handling. Fernando Lobo. University of Algarve Constraint Handling Fernando Lobo University of Algarve Outline Introduction Penalty methods Approach based on tournament selection Decoders Repair algorithms Constraint-preserving operators Introduction

More information

CS 305j Midterm 2 Fall 2006

CS 305j Midterm 2 Fall 2006 Exam Number: Points off 1 2 3 4 5 6 Total off Net Score CS 305j Midterm 2 Fall 2006 Your Name Your UTEID Circle you TA's name: Brad Jacob Instructions: 1. Please turn off your cell phones 2. There are

More information

Programming Studio #9 ECE 190

Programming Studio #9 ECE 190 Programming Studio #9 ECE 190 Programming Studio #9 Concepts: Functions review 2D Arrays GDB Announcements EXAM 3 CONFLICT REQUESTS, ON COMPASS, DUE THIS MONDAY 5PM. NO EXTENSIONS, NO EXCEPTIONS. Functions

More information

Geometric Semantic Genetic Programming ~ Theory & Practice ~

Geometric Semantic Genetic Programming ~ Theory & Practice ~ Geometric Semantic Genetic Programming ~ Theory & Practice ~ Alberto Moraglio University of Exeter 25 April 2017 Poznan, Poland 2 Contents Evolutionary Algorithms & Genetic Programming Geometric Genetic

More information

MINIMAL EDGE-ORDERED SPANNING TREES USING A SELF-ADAPTING GENETIC ALGORITHM WITH MULTIPLE GENOMIC REPRESENTATIONS

MINIMAL EDGE-ORDERED SPANNING TREES USING A SELF-ADAPTING GENETIC ALGORITHM WITH MULTIPLE GENOMIC REPRESENTATIONS Proceedings of Student/Faculty Research Day, CSIS, Pace University, May 5 th, 2006 MINIMAL EDGE-ORDERED SPANNING TREES USING A SELF-ADAPTING GENETIC ALGORITHM WITH MULTIPLE GENOMIC REPRESENTATIONS Richard

More information

CS5401 FS2015 Exam 1 Key

CS5401 FS2015 Exam 1 Key CS5401 FS2015 Exam 1 Key This is a closed-book, closed-notes exam. The only items you are allowed to use are writing implements. Mark each sheet of paper you use with your name and the string cs5401fs2015

More information

Mutation Testing. Leaving the Stone Age

Mutation Testing. Leaving the Stone Age Mutation Testing Leaving the Stone Age 2017 whoami ios Developer by day compiler hacker by night https://twitter.com/1101_debian https://lowlevelbits.org https://systemundertest.org Outline Quality of

More information

Automatically Repairing Concurrency Bugs with ARC MUSEPAT 2013 Saint Petersburg, Russia

Automatically Repairing Concurrency Bugs with ARC MUSEPAT 2013 Saint Petersburg, Russia Automatically Repairing Concurrency Bugs with ARC MUSEPAT 2013 Saint Petersburg, Russia David Kelk, Kevin Jalbert, Jeremy S. Bradbury Faculty of Science (Computer Science) University of Ontario Institute

More information

CIS 110 Introduction to Computer Programming. February 29, 2012 Midterm

CIS 110 Introduction to Computer Programming. February 29, 2012 Midterm CIS 110 Introduction to Computer Programming February 29, 2012 Midterm Name: Recitation # (e.g. 201): Pennkey (e.g. bjbrown): My signature below certifies that I have complied with the University of Pennsylvania

More information

It is primarily checking of the code and/or manually reviewing the code or document to find errors This type of testing can be used by the developer

It is primarily checking of the code and/or manually reviewing the code or document to find errors This type of testing can be used by the developer Static testing Static testing is a software testing method that involves examination of the program's code and its associated documentation but does not require the program be executed. Dynamic testing,

More information

AUTOMATIC PROGRAM REPAIR USING GENETIC PROGRAMMING

AUTOMATIC PROGRAM REPAIR USING GENETIC PROGRAMMING AUTOMATIC PROGRAM REPAIR USING GENETIC PROGRAMMING CLAIRE LE GOUES APRIL 22, 2013 http://www.clairelegoues.com 1 GENPROG STOCHASTIC SEARCH + TEST CASE GUIDANCE = AUTOMATIC, EXPRESSIVE, SCALABLE PATCH GENERATION

More information

IMPROVING A GREEDY DNA MOTIF SEARCH USING A MULTIPLE GENOMIC SELF-ADAPTATING GENETIC ALGORITHM

IMPROVING A GREEDY DNA MOTIF SEARCH USING A MULTIPLE GENOMIC SELF-ADAPTATING GENETIC ALGORITHM Proceedings of Student/Faculty Research Day, CSIS, Pace University, May 4th, 2007 IMPROVING A GREEDY DNA MOTIF SEARCH USING A MULTIPLE GENOMIC SELF-ADAPTATING GENETIC ALGORITHM Michael L. Gargano, mgargano@pace.edu

More information

EECS 481 Software Engineering Exam #1. You have 1 hour and 20 minutes to work on the exam.

EECS 481 Software Engineering Exam #1. You have 1 hour and 20 minutes to work on the exam. EECS 481 Software Engineering Exam #1 Write your name and UM uniqname on the exam. There are ten (10) pages in this exam (including this one) and seven (7) questions, each with multiple parts. Some questions

More information

Research Article Combining Slicing and Constraint Solving for Better Debugging: The Conbas Approach

Research Article Combining Slicing and Constraint Solving for Better Debugging: The Conbas Approach Advances in Software Engineering Volume 2012, Article ID 628571, 18 pages doi:10.1155/2012/628571 Research Article Combining Slicing and Constraint Solving for Better Debugging: The Conbas Approach Birgit

More information

Evolutionary Computation, 2018/2019 Programming assignment 3

Evolutionary Computation, 2018/2019 Programming assignment 3 Evolutionary Computation, 018/019 Programming assignment 3 Important information Deadline: /Oct/018, 3:59. All problems must be submitted through Mooshak. Please go to http://mooshak.deei.fct.ualg.pt/~mooshak/

More information

Combining Two Local Searches with Crossover: An Efficient Hybrid Algorithm for the Traveling Salesman Problem

Combining Two Local Searches with Crossover: An Efficient Hybrid Algorithm for the Traveling Salesman Problem Combining Two Local Searches with Crossover: An Efficient Hybrid Algorithm for the Traveling Salesman Problem Weichen Liu, Thomas Weise, Yuezhong Wu and Qi Qi University of Science and Technology of Chine

More information

A Survey of Approaches for Automated Unit Testing. Outline

A Survey of Approaches for Automated Unit Testing. Outline A Survey of Approaches for Automated Unit Testing Peter Carr Ron Kneusel Outline Introduction/Motivation Concolic Testing Random Testing Evolutionary Testing Random/Evolutionary Experiment and Results

More information

Classification Using Genetic Programming. Patrick Kellogg General Assembly Data Science Course (8/23/15-11/12/15)

Classification Using Genetic Programming. Patrick Kellogg General Assembly Data Science Course (8/23/15-11/12/15) Classification Using Genetic Programming Patrick Kellogg General Assembly Data Science Course (8/23/15-11/12/15) Iris Data Set Iris Data Set Iris Data Set Iris Data Set Iris Data Set Create a geometrical

More information

APCS Semester #1 Final Exam Practice Problems

APCS Semester #1 Final Exam Practice Problems Name: Date: Per: AP Computer Science, Mr. Ferraro APCS Semester #1 Final Exam Practice Problems The problems here are to get you thinking about topics we ve visited thus far in preparation for the semester

More information

Crew Scheduling Problem: A Column Generation Approach Improved by a Genetic Algorithm. Santos and Mateus (2007)

Crew Scheduling Problem: A Column Generation Approach Improved by a Genetic Algorithm. Santos and Mateus (2007) In the name of God Crew Scheduling Problem: A Column Generation Approach Improved by a Genetic Algorithm Spring 2009 Instructor: Dr. Masoud Yaghini Outlines Problem Definition Modeling As A Set Partitioning

More information

2. INTRODUCTORY EXCEL

2. INTRODUCTORY EXCEL CS130 - Introductory Excel 1 2. INTRODUCTORY EXCEL Fall 2017 CS130 - Introductory Excel 2 Introduction to Excel What is Microsoft Excel? What can we do with Excel? CS130 - Introductory Excel 3 Launch Excel

More information

Introduction to Artificial Intelligence

Introduction to Artificial Intelligence Introduction to Artificial Intelligence COMP307 Evolutionary Computing 3: Genetic Programming for Regression and Classification Yi Mei yi.mei@ecs.vuw.ac.nz 1 Outline Statistical parameter regression Symbolic

More information

Spectrum Mutant. Evaluating and Improving Fault Localization

Spectrum Mutant. Evaluating and Improving Fault Localization Evaluating and Improving Fault Localization Spencer Pearson Michael Ernst Debugging is expensive Your program has a bug. What do you do? Reproduce it Locate it Focus of this talk Fix it Fault localization

More information

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt Verification (See related materials in textbook.) Outline What are the goals of verification? What are the main approaches to verification? What kind of assurance do we get through testing? How can testing

More information

Towards Practical Program Repair with On-Demand Candidate Generation

Towards Practical Program Repair with On-Demand Candidate Generation Towards Practical Program Repair with On-Demand Candidate Generation The University of Texas at Austin, USA {lisahua,mengshi.zhang,kaiyuanw,khurshid}@utexas.edu ABSTRACT Effective program repair techniques,

More information

B-Refactoring: Automatic Test Code Refactoring to Improve Dynamic Analysis

B-Refactoring: Automatic Test Code Refactoring to Improve Dynamic Analysis B-Refactoring: Automatic Test Code Refactoring to Improve Dynamic Analysis Jifeng Xuan, Benoit Cornu, Matias Martinez, Benoit Baudry, Lionel Seinturier, Martin Monperrus To cite this version: Jifeng Xuan,

More information

Genetic Programming. and its use for learning Concepts in Description Logics

Genetic Programming. and its use for learning Concepts in Description Logics Concepts in Description Artificial Intelligence Institute Computer Science Department Dresden Technical University May 29, 2006 Outline Outline: brief introduction to explanation of the workings of a algorithm

More information

Genetic Programming Prof. Thomas Bäck Nat Evur ol al ut ic o om nar put y Aling go rg it roup hms Genetic Programming 1

Genetic Programming Prof. Thomas Bäck Nat Evur ol al ut ic o om nar put y Aling go rg it roup hms Genetic Programming 1 Genetic Programming Prof. Thomas Bäck Natural Evolutionary Computing Algorithms Group Genetic Programming 1 Genetic programming The idea originated in the 1950s (e.g., Alan Turing) Popularized by J.R.

More information

Transformations. WFLP-2013 September 13, 2013

Transformations. WFLP-2013 September 13, 2013 Over WFLP-2013 September 13, 2013 Over Algorithmic Running for AD FB Informatik und Informationswissenschaft Universität Konstanz Email: claus.zinn@uni-konstanz.de WWW: http://www.inf.uni-konstanz.de/~zinn

More information

Evolutionary Algorithms. CS Evolutionary Algorithms 1

Evolutionary Algorithms. CS Evolutionary Algorithms 1 Evolutionary Algorithms CS 478 - Evolutionary Algorithms 1 Evolutionary Computation/Algorithms Genetic Algorithms l Simulate natural evolution of structures via selection and reproduction, based on performance

More information

COS 126 Midterm 1 Written Exam, Fall 2009

COS 126 Midterm 1 Written Exam, Fall 2009 NAME: login ID: precept: COS 126 Midterm 1 Written Exam, Fall 2009 This test has 8 questions, weighted as indicated. The exam is closed book, except that you are allowed to use a one page cheatsheet. No

More information

9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation

9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation Language Implementation Methods The Design and Implementation of Programming Languages Compilation Interpretation Hybrid In Text: Chapter 1 2 Compilation Interpretation Translate high-level programs to

More information

CIS 110 Introduction To Computer Programming. February 29, 2012 Midterm

CIS 110 Introduction To Computer Programming. February 29, 2012 Midterm CIS 110 Introduction To Computer Programming February 29, 2012 Midterm Name: Recitation # (e.g. 201): Pennkey (e.g. bjbrown): My signature below certifies that I have complied with the University of Pennsylvania

More information

Use of in-built functions and writing expressions

Use of in-built functions and writing expressions LECTURE SCHEDULE 9 Use of in-built functions and writing expressions In-built Functions A function is an in-built program, which is used to do a particular task. Functions take the input the input and

More information

What is Mutation Testing? Mutation Testing. Test Case Adequacy. Mutation Testing. Mutant Programs. Example Mutation

What is Mutation Testing? Mutation Testing. Test Case Adequacy. Mutation Testing. Mutant Programs. Example Mutation What is Mutation Testing? Mutation Testing Breaking the application to test it n Mutation Testing is a testing technique that focuses on measuring the adequacy of test cases n Mutation Testing is NOT a

More information

Project C: Genetic Algorithms

Project C: Genetic Algorithms Project C: Genetic Algorithms Due Wednesday April 13 th 2005 at 8pm. A genetic algorithm (GA) is an evolutionary programming technique used to solve complex minimization/maximization problems. The technique

More information

Comparative Assessment of Testing and Model Checking Using Program Mutation

Comparative Assessment of Testing and Model Checking Using Program Mutation Comparative Assessment of Testing and Using Mutation Research Talk Jeremy S. Bradbury, James R. Cordy, Juergen Dingel School of Computing! Queen s University Kingston! Ontario! Canada {bradbury, cordy,

More information

Macro Processing. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 31

Macro Processing. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 31 Macro Processing Computer Science and Engineering College of Engineering The Ohio State University Lecture 31 Introduction Macro: a notational convenience for programmers Short-hand for commonly used blocks

More information

AN INTRODUCTION TO FUZZY SETS Analysis and Design. Witold Pedrycz and Fernando Gomide

AN INTRODUCTION TO FUZZY SETS Analysis and Design. Witold Pedrycz and Fernando Gomide AN INTRODUCTION TO FUZZY SETS Analysis and Design Witold Pedrycz and Fernando Gomide A Bradford Book The MIT Press Cambridge, Massachusetts London, England Foreword - Preface Introduction xiii xxv xxi

More information

Automating Test Driven Development with Grammatical Evolution

Automating Test Driven Development with Grammatical Evolution http://excel.fit.vutbr.cz Automating Test Driven Development with Grammatical Evolution Jan Svoboda* Abstract Test driven development is a widely used process of creating software products with automated

More information

Automatically Repairing Broken Workflows for Evolving GUI Applications

Automatically Repairing Broken Workflows for Evolving GUI Applications Automatically Repairing Broken Workflows for Evolving GUI Applications Sai Zhang University of Washington Joint work with: Hao Lü, Michael D. Ernst End-user s workflow A workflow = A sequence of UI actions

More information

Automated Program Debugging Research vs. Prac7ce?

Automated Program Debugging Research vs. Prac7ce? Automated Program Debugging Research vs. Prac7ce? Franz Wotawa Technische Universität Graz Ins2tute for So7ware Technology Inffeldgasse 16b/2, 8010 Graz, Austria wotawa@ist.tugraz.at Some ques7ons asked

More information

Lecture 17. For Array Class Shenanigans

Lecture 17. For Array Class Shenanigans Lecture 17 For Array Class Shenanigans For or While? class WhileDemo { public static void main(string[] args){ int count = 1; while (count < 11) { System.out.println("Count is: " + count); count++; Note:

More information

EECS168 Exam 3 Review

EECS168 Exam 3 Review EECS168 Exam 3 Review Exam 3 Time: 2pm-2:50pm Monday Nov 5 Closed book, closed notes. Calculators or other electronic devices are not permitted or required. If you are unable to attend an exam for any

More information

Mutations for Permutations

Mutations for Permutations Mutations for Permutations Insert mutation: Pick two allele values at random Move the second to follow the first, shifting the rest along to accommodate Note: this preserves most of the order and adjacency

More information

Genetic Programming of Autonomous Agents. Functional Description and Complete System Block Diagram. Scott O'Dell

Genetic Programming of Autonomous Agents. Functional Description and Complete System Block Diagram. Scott O'Dell Genetic Programming of Autonomous Agents Functional Description and Complete System Block Diagram Scott O'Dell Advisors: Dr. Joel Schipper and Dr. Arnold Patton October 19, 2010 Introduction to Genetic

More information

Genetic Programming. Modern optimization methods 1

Genetic Programming. Modern optimization methods 1 Genetic Programming Developed in USA during 90 s Patented by J. Koza Solves typical problems: Prediction, classification, approximation, programming Properties Competitor of neural networks Need for huge

More information

Portland State University Maseeh College of Engineering and Computer Science. Proficiency Examination Process

Portland State University Maseeh College of Engineering and Computer Science. Proficiency Examination Process Portland State University Maseeh College of Engineering and Computer Science Proficiency Examination Process 2016-2017 PSU Expectations of Student Competencies Students that apply to PSU s Computer Science

More information

Using Genetic Algorithms to Solve the Box Stacking Problem

Using Genetic Algorithms to Solve the Box Stacking Problem Using Genetic Algorithms to Solve the Box Stacking Problem Jenniffer Estrada, Kris Lee, Ryan Edgar October 7th, 2010 Abstract The box stacking or strip stacking problem is exceedingly difficult to solve

More information

Leveraging Program Equivalence for Adaptive Program Repair: Models and First Results. Westley Weimer, UVA Zachary P. Fry, UVA Stephanie Forrest, UNM

Leveraging Program Equivalence for Adaptive Program Repair: Models and First Results. Westley Weimer, UVA Zachary P. Fry, UVA Stephanie Forrest, UNM Leveraging Program Equivalence for Adaptive Program Repair: Models and First Results Westley Weimer, UVA Zachary P. Fry, UVA Stephanie Forrest, UNM Automated Program Repair Given a program, a notion of

More information

COS 126 General Computer Science Fall Exam 1

COS 126 General Computer Science Fall Exam 1 COS 126 General Computer Science Fall 2005 Exam 1 This test has 9 questions worth a total of 50 points. You have 120 minutes. The exam is closed book, except that you are allowed to use a one page cheatsheet,

More information

A Comparative Study on Mutation Analysis for Java Applications

A Comparative Study on Mutation Analysis for Java Applications 1 UTM Computing Proceedings Innovation in Computing Technology and Applications Volume: 2 Year: 2017 ISBN: 978-967-0194-95-0 A Comparative Study on Mutation Analysis for Java Applications Nur Zatilzaida

More information

Question: Total Points: Score:

Question: Total Points: Score: CS 170 Exam 1 Section 000 Fall 2014 Name (print): Instructions: Keep your eyes on your own paper and do your best to prevent anyone else from seeing your work. Do NOT communicate with anyone other than

More information

6.170 Lecture 7 Abstract Data Types MIT EECS

6.170 Lecture 7 Abstract Data Types MIT EECS 6.170 Lecture 7 Abstract Data Types MIT EECS Outline 1. What is an abstract data type (ADT)? 2. How to specify an ADT immutable mutable 3. The ADT methodology 2 What is an ADT? Procedural abstraction Abstracts

More information

Testing! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6!

Testing! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6! Testing The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 6 1 Goals of this Lecture Help you learn about: Internal testing External testing General

More information

Automa'c, Efficient, and General Repair of So8ware Defects using Lightweight Program Analyses

Automa'c, Efficient, and General Repair of So8ware Defects using Lightweight Program Analyses Automa'c, Efficient, and General Repair of So8ware Defects using Lightweight Program Analyses Disserta'on Proposal Claire Le Goues September 22, 2010 So8ware Errors Are Expensive Everyday, almost 300 bugs

More information

Introduction to Scientific Modeling CS 365, Fall Semester, 2011 Genetic Algorithms

Introduction to Scientific Modeling CS 365, Fall Semester, 2011 Genetic Algorithms Introduction to Scientific Modeling CS 365, Fall Semester, 2011 Genetic Algorithms Stephanie Forrest http://cs.unm.edu/~forrest/classes/cs365 forrest@cs.unm.edu 505-277-7104 Genetic Algorithms" Principles

More information

Software security, secure programming

Software security, secure programming Software security, secure programming Fuzzing and Dynamic Analysis Master on Cybersecurity Master MoSiG Academic Year 2017-2018 Outline Fuzzing (or how to cheaply produce useful program inputs) A concrete

More information

Automated Program Repair by Using Similar Code Containing Fix Ingredients

Automated Program Repair by Using Similar Code Containing Fix Ingredients Automated Program Repair by Using Similar Code Containing Fix Ingredients Tao Ji, Liqian Chen, Xiaoguang Mao, Xin Yi College of Computer National University of Defense Technology Changsha, China jitao

More information

Programming. We will be introducing various new elements of Python and using them to solve increasingly interesting and complex problems.

Programming. We will be introducing various new elements of Python and using them to solve increasingly interesting and complex problems. Plan for the rest of the semester: Programming We will be introducing various new elements of Python and using them to solve increasingly interesting and complex problems. We saw earlier that computers

More information

Deriving Trading Rules Using Gene Expression Programming

Deriving Trading Rules Using Gene Expression Programming 22 Informatica Economică vol. 15, no. 1/2011 Deriving Trading Rules Using Gene Expression Programming Adrian VISOIU Academy of Economic Studies Bucharest - Romania Economic Informatics Department - collaborator

More information

Genetically Improved BarraCUDA

Genetically Improved BarraCUDA Genetically Improved BarraCUDA CREST Annual Research Review: Recent Results and Research Trends 15-16 th June 2015 W. B. Langdon Department of Computer Science 15.6.2015 Genetically Improved BarraCUDA

More information

Genetic.io. Genetic Algorithms in all their shapes and forms! Genetic.io Make something of your big data

Genetic.io. Genetic Algorithms in all their shapes and forms! Genetic.io Make something of your big data Genetic Algorithms in all their shapes and forms! Julien Sebrien Self-taught, passion for development. Java, Cassandra, Spark, JPPF. @jsebrien, julien.sebrien@genetic.io Distribution of IT solutions (SaaS,

More information

Search-Based Software Engineering: Foundations and Recent Applications

Search-Based Software Engineering: Foundations and Recent Applications Search-Based Software Engineering: Foundations and Recent Applications Ali Ouni Software Engineering Lab, Osaka University, Japan 5th Asian Workshop of Advanced Software Engineering (AWASE 16), 19-20 March,

More information