Steven Davies Marc Roper Department of Computer and Information Sciences University of Strathclyde. International Workshop on Program Debugging, 2013

Size: px
Start display at page:

Download "Steven Davies Marc Roper Department of Computer and Information Sciences University of Strathclyde. International Workshop on Program Debugging, 2013"

Transcription

1 1/22 Bug localisation through diverse sources of information Steven Davies Marc Roper Department of Computer and Information Sciences University of Strathclyde International Workshop on Program Debugging, 2013

2 2/22 Introduction Developers can spend up to 50% of their time on bug-fixing and maintenance, and often a large part is locating where the bug is Given a bug report, bug localisation tools present developers with recommendations for where the bug is likely to be located The aim is to reduce the time, and therefore the cost, spent on fixing bugs

3 Bug localisation 3/22

4 3/22 Bug localisation I just updated to pre 10 from pre 9 and my perl Syntax coloring is now messed up. It seems that escaped double quotes within double quoted strings are messing up my matches (and they weren t before). This is causing all kinds of colorization issues. How can I correct this (which file do I look at). and is there a simple way to put the perl mode back to pre9 and keep pre 10 installed? I have looked for the file and not had any luck. Thanks

5 3/22 Bug localisation ParserRule.ParserRule() ParserRule.createEOLSpanRule() ParserRule.createEscapeRule() ParserRule.createMarkFollowingRule() ParserRule.createMarkPreviousRule() ParserRule.createRegexpEOLSpanRule() ParserRule.createRegexpSequenceRule() ParserRule.createRegexpSpanRule() ParserRule.createSequenceRule() ParserRule.createSpanRule() ParserRule.toString() ParserRuleSet.setEscapeRule() TokenMarker.LineContext.LineContext()...

6 4/22 Bug localisation Existing bug localisation techniques are somewhat effective but often first relevant method shown is vastly outwith those a developer would realistically examine Still not widely used, and no existing implementations We aim to improve the performance of existing bug localisation techniques by adding multiple additional novel sources of information Previous bug fixes Buggy methods Stack traces Others in future

7 5/22 Existing source code approach First, each method in the system is extracted, including comments public LineContext marktokens(linecontext,tokenhandler,segment) //\{\{\{ Set up some instance variables // this is to avoid having to pass around lots and lots of // parameters. this. tokenhandler = tokenhandler ; this. line = line ; lastoffset = line. offset ; linelength = line. count + line. offset ; context = new LineContext () ;...

8 5/22 Existing source code approach Terms are split up on changes in case or punctuation, and common stop-words are removed TokenMarker.markTokens(LineContext,TokenHandler,Segment) around avoid context count handler having instance last length line lots new offset parameters pass set token up variables...

9

10

11 5/22 Existing source code approach The description is pre-processed in the same way and submitted as a query Bug accepted brackets curly documented handle html http like only operators org patch perl perldoc perlop quote round section slash without xml...

12 5/22 Existing source code approach The similarity of each method is calculated (Currently we use cosine similarity and TF-IDF) Bug accepted brackets curly documented handle html http like only operators org patch perl perldoc perlop quote round section slash without xml

