Feature Location via Information Retrieval based Filtering of a Single Scenario Execution Trace

Similar documents
Using Information Retrieval to Support Software Evolution

FLAT 3 : Feature Location & Textual Tracing Tool

Feature Location via Information Retrieval based Filtering of a Single Scenario Execution Trace

Integrated Impact Analysis for Managing Software Changes. Malcom Gethers, Bogdan Dit, Huzefa Kagdi, Denys Poshyvanyk

Combining Probabilistic Ranking and Latent Semantic Indexing for Feature Identification

IMPROVING FEATURE LOCATION BY COMBINING DYNAMIC ANALYSIS AND STATIC INFERENCES

Support for Static Concept Location with sv3d

An Approach for Mapping Features to Code Based on Static and Dynamic Analysis

On the use of Relevance Feedback in IR-based Concept Location

Parallel Debugging. ª Objective. ª Contents. ª Learn the basics of debugging parallel programs

Can Better Identifier Splitting Techniques Help Feature Location?

Combining Information Retrieval and Relevance Feedback for Concept Location

A Statement Level Bug Localization Technique using Statement Dependency Graph

An Efficient Approach for Requirement Traceability Integrated With Software Repository

6 Concepts and concept location Initiation

A Heuristic-based Approach to Identify Concepts in Execution Traces

5/8/09. Tools for Finding Concerns

Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior

A Text Retrieval Approach to Recover Links among s and Source Code Classes

What's New in CDT 7.0? dominique dot toupin at ericsson dot com

CMSC 476/676 Information Retrieval Midterm Exam Spring 2014

A Survey of Feature Location Techniques

Supplement: Visual C++ Debugging

Enterprise Architect. User Guide Series. Portals. Author: Sparx Systems. Date: 19/03/2018. Version: 1.0 CREATED WITH

Enterprise Architect. User Guide Series. Portals

CORRELATING FEATURES AND CODE BY DYNAMIC

TESTING AND DEBUGGING

Latent Semantic Indexing

BEAJRockit Mission Control. Monitoring Thread Activity with the JRockit Management Console

Emacs manual:

EE 210 Lab Assignment #2: Intro to PSPICE

TopicViewer: Evaluating Remodularizations Using Semantic Clustering

SUPPLEMENTS MANAGEMENT PROGRAM v2.2 User Guide. Table of contents

Introduction to Programming (Java) 2/12

An Efficient Approach for Requirement Traceability Integrated With Software Repository

Full file at

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

Chapter 4 Introduction to Control Statements

IFS Data Migration Excel Add-In

Missing link in the automated development process DevOps Integrating TFS and SCOM. Ognjen Bajic, MVP for VS ALM, PMP, MCSD, MCTS:TFS Ekobit

Where Should the Bugs Be Fixed?

Perl (5 Days Content)

BERKELEY PAR LAB. UPC-THRILLE Demo. Chang-Seo Park

INFSCI 2140 Information Storage and Retrieval Lecture 2: Models of Information Retrieval: Boolean model. Final Group Projects

NetBeans Tutorial. For Introduction to Java Programming By Y. Daniel Liang. This tutorial applies to NetBeans 6, 7, or a higher version.

Identifiers. Identifiers are the words a programmer uses in a program Some identifiers are already defined. Some are made up by the programmer:

Effective Latent Space Graph-based Re-ranking Model with Global Consistency

Enterprise Architect. User Guide Series. Portals

Debugging with TotalView

Context-Free Grammar. Concepts Introduced in Chapter 2. Parse Trees. Example Grammar and Derivation

Lab - Task Manager in Windows 8

Introduction to IntelliJ

CodeWarrior Development Studio for Power Architecture Processors FAQ Guide

In this lab, you will build and execute a simple message flow. A message flow is like a program but is developed using a visual paradigm.

IDE: Integrated Development Environment

U119: Requestor Maintenance. U119 Requestor Maintenance Ver 2.1

Debugging INTRODUCTION DEBUGGER WHAT IS VBA'S DEBUGGING ENVIRONMENT?

IBM Rational Rhapsody Gateway Add On. User Manual

IBM Rational Rhapsody Gateway Add On. User Guide

Supplement H.1: JBuilder X Tutorial. For Introduction to Java Programming, 5E By Y. Daniel Liang

Supplement II.B(1): JBuilder X Tutorial. For Introduction to Java Programming By Y. Daniel Liang

ARM. Streamline. Performance Analyzer. Using ARM Streamline. Copyright 2010 ARM Limited. All rights reserved. ARM DUI 0482A (ID100210)

Exemplar: A Search Engine For Finding Highly Relevant Applications

Module 4: Creating Content Lesson 4: Creating Charts Learn

II. Compiling and launching from Command-Line, IDE A simple JAVA program

Newaygo County Web Map

Flow of Control: Loops

JIVE: Dynamic Analysis for Java

The C++ Language. Output. Input and Output. Another type supplied by C++ Very complex, made up of several simple types.

Introduction to version Instruction date

Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Getting Started (1.8.7) 9/2/2009

PROJECT: BOGOR JAVA ENVIRONMENT FOR ECLIPSE DELIVERABLE: TEST PLAN

Introduction to Eclipse

Lab - Task Manager in Windows 7 and Vista

Application Note: AN00194 Getting Started with VCD Tracing in xtimecomposer

User-Centered and System-Centered IR

User Guide for the TITAN Designer for the Eclipse IDE

Institutional Reporting and Analysis (IRA) For help, blitz "Financial Reports", or

Ranked Retrieval. Evaluation in IR. One option is to average the precision scores at discrete. points on the ROC curve But which points?

New IDE Application Profiler Enhancements

Overview. Setup and Preparation. Exercise 0: Four-way handshake

System Wide Tracing User Need

MapReduce: Simplified Data Processing on Large Clusters 유연일민철기

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

Chapter 2. Lexical Elements & Operators

AP Computer Science A Magpie Chatbot Lab Student Guide

Adobe Acrobat Reader 4.05

RITIS Training Module 10 Script. To return to the Florida Analytics main page, select Florida Analytics Tools in the upper left corner of the page.

High Quality 4D Development. David Adams

Compiler Design. Subject Code: 6CS63/06IS662. Part A UNIT 1. Chapter Introduction. 1.1 Language Processors

GpsGate BuddyTracker. User Guide. Version: Rev: A

Lecture Chapter 2 Software Development

Automated Concept Location Using Independent Component Analysis

Configuring Topic Models for Software Engineering Tasks in TraceLab

Parallel Tools Platform

Distributed Debugging API for ORBs and Services. Request for Proposal, test/ Dale Parson, Distinguished Member of Technical Staff

Query Refinement and Search Result Presentation

SQL Server. Management Studio. Chapter 3. In This Chapter. Management Studio. c Introduction to SQL Server

Visual Studio.NET. Rex Jaeschke

Transcription:

Feature Location via Information Retrieval based Filtering of a Single Scenario Execution Trace Dapeng Liu, Andrian Marcus, Denys Poshyvanyk, Václav Rajlich SEVERE Group @

Incremental Change of Software Change request Feature location Impact analysis Implementation Change propagation Testing

Incremental Change of Software Change request Feature location Impact analysis Implementation Change propagation Testing

Feature Location with Regular Expressions

Feature Location with Information Retrieval [Marcus 04]

Feature Location with Information Retrieval and Formal Concept Analysis [Poshyvanyk 07]

Feature Location with Software Reconnaissance Scenario NOT exercising the feature readanddispatch -- org.eclipse.swt.widgets.display checkdevice -- org.eclipse.swt.widgets.display isdisposed -- org.eclipse.swt.graphics.device drawmenubars -- org.eclipse.swt.widgets.display runpopups -- org.eclipse.swt.widgets.display filtermessage -- org.eclipse.swt.widgets.display [Wilde 92] Scenario exercising the feature checkdevice -- org.eclipse.swt.widgets.display isdisposed -- org.eclipse.swt.graphics.device drawmenubars -- org.eclipse.swt.widgets.display runpopups -- org.eclipse.swt.widgets.display filtermessage -- org.eclipse.swt.widgets.display WM_TIMER -- org.eclipse.swt.widgets.progressbar

Feature Location with Scenario-based Probabilistic Ranking Scenario NOT exercising the feature readanddispatch -- org.eclipse.swt.widgets.display checkdevice -- org.eclipse.swt.widgets.display isdisposed -- org.eclipse.swt.graphics.device drawmenubars -- org.eclipse.swt.widgets.display runpopups -- org.eclipse.swt.widgets.display filtermessage -- org.eclipse.swt.widgets.display Scenario exercising the feature checkdevice -- org.eclipse.swt.widgets.display isdisposed -- org.eclipse.swt.graphics.device drawmenubars -- org.eclipse.swt.widgets.display runpopups -- org.eclipse.swt.widgets.display filtermessage -- org.eclipse.swt.widgets.display WM_TIMER -- org.eclipse.swt.widgets.progressbar [Antoniol 06]

Feature Location with Probabilistic Ranking Of MEthodS and Information Retrieval Scenario NOT exercising the feature readanddispatch -- org.eclipse.swt.widgets.display checkdevice -- org.eclipse.swt.widgets.display isdisposed -- org.eclipse.swt.graphics.device drawmenubars -- org.eclipse.swt.widgets.display runpopups -- org.eclipse.swt.widgets.display filtermessage -- org.eclipse.swt.widgets.display Scenario exercising the feature checkdevice -- org.eclipse.swt.widgets.display isdisposed -- org.eclipse.swt.graphics.device drawmenubars -- org.eclipse.swt.widgets.display runpopups -- org.eclipse.swt.widgets.display checkdevice -- org.eclipse.swt.widgets.display isdisposed -- org.eclipse.swt.graphics.device drawmenubars -- org.eclipse.swt.widgets.display runpopups -- org.eclipse.swt.widgets.display filtermessage -- org.eclipse.swt.widgets.display [Poshyvanyk 07]