13 5/22 Existing source code approach The methods are presented to the developer in order Bug XmlParser.setHandler(XmlHandler) 0.7 jedit.getinputhandler() 0.6 TokenMarker.markTokens(LineContext,TokenHandler,Segment

14 6/22 Additional sources of information In previous work, we used a classifier to partition methods that had been involved in previous similar bug fixes, before sorting them according to the source code approach We now aim to also add in information from: Buggy methods Stack traces None of these are widely applicable, and are probably less accurate than source code approach Combining multiple sources should lead to more accurate performance than any single source of information Each individually outputs a probability for each method of it being related to a particular bug

15 7/22 Previous bug fixes For each method in the system we train a classifier to answer a simple question: Is this new bug related to this method? Training is based on the text of the bugs related to the method, not the text of the method itself Classifiers are updated whenever new bugs are fixed, identified through commit comments

16 8/22 Previous bug fixes We create an empty classifier for each method in the system TokenMarker.markTokens(LineContext,TokenHandler,Segment) N

17 8/22 Previous bug fixes When bugs fixed, relevant methods updated with bug description Bug abnormal adjustments appears attachment basically behaviour calculated component correctly determined dialog display displayed... TokenMarker.markTokens(LineContext,TokenHandler,Segment) Y N

18 8/22 Previous bug fixes The classifiers grow as more bugs are fixed Bug after append appendrows autosizecolumn before bug causes code command ctrl data else example filename found getnumberrows... TokenMarker.markTokens(LineContext,TokenHandler,Segment) Y Y N

19 8/22 Previous bug fixes Classifiers are also updated with which bugs were not related Bug appears can changed class click clicking default list model delete double edit entered entries history text insert limited list model... TokenMarker.markTokens(LineContext,TokenHandler,Segment) Y N Y N

20 8/22 Previous bug fixes When bugs are reported description is submitted as a query Bug accepted brackets curly documented handle html http like only operators org patch perl perldoc perlop quote round section slash...

21 8/22 Previous bug fixes Each classifier predicts probability of bug being related to method Bug accepted brackets curly documented handle html http like only operators org patch perl perldoc perlop quote round section slash

22 9/22 Buggy methods Previous work has shown the methods with bugs in them are more likely to have bugs in future We exploit this by simply ranking methods which have had more bugs as being more likely to be related to the current bug Probability output is the number of bugs related to the method, divided by the total number of bugs to-date Note that this is not specific to a bug report: at any given time, the same values will be returned regardless of the contents of the bug report

23 10/22 Stack traces Work by other researchers has shown that when stack traces are given in bug reports, usually at least one method in the stack trace has to be changed to fix the bug Also, the higher up the stack trace, the more likely it is the method is involved Where bug reports have stack traces, we output a value based on the position of the method in the stack trace

24 11/22 Combining results Results are combined in a weighted linear manner Source Bug Count Stack Result Method 1 Method 2 Method 3 Method 4 Weight

25 11/22 Combining results When a bug is reported, values are obtained for each method Source Bug Count Stack Result Method Method Method Method Weight

26 11/22 Combining results These are multiplied by the weights and summed Source Bug Count Stack Result Method Method Method Method Weight

27 11/22 Combining results The process is repeated for other bugs Source Bug Count Stack Result Method Method Method Method Weight

28 11/22 Combining results The process is repeated for other bugs Source Bug Count Stack Result Method Method Method Method Weight

29 11/22 Combining results When a bug is fixed, the list of methods involved is obtained Source Bug Count Stack Result Method Method Method Method Weight

30 11/22 Combining results These are used to update the weights for future bugs Source Bug Count Stack Result Method Method Method Method Weight

31 12/22 Combining results In this manner, we should learn which sources of information for a project are most accurate Matches the way a tool would be used in practice Currently uses a linear regression, but this is unlikely to be the best technique

32 13/22 Evaluation Evaluated technique on three open-source projects: Ant: 925 bugs and methods JMeter: 160 bugs and 9444 methods JodaTime: 58 bugs and methods Measured the position of the first method presented in the list which was actually changed to fix the bug Compared the results to the original source code approach, as this performs better than any other individual approach, and is the most widely used in other research

33 14/22 Ant bug Summary: NPE in JDependTask if forked First relevant method returned by source code approach is org. apache.tools.ant.taskdefs.optional.jdepend. JDependTask.executeAsForked(CommandlineJava, ExecuteWatchdog) in position 52 Individually, the other sources of information put this method at positions 5658, 6779 and 2 When the information is combined however, the position of the method improves to 1

34 15/22 JMeter bug Summary: StatCalculator.addAll(StatCalculator<T> calc) joins incorrect if there are more samples with the same response time in one of the TreeMap First relevant method returned by source code approach is org. apache.jorphan.math.statcalculator.addvalue( Number,int) in position 1 However, as the other evaluators all rank this method much lower, the position of the method falls to 9703

35 16/22 Results In total for the combined approach 399 bugs improved their position over the text approach, by an average of 33 places Ant JMeter JodaTime 1000 Comb Text 10

36 16/22 Results 396 bugs got worse, but the amount they did so by was smaller, an average of 10 places Ant JMeter JodaTime 1000 Comb Text 10

37 17/22 Results Bugs where the first relevant method was in position 1 increased from 98 to Comb 1 Comb <=10 Comb <=100 Comb <=1000 Comb >1000 Text 1 Text <=10 Text <=100 Text <=1000 Text >1000

38 17/22 Results And in the top-10 from 271 to Comb 1 Comb <=10 Comb <=100 Comb <=1000 Comb >1000 Text 1 Text <=10 Text <=100 Text <=1000 Text >1000

39 17/22 Results Most of the improvement comes from Ant Ant JMeter JodaTime Comb 1 Comb <=10 Comb <=100 Comb <=1000 Comb >1000 Text 1 Text <=10 Text <=100 Text <=1000 Text >1000

40 17/22 Results Changes are less pronounced for JMeter, and no real improvement for JodaTime 0 JMeter JodaTime 150 Comb 1 Comb <=10 Comb <= Comb <=1000 Comb >1000 Text 1 50 Text <=10 Text <=100 Text <=1000 Text >1000

41 18/22 Results Also measured change in mean reciprocal rank (the inverse of the position of the first relevant method) Mean reciprocal rank rose for all 3 projects Text Comb Ant JMeter JodaTime

42 19/22 Future work: Other sources of information This work has only examined taking in four sources of information Design is extensible however, and there are multiple additional sources that could be used Test coverage Are methods with low test coverage more likely to contain bugs? Error logs Similar to stack traces Metrics & static analysis warnings

43 20/22 Future work: Combining sources This work combined sources of information using linear regression This is simple, and easy to interpret, aiding experimentation, but unlikely to be best method Data is not likely to be independent Exploring other methods of combining input, such as machine learning techniques

44 21/22 Future work: Implementation Overall aim is to implement a bug localisation tool Crucial to test whether this research is actually useful, and if assumptions are valid Proposed integration with bug tracking systems, to show developers a list of locations as they examine a bug Integrate with continuous integration systems, to update data whenever new bugs are fixed

45 22/22 Summary Used multiple sources of information to improve on textual bug localisation techniques Evaluated 1143 bugs from 3 projects Improved mean reciprocal rank for all projects Increased the number of bugs where the first relevant method is at position 1 from 98 to 132 Thank You Steven.Davies@cis.strath.ac.uk

Basic Tokenizing, Indexing, and Implementation of Vector-Space Retrieval

Basic Tokenizing, Indexing, and Implementation of Vector-Space Retrieval Basic Tokenizing, Indexing, and Implementation of Vector-Space Retrieval 1 Naïve Implementation Convert all documents in collection D to tf-idf weighted vectors, d j, for keyword vocabulary V. Convert

More information

Mapping Bug Reports to Relevant Files and Automated Bug Assigning to the Developer Alphy Jose*, Aby Abahai T ABSTRACT I.

Mapping Bug Reports to Relevant Files and Automated Bug Assigning to the Developer Alphy Jose*, Aby Abahai T ABSTRACT I. International Journal of Scientific Research in Computer Science, Engineering and Information Technology 2018 IJSRCSEIT Volume 3 Issue 1 ISSN : 2456-3307 Mapping Bug Reports to Relevant Files and Automated

More information

6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5.

6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5. Page 1 of 5 6.170 Laboratory in Software Engineering Java Style Guide Contents: Overview Descriptive names Consistent indentation and spacing Informative comments Commenting code TODO comments 6.170 Javadocs

More information

5/19/2015. Objectives. JavaScript, Sixth Edition. Understanding Syntax Errors. Introduction to Debugging. Handling Run-Time Errors

5/19/2015. Objectives. JavaScript, Sixth Edition. Understanding Syntax Errors. Introduction to Debugging. Handling Run-Time Errors Objectives JavaScript, Sixth Edition Chapter 4 Debugging and Error Handling When you complete this chapter, you will be able to: Recognize error types Trace errors with dialog boxes and the console Use

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

CSE 565 Computer Security Fall 2018

CSE 565 Computer Security Fall 2018 CSE 565 Computer Security Fall 2018 Lecture 16: Building Secure Software Department of Computer Science and Engineering University at Buffalo 1 Review A large number of software vulnerabilities various

More information

Where Should the Bugs Be Fixed?

Where Should the Bugs Be Fixed? Where Should the Bugs Be Fixed? More Accurate Information Retrieval-Based Bug Localization Based on Bug Reports Presented by: Chandani Shrestha For CS 6704 class About the Paper and the Authors Publication

More information

Pathologically Eclectic Rubbish Lister

Pathologically Eclectic Rubbish Lister Pathologically Eclectic Rubbish Lister 1 Perl Design Philosophy Author: Reuben Francis Cornel perl is an acronym for Practical Extraction and Report Language. But I guess the title is a rough translation

More information

Name: Class: Date: 2. Today, a bug refers to any sort of problem in the design and operation of a program.

Name: Class: Date: 2. Today, a bug refers to any sort of problem in the design and operation of a program. Name: Class: Date: Chapter 6 Test Bank True/False Indicate whether the statement is true or false. 1. You might be able to write statements using the correct syntax, but be unable to construct an entire,

More information

A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies

A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies Diego Cavalcanti 1, Dalton Guerrero 1, Jorge Figueiredo 1 1 Software Practices Laboratory (SPLab) Federal University of Campina

More information

Semantic Estimation for Texts in Software Engineering

Semantic Estimation for Texts in Software Engineering Semantic Estimation for Texts in Software Engineering 汇报人 : Reporter:Xiaochen Li Dalian University of Technology, China 大连理工大学 2016 年 11 月 29 日 Oscar Lab 2 Ph.D. candidate at OSCAR Lab, in Dalian University

More information

Ranking Algorithms For Digital Forensic String Search Hits

Ranking Algorithms For Digital Forensic String Search Hits DIGITAL FORENSIC RESEARCH CONFERENCE Ranking Algorithms For Digital Forensic String Search Hits By Nicole Beebe and Lishu Liu Presented At The Digital Forensic Research Conference DFRWS 2014 USA Denver,

More information

Information Retrieval (IR) Introduction to Information Retrieval. Lecture Overview. Why do we need IR? Basics of an IR system.

Information Retrieval (IR) Introduction to Information Retrieval. Lecture Overview. Why do we need IR? Basics of an IR system. Introduction to Information Retrieval Ethan Phelps-Goodman Some slides taken from http://www.cs.utexas.edu/users/mooney/ir-course/ Information Retrieval (IR) The indexing and retrieval of textual documents.

More information

Information Retrieval. (M&S Ch 15)

Information Retrieval. (M&S Ch 15) Information Retrieval (M&S Ch 15) 1 Retrieval Models A retrieval model specifies the details of: Document representation Query representation Retrieval function Determines a notion of relevance. Notion

More information

Chapter 2. Architecture of a Search Engine

Chapter 2. Architecture of a Search Engine Chapter 2 Architecture of a Search Engine Search Engine Architecture A software architecture consists of software components, the interfaces provided by those components and the relationships between them

More information

Relevancy Workbench Module. 1.0 Documentation

Relevancy Workbench Module. 1.0 Documentation Relevancy Workbench Module 1.0 Documentation Created: Table of Contents Installing the Relevancy Workbench Module 4 System Requirements 4 Standalone Relevancy Workbench 4 Deploy to a Web Container 4 Relevancy

More information

Home Page. Title Page. Page 1 of 14. Go Back. Full Screen. Close. Quit

Home Page. Title Page. Page 1 of 14. Go Back. Full Screen. Close. Quit Page 1 of 14 Retrieving Information from the Web Database and Information Retrieval (IR) Systems both manage data! The data of an IR system is a collection of documents (or pages) User tasks: Browsing

More information

Integrated Software Environment. Part 2

Integrated Software Environment. Part 2 Integrated Software Environment Part 2 Operating Systems An operating system is the most important software that runs on a computer. It manages the computer's memory, processes, and all of its software

More information

CSCI 305 Concepts of Programming Languages. Programming Lab 1

CSCI 305 Concepts of Programming Languages. Programming Lab 1 CSCI 305 Concepts of Programming Languages Programming Lab 1 Perl: For this lab you will need to learn and use Perl. (You have seen a few examples in class, but you do need to learn more on Perl to finish

More information

psed [-an] script [file...] psed [-an] [-e script] [-f script-file] [file...]

psed [-an] script [file...] psed [-an] [-e script] [-f script-file] [file...] NAME SYNOPSIS DESCRIPTION OPTIONS psed - a stream editor psed [-an] script [file...] psed [-an] [-e script] [-f script-file] [file...] s2p [-an] [-e script] [-f script-file] A stream editor reads the input

More information

HW 10 STAT 672, Summer 2018

HW 10 STAT 672, Summer 2018 HW 10 STAT 672, Summer 2018 1) (0 points) Do parts (a), (b), (c), and (e) of Exercise 2 on p. 298 of ISL. 2) (0 points) Do Exercise 3 on p. 298 of ISL. 3) For this problem, try to use the 64 bit version

More information

CS251 Programming Languages Handout # 47 Prof. Lyn Turbak May 22, 2005 Wellesley College. Scheme

CS251 Programming Languages Handout # 47 Prof. Lyn Turbak May 22, 2005 Wellesley College. Scheme CS251 Programming Languages Handout # 47 Prof. Lyn Turbak May 22, 2005 Wellesley College 1 Scheme Overview Scheme Scheme is a block-structured, lexically-scoped, properly tail-recursive dialect of Lisp

More information

Information Retrieval

Information Retrieval Natural Language Processing SoSe 2015 Information Retrieval Dr. Mariana Neves June 22nd, 2015 (based on the slides of Dr. Saeedeh Momtazi) Outline Introduction Indexing Block 2 Document Crawling Text Processing

More information

SphinxQL Query Builder. Release 1.0.0

SphinxQL Query Builder. Release 1.0.0 SphinxQL Query Builder Release 1.0.0 Oct 12, 2018 Contents 1 Introduction 1 1.1 Compatiblity............................................... 1 2 CHANGELOG 3 2.1 What s New in 1.0.0...........................................

More information

You are reading an online chapter for Optimizing ColdFusion 5 by Chris

You are reading an online chapter for Optimizing ColdFusion 5 by Chris APPENDIX B 1 2 Optimizing ColdFusion 5 You are reading an online chapter for Optimizing ColdFusion 5 by Chris Cortes (Osborne/McGraw-Hill, 2001). This online chapter is intended to supplement the printed