Single Execution Trace readanddispatch -- org.eclipse.swt.widgets.display checkdevice -- org.eclipse.swt.widgets.display isdisposed -- org.eclipse.swt.graphics.device drawmenubars -- org.eclipse.swt.widgets.display runpopups -- org.eclipse.swt.widgets.display filtermessage -- org.eclipse.swt.widgets.display readanddispatch -- org.eclipse.swt.widgets.display checkdevice -- org.eclipse.swt.widgets.display isdisposed -- org.eclipse.swt.graphics.device drawmenubars -- org.eclipse.swt.widgets.display runpopups -- org.eclipse.swt.widgets.display filtermessage -- org.eclipse.swt.widgets.display SITIR = SIngle Trace + Information Retrieval (SITIR)

Filtering Single Execution Trace with Information Retrieval 1 Query Information Retrieval Engine 5 Indexes 6 Ranks User 7 Results SITIR Source Code 4 Execution trace 2 Scenario 3 Tracer Events

Collecting Execution Traces Java Platform Debugger Architecture (JPDA) 1 Infrastructure to build end-user debugging applications for Java platform JPDA highlights: Debugger works on a separate virtual machine Minimal interference of a tracing tool with a subject program Separate thread-based traces Marked traces (start/stop recording) 1 http://java.sun.com/javase/technologies/core/toolsapis/jpda/

Indexing Source Code with Latent Semantic Indexing Parsing to extract semantic information (i.e., comments and identifiers) Pre-processing: split_identifiers & SplitIdentifiers Representing software systems as a termdocument matrix

Example of using SITIR Locating a feature in JEdit Feature: showing white-space as a visible symbol in the text area Steps: Run scenario Run query Explore results

Example of using SITIR Locating a Feature in JEdit Start Tracing

Example of using SITIR Locating a Feature in JEdit Stop Tracing

Example of using SITIR Results SITIR IR-based ranking Single Trace Number of methods in single trace 284 The position of the first relevant method according to IR ranking 56 Position of the first relevant method according to SITIR - 7

Case Studies Locating features in JEdit Locating features associated with bugs in Eclipse Case study objectives: Compare SITIR with other approaches Study the impact of full and marked traces on the results Study the impact of user queries on the results

Locating Features in JEdit Evaluation the position of the first relevant method Feature MARKED TRACE LSI SITIR Search 202 59 (36) 1 14 (9) Show whitespace 284 56 (43) 7 (5) Add marker 304 5 1 1 Refined queries are in parentheses

Different Users and Queries Feature # Query Search Show white space Add marker 1 search find phrase word text 2 search final all forward backward case sensitive 3 find search locate match indexof findnext 4 searchdialog find findbtn searchselection save searchfileset searchandreplace 1 red dot newline whitespace view show display tab 2 show hide whitespace blank space display 3 symbol replace changecolor setvisible addlayer whitespace loadsymbol 4 userinput textareapainter paint whitespace newline pnt 1 marker select word display text 2 add remove marker markers 3 select highlight mark change background 4 buffer addmarker marker selection

Results for Different Users and Queries Full Marked Feature Dev LSI Trace Trace SITIR full SITIR marked Search Show white space Add marker 1 1477 202 61 11 2 1477 202 243 57 3 1477 202 32 13 4 1477 202 189 36 1 1462 284 956 152 2 1462 284 626 130 3 1462 284 497 104 4 1462 284 78 23 1 1478 304 26 5 2 1478 304 1 1 3 1478 304 3242 662 4 1478 304 20 5 6 20 6 11 30 48 16 8 1 1 160 4

Full versus Marked Traces in SITIR Re-formulating queries on full traces brings no visible improvement to the results Using marked traces vice full with the same query always produces noticeable improvement to the results Observed improvement: reformulating a query and marking the trace at the same time!

Locating Features in Eclipse Comparing SITIR with PROMESIR Eclipse 2.1.3 7K classes; 89K methods; 2.3MLOC; 57K unique words Features associated with bugs: Well-known, documented and reproducible Approved patches applied in recent releases We locate the part of the feature associated with the bug

Locating Features in Eclipse - Results Feature SINGLE TRACE SPR PROMESIR SITIR Select 721 268 1 2 Add files 740 170 1 2 Search 771 456 3 2

Discussion Uses only single scenario Less sensitive to scenario selection Unobtrusive tracing mechanism IR-based indexing of source code can be easily extended to other languages SITIR results are comparable or better than other feature location methods