More information

Natural Language Processing

Natural Language Processing Natural Language Processing Information Retrieval Potsdam, 14 June 2012 Saeedeh Momtazi Information Systems Group based on the slides of the course book Outline 2 1 Introduction 2 Indexing Block Document

More information

CMPSCI 646, Information Retrieval (Fall 2003)

CMPSCI 646, Information Retrieval (Fall 2003) CMPSCI 646, Information Retrieval (Fall 2003) Midterm exam solutions Problem CO (compression) 1. The problem of text classification can be described as follows. Given a set of classes, C = {C i }, where

More information

Problem 1: Complexity of Update Rules for Logistic Regression

Problem 1: Complexity of Update Rules for Logistic Regression Case Study 1: Estimating Click Probabilities Tackling an Unknown Number of Features with Sketching Machine Learning for Big Data CSE547/STAT548, University of Washington Emily Fox January 16 th, 2014 1

More information

Enterprise Reporting -- APEX

Enterprise Reporting -- APEX Quick Reference Enterprise Reporting -- APEX This Quick Reference Guide documents Oracle Application Express (APEX) as it relates to Enterprise Reporting (ER). This is not an exhaustive APEX documentation

More information

Automated Tagging for Online Q&A Forums

Automated Tagging for Online Q&A Forums 1 Automated Tagging for Online Q&A Forums Rajat Sharma, Nitin Kalra, Gautam Nagpal University of California, San Diego, La Jolla, CA 92093, USA {ras043, nikalra, gnagpal}@ucsd.edu Abstract Hashtags created

More information

HW 10 STAT 472, Spring 2018

HW 10 STAT 472, Spring 2018 HW 10 STAT 472, Spring 2018 1) (0 points) Do parts (a), (b), (c), and (e) of Exercise 2 on p. 298 of ISL. 2) (0 points) Do Exercise 3 on p. 298 of ISL. 3) For this problem, you can merely submit the things

More information

In = number of words appearing exactly n times N = number of words in the collection of words A = a constant. For example, if N=100 and the most

In = number of words appearing exactly n times N = number of words in the collection of words A = a constant. For example, if N=100 and the most In = number of words appearing exactly n times N = number of words in the collection of words A = a constant. For example, if N=100 and the most common word appears 10 times then A = rn*n/n = 1*10/100

More information

Information Retrieval

Information Retrieval Natural Language Processing SoSe 2014 Information Retrieval Dr. Mariana Neves June 18th, 2014 (based on the slides of Dr. Saeedeh Momtazi) Outline Introduction Indexing Block 2 Document Crawling Text Processing

More information

Task Description: Finding Similar Documents. Document Retrieval. Case Study 2: Document Retrieval

Task Description: Finding Similar Documents. Document Retrieval. Case Study 2: Document Retrieval Case Study 2: Document Retrieval Task Description: Finding Similar Documents Machine Learning for Big Data CSE547/STAT548, University of Washington Sham Kakade April 11, 2017 Sham Kakade 2017 1 Document

More information

FOR0383 Software Quality Assurance

FOR0383 Software Quality Assurance This method seems much, much bigger than all the other methods. FOR0383 Software Quality Assurance Lecture 15 Code metrics "You cannot control what you cannot measure." Tom DeMarco 2/11/2009 Dr Andy Brooks

More information

What Causes My Test Alarm? Automatic Cause Analysis for Test Alarms in System and Integration Testing

What Causes My Test Alarm? Automatic Cause Analysis for Test Alarms in System and Integration Testing The 39th International Conference on Software Engineering What Causes My Test Alarm? Automatic Cause Analysis for Test Alarms in System and Integration Testing Authors: He Jiang 汇报人 1, Xiaochen Li : 1,

More information

Release notes for version 3.7.2

Release notes for version 3.7.2 Release notes for version 3.7.2 Important! Create a backup copy of your projects before updating to the new version. Projects saved in the new version can t be opened in versions earlier than 3.7. Breaking

More information

Question 1. Notes on the Exam. Today. Comp 104: Operating Systems Concepts 11/05/2015. Revision Lectures

Question 1. Notes on the Exam. Today. Comp 104: Operating Systems Concepts 11/05/2015. Revision Lectures Comp 104: Operating Systems Concepts Revision Lectures Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects you want to know about??? 1

More information

After completing this appendix, you will be able to:

After completing this appendix, you will be able to: 1418835463_AppendixA.qxd 5/22/06 02:31 PM Page 879 A P P E N D I X A A DEBUGGING After completing this appendix, you will be able to: Describe the types of programming errors Trace statement execution

More information

Programming Languages & Translators. XML Document Manipulation Language (XDML) Language Reference Manual

Programming Languages & Translators. XML Document Manipulation Language (XDML) Language Reference Manual Programming Languages & Translators (COMS W4115) Department of Computer Science Columbia University Summer 2007 XML Document Manipulation Language (XDML) Language Reference Manual Luba Leyzerenok ll2310@columbia.edu

More information

Testing and Debugging

Testing and Debugging Testing and Debugging (Reminder) Zuul Assignment Two deliverables: Code (to your submission folder by 23:59) Report (to your submission folder or hard copy to the CAS office by 4pm) Deadline is Tuesday,

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 08 Tutorial 2, Part 2, Facebook API (Refer Slide Time: 00:12)

More information

Java Bytecode (binary file)

Java Bytecode (binary file) Java is Compiled Unlike Python, which is an interpreted langauge, Java code is compiled. In Java, a compiler reads in a Java source file (the code that we write), and it translates that code into bytecode.

More information

Automated Debugging of Bad Deployments. Joe Gordon 3/13/2017

Automated Debugging of Bad Deployments. Joe Gordon 3/13/2017 Automated Debugging of Bad Deployments SRECon17 Joe Gordon 3/13/2017 Problem Bad Deploy Bad code is being deployed and the success rate drops. Where is the bad code? Bad Deploy Bad code is being deployed

More information

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams Three General Principles of QA COMP 4004 Fall 2008 Notes Adapted from Dr. A. Williams Software Quality Assurance Lec2 1 Three General Principles of QA Know what you are doing. Know what you should be doing.

More information

Instructor: Stefan Savev

Instructor: Stefan Savev LECTURE 2 What is indexing? Indexing is the process of extracting features (such as word counts) from the documents (in other words: preprocessing the documents). The process ends with putting the information

More information

Main concepts to be covered. Testing and Debugging. Code snippet of the day. Results. Testing Debugging Test automation Writing for maintainability

Main concepts to be covered. Testing and Debugging. Code snippet of the day. Results. Testing Debugging Test automation Writing for maintainability Main concepts to be covered Testing and Debugging Testing Debugging Test automation Writing for maintainability 4.0 Code snippet of the day public void test() { int sum = 1; for (int i = 0; i

More information

# Extract the initial substring of $text that is delimited by # two (unescaped) instances of the first character in $delim.

# Extract the initial substring of $text that is delimited by # two (unescaped) instances of the first character in $delim. NAME SYNOPSIS Text::Balanced - Extract delimited text sequences from strings. use Text::Balanced qw ( extract_delimited extract_bracketed extract_quotelike extract_codeblock extract_variable extract_tagged

More information

Notes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers)

Notes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers) Comp 104:Operating Systems Concepts Revision Lectures (separate questions and answers) Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects

More information

LucidWorks: Searching with curl October 1, 2012

LucidWorks: Searching with curl October 1, 2012 LucidWorks: Searching with curl October 1, 2012 1. Module name: LucidWorks: Searching with curl 2. Scope: Utilizing curl and the Query admin to search documents 3. Learning objectives Students will be

More information

QDA Miner. Addendum v2.0

QDA Miner. Addendum v2.0 QDA Miner Addendum v2.0 QDA Miner is an easy-to-use qualitative analysis software for coding, annotating, retrieving and reviewing coded data and documents such as open-ended responses, customer comments,

More information

Section 4 General Factorial Tutorials

Section 4 General Factorial Tutorials Section 4 General Factorial Tutorials General Factorial Part One: Categorical Introduction Design-Ease software version 6 offers a General Factorial option on the Factorial tab. If you completed the One

More information

Comp 204: Computer Systems and Their Implementation. Lecture 25a: Revision Lectures (separate questions and answers)

Comp 204: Computer Systems and Their Implementation. Lecture 25a: Revision Lectures (separate questions and answers) Comp 204: Computer Systems and Their Implementation Lecture 25a: Revision Lectures (separate questions and answers) 1 Today Here are a sample of questions that could appear in the exam Please LET ME KNOW

More information

Text Analytics. Index-Structures for Information Retrieval. Ulf Leser

Text Analytics. Index-Structures for Information Retrieval. Ulf Leser Text Analytics Index-Structures for Information Retrieval Ulf Leser Content of this Lecture Inverted files Storage structures Phrase and proximity search Building and updating the index Using a RDBMS Ulf

More information

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines. Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of

More information

Introduction to Prometheus Mediator

Introduction to Prometheus Mediator Introduction to Prometheus Mediator What is Prometheus A data integration system capable of supporting Global-As-View Local-As-View Different types of data sources Wrappers, databases, web services Geospatial

More information

ACT-R RPC Interface Documentation. Working Draft Dan Bothell

ACT-R RPC Interface Documentation. Working Draft Dan Bothell AC-R RPC Interface Documentation Working Draft Dan Bothell Introduction his document contains information about a new feature available with the AC-R 7.6 + software. here is now a built-in RPC (remote

More information

Base and Advance SAS

Base and Advance SAS Base and Advance SAS BASE SAS INTRODUCTION An Overview of the SAS System SAS Tasks Output produced by the SAS System SAS Tools (SAS Program - Data step and Proc step) A sample SAS program Exploring SAS

More information

Testing, code coverage and static analysis. COSC345 Software Engineering

Testing, code coverage and static analysis. COSC345 Software Engineering Testing, code coverage and static analysis COSC345 Software Engineering Outline Various testing processes ad hoc / formal / automatic Unit tests and test driven development Code coverage metrics Integration

More information

Compilation and Execution Simplifying Fractions. Loops If Statements. Variables Operations Using Functions Errors

Compilation and Execution Simplifying Fractions. Loops If Statements. Variables Operations Using Functions Errors First Program Compilation and Execution Simplifying Fractions Loops If Statements Variables Operations Using Functions Errors C++ programs consist of a series of instructions written in using the C++ syntax

More information

COMP 250 Fall recurrences 2 Oct. 13, 2017

COMP 250 Fall recurrences 2 Oct. 13, 2017 COMP 250 Fall 2017 15 - recurrences 2 Oct. 13, 2017 Here we examine the recurrences for mergesort and quicksort. Mergesort Recall the mergesort algorithm: we divide the list of things to be sorted into

More information

Information Retrieval

Information Retrieval Information Retrieval WS 2016 / 2017 Lecture 2, Tuesday October 25 th, 2016 (Ranking, Evaluation) Prof. Dr. Hannah Bast Chair of Algorithms and Data Structures Department of Computer Science University

More information

MICROSOFT VISUAL STUDIO AND C PROGRAMMING

MICROSOFT VISUAL STUDIO AND C PROGRAMMING MICROSOFT VISUAL STUDIO AND C PROGRAMMING Aims 1. Learning primary functions of Microsoft Visual Studio 2. Introduction to C Programming 3. Running C programs using Microsoft Visual Studio In this experiment

More information

Subject : Computer Science. Paper : Software Quality Management. Module : CASE Tools

Subject : Computer Science. Paper : Software Quality Management. Module : CASE Tools e-pg Pathshala Subject : Computer Science Paper : Software Quality Management Module : CASE Tools Module No: Quadrant 1: CS/SQM/26 e-text An increasing variety of specialized computerized tools (actually

More information

Question Marks 1 /20 2 /16 3 /7 4 /10 5 /16 6 /7 7 /24 Total /100

Question Marks 1 /20 2 /16 3 /7 4 /10 5 /16 6 /7 7 /24 Total /100 CSC 460/660, Midterm March 14, 2005 Name: Student ID: Signature: You have 75 minutes to write the 7 questions on this examination. A total of 100 marks is available. Justify all of your answers You may

More information

Full Stack Web Developer Nanodegree Syllabus

Full Stack Web Developer Nanodegree Syllabus Full Stack Web Developer Nanodegree Syllabus Build Complex Web Applications Before You Start Thank you for your interest in the Full Stack Web Developer Nanodegree! In order to succeed in this program,

More information

Search Engines. Information Retrieval in Practice

Search Engines. Information Retrieval in Practice Search Engines Information Retrieval in Practice All slides Addison Wesley, 2008 Web Crawler Finds and downloads web pages automatically provides the collection for searching Web is huge and constantly

More information

Midterm 2. Read all of the following information before starting the exam:

Midterm 2. Read all of the following information before starting the exam: Midterm 2 ECE 608 April 7, 2004, 7-9pm Name: Read all of the following information before starting the exam: NOTE: Unanswered questions are worth 30% credit, rounded down. Writing any answer loses this

More information

with TestComplete 12 Desktop, Web, and Mobile Testing Tutorials

with TestComplete 12 Desktop, Web, and Mobile Testing Tutorials with TestComplete 12 Desktop, Web, and Mobile Testing Tutorials 2 About the Tutorial With TestComplete, you can test applications of three major types: desktop, web and mobile: Desktop applications - these

More information

Part III Appendices 165

Part III Appendices 165 Part III Appendices 165 Appendix A Technical Instructions Learning Outcomes This material will help you learn how to use the software you need to do your work in this course. You won t be tested on it.

More information

Cisco IOS Shell. Finding Feature Information. Prerequisites for Cisco IOS.sh. Last Updated: December 14, 2012

Cisco IOS Shell. Finding Feature Information. Prerequisites for Cisco IOS.sh. Last Updated: December 14, 2012 Cisco IOS Shell Last Updated: December 14, 2012 The Cisco IOS Shell (IOS.sh) feature provides shell scripting capability to the Cisco IOS command-lineinterface (CLI) environment. Cisco IOS.sh enhances

More information

4 Hash-Based Indexing

4 Hash-Based Indexing 4 Hash-Based Indexing We now turn to a different family of index structures: hash indexes. Hash indexes are unbeatable when it comes to equality selections, e.g. SELECT FROM WHERE R A = k. If we carefully

More information

Review of Fundamentals

Review of Fundamentals Review of Fundamentals 1 The shell vi General shell review 2 http://teaching.idallen.com/cst8207/14f/notes/120_shell_basics.html The shell is a program that is executed for us automatically when we log

More information

Introduction to Problem Solving and Programming in Python.

Introduction to Problem Solving and Programming in Python. Introduction to Problem Solving and Programming in Python http://cis-linux1.temple.edu/~tuf80213/courses/temple/cis1051/ Overview Types of errors Testing methods Debugging in Python 2 Errors An error in

More information

InteGrade Pro Version 9.3

InteGrade Pro Version 9.3 InteGrade Pro Version 9.3 NEW FEATURES Revised August, 2006-1 - New Features in InteGrade Pro 9.3 InteGrade Pro 9.3 is a fairly major release of the grade book software. It has several new features and

More information

Going nonparametric: Nearest neighbor methods for regression and classification

Going nonparametric: Nearest neighbor methods for regression and classification Going nonparametric: Nearest neighbor methods for regression and classification STAT/CSE 46: Machine Learning Emily Fox University of Washington May 3, 208 Locality sensitive hashing for approximate NN

More information

LAE Release Notes. Version 1.0

LAE Release Notes. Version 1.0 LAE 5.0.1 Release Notes Copyright THE CONTENTS OF THIS DOCUMENT ARE THE COPYRIGHT OF LIMITED. ALL RIGHTS RESERVED. THIS DOCUMENT OR PARTS THEREOF MAY NOT BE REPRODUCED IN ANY FORM WITHOUT THE WRITTEN PERMISSION

More information

Modeling Software Developer Expertise and Inexpertise to Handle Diverse Information Needs

Modeling Software Developer Expertise and Inexpertise to Handle Diverse Information Needs Modeling Software Developer Expertise and Inexpertise to Handle Diverse Information Needs Frank Lykes Claytor Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University

More information

Exercises: Instructions and Advice

Exercises: Instructions and Advice Instructions Exercises: Instructions and Advice The exercises in this course are primarily practical programming tasks that are designed to help the student master the intellectual content of the subjects

More information

IECD Institute for Entrepreneurship and Career Development Bharathidasan University, Tiruchirappalli 23.

IECD Institute for Entrepreneurship and Career Development Bharathidasan University, Tiruchirappalli 23. Subject code - CCP01 Chapt Chapter 1 INTRODUCTION TO C 1. A group of software developed for certain purpose are referred as ---- a. Program b. Variable c. Software d. Data 2. Software is classified into

More information

Computer Networks - Midterm

Computer Networks - Midterm Computer Networks - Midterm October 30, 2015 Duration: 2h15m This is a closed-book exam Please write your answers on these sheets in a readable way, in English or in French You can use extra sheets if

More information

Data Table from an Equation

Data Table from an Equation 1 Data Table from an Equation How do you create a data table from an equation - to present and export the values - to plot the data We will look at these features in SigmaPlot 1. Linear Regression 2. Regression

More information

Creating a Crosstab Query in Design View

Creating a Crosstab Query in Design View Procedures LESSON 31: CREATING CROSSTAB QUERIES Using the Crosstab Query Wizard box, click Crosstab Query Wizard. 5. In the next Crosstab Query the table or query on which you want to base the query. 7.

More information

doi: / _32

doi: / _32 doi: 10.1007/978-3-319-12823-8_32 Simple Document-by-Document Search Tool Fuwatto Search using Web API Masao Takaku 1 and Yuka Egusa 2 1 University of Tsukuba masao@slis.tsukuba.ac.jp 2 National Institute

More information

Sample Exam. Certified Tester Foundation Level

Sample Exam. Certified Tester Foundation Level Sample Exam Certified Tester Foundation Level Answer Table ASTQB Created - 2018 American Stware Testing Qualifications Board Copyright Notice This document may be copied in its entirety, or extracts made,

More information

Microsoft Access XP (2002) - Advanced Queries

Microsoft Access XP (2002) - Advanced Queries Microsoft Access XP (2002) - Advanced Queries Group/Summary Operations Change Join Properties Not Equal Query Parameter Queries Working with Text IIF Queries Expression Builder Backing up Tables Action

More information

Project #1 Computer Science 2334 Fall 2008

Project #1 Computer Science 2334 Fall 2008 Project #1 Computer Science 2334 Fall 2008 User Request: Create a Word Verification System. Milestones: 1. Use program arguments to specify a file name. 10 points 2. Use simple File I/O to read a file.

More information

Handling Warnings in the Import Blotters

Handling Warnings in the Import Blotters Handling Warnings in the Import Blotters Overview - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 How do I know if items are in warning status on a blotter? - - - - - - -

More information

OPS REVIEW [Name of Org]

OPS REVIEW [Name of Org] OPS REVIEW [Name of Org] Project Codeviation http://www.codeviation.org Presenter: Petr Zajac > (Petr.Zajac@sun.com) Petr Hřebejk > (Petr.Hrebejk@sun.com) Date: 24.5.2007 Contents Introduction to the problem

More information

Lecture 15 Software Testing

Lecture 15 Software Testing Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered

More information

Introduction to: Computers & Programming: Review prior to 1 st Midterm

Introduction to: Computers & Programming: Review prior to 1 st Midterm Introduction to: Computers & Programming: Review prior to 1 st Midterm Adam Meyers New York University Summary Some Procedural Matters Summary of what you need to Know For the Test and To Go Further in

More information

Perl and Python ESA 2007/2008. Eelco Schatborn 27 September 2007

Perl and Python ESA 2007/2008. Eelco Schatborn 27 September 2007 Perl and Python ESA 2007/2008 Eelco Schatborn eelco@os3.nl 27 September 2007 ESA: Perl Vandaag: 1. Perl introduction 2. Basic Perl: types, variables, statements,... 3. Object Oriented Perl 4. Documentation

More information

An ANTLR Grammar for Esterel

An ANTLR Grammar for Esterel An ANTLR Grammar for Esterel COMS W4115 Prof. Stephen A. Edwards Fall 2005 Columbia University Department of Computer Science ANTLR Esterel.g class EsterelParser extends Parser; file : expr EOF!; class

More information

COMP6237 Data Mining Searching and Ranking

COMP6237 Data Mining Searching and Ranking COMP6237 Data Mining Searching and Ranking Jonathon Hare jsh2@ecs.soton.ac.uk Note: portions of these slides are from those by ChengXiang Cheng Zhai at UIUC https://class.coursera.org/textretrieval-001

More information

Being a Good OSS Contributor. Jeremy Mikola

Being a Good OSS Contributor. Jeremy Mikola Being a Good OSS Contributor Jeremy Mikola Who's using open-source software? Who has ever... Posted on the mailing list or forum Collaborated in IRC Answered a question on Stack Overflow Written a technical

More information

my $full_path = can_run('wget') or warn 'wget is not installed!';

my $full_path = can_run('wget') or warn 'wget is not installed!'; NAME IPC::Cmd - finding and running system commands made easy SYNOPSIS use IPC::Cmd qw[can_run run run_forked]; my $full_path = can_run('wget') or warn 'wget is not installed!'; ### commands can be arrayrefs

More information

Data Mining. 3.3 Rule-Based Classification. Fall Instructor: Dr. Masoud Yaghini. Rule-Based Classification

Data Mining. 3.3 Rule-Based Classification. Fall Instructor: Dr. Masoud Yaghini. Rule-Based Classification Data Mining 3.3 Fall 2008 Instructor: Dr. Masoud Yaghini Outline Using IF-THEN Rules for Classification Rules With Exceptions Rule Extraction from a Decision Tree 1R Algorithm Sequential Covering Algorithms

More information

Parser Design. Neil Mitchell. June 25, 2004

Parser Design. Neil Mitchell. June 25, 2004 Parser Design Neil Mitchell June 25, 2004 1 Introduction A parser is a tool used to split a text stream, typically in some human readable form, into a representation suitable for understanding by a computer.

More information

Step through Your DATA Step: Introducing the DATA Step Debugger in SAS Enterprise Guide

Step through Your DATA Step: Introducing the DATA Step Debugger in SAS Enterprise Guide SAS447-2017 Step through Your DATA Step: Introducing the DATA Step Debugger in SAS Enterprise Guide ABSTRACT Joe Flynn, SAS Institute Inc. Have you ever run SAS code with a DATA step and the results are

More information

LING/C SC/PSYC 438/538. Lecture 3 Sandiway Fong

LING/C SC/PSYC 438/538. Lecture 3 Sandiway Fong LING/C SC/PSYC 438/538 Lecture 3 Sandiway Fong Today s Topics Homework 4 out due next Tuesday by midnight Homework 3 should have been submitted yesterday Quick Homework 3 review Continue with Perl intro

More information