InteractiveFaultLocalization / iFL4Eclipse

iFL for Eclipse is an Eclipse plug-in for supporting interactive fault localization for Java projects developed in this environment.
Eclipse Public License 2.0
3 stars 1 forks source link

iFL for Eclipse

Requirements

Interactive Fault Localization for Eclipse

dev_mascotlogoalg_mascot

Fault localization is a debugging activity which is, by definition, part of a programmer's work in which she has to interact with the source code of the software being debugged. It follows that this can be performed most effectively through the IDE itself; hence, the most logical form of supporting tools is when they are integrated into the IDE.

With this in mind, we present iFL for Eclipse, which is an Eclipse plug-in for supporting iFL for Java projects developed in this environment. It is supporting the popular Eclipse IDE, so it is part of the well-known workspace of developers. The plug-in reads the tree of project elements (classes and functions) and lists them in a table showing detailed information about those elements. This information includes, among others, the suspiciousness scores calculated using a traditional SBFL formula, which ranks code components (e.g., methods) according to their probability of having faults. For example, Tarantula is one of these algorithms. This table also enables direct navigation towards the project tree and the contained source code elements.

Interactivity between the tool and the programmer is achieved by providing the capability to send feedback to the FL engine about the next element in the table based on user knowledge. It involves the context of the investigated element, in our case, Java classes and methods. This allows changing the order of elements in the table and hopefully arrive more quickly at the faulty item.

Features

In this section, we will briefly elaborate on the key features of our plug-in.

Please note that iFL for Eclipse only supports inspection of Java projects, i.e., projects associated with Java Nature and which do not contain any compilation error.

You can also watch our demo video or our promo poster, in which we showcase a previous version of our plug-in.

menu

The fault localization (FL) process executed as a session in iFL for Eclipse. You could either start the session from the toolbar or the iFL menu after selecting the target project or any files of it.

Showing suspiciousness scores for methods

main

The main view of the plug-in is a table, which displays the methods in the target project and their main properties. All common shorting and column rearranging features are available.

Loading scores from an external source

You can load scores from external sources by pressing the load score button. External score data has to be in CSV format with a header, using a semicolon (;) as separator and double quotes (" ") for string literals. It could contain the following columns (any other columns will be ignored).

load

Providing user feedback about code elements

You could use the context menu of the table to provide various user feedback about the selected items. Interactivity should not be disabled for any selected item to use this feature.

context_menu

Feedback will change the score for one or more items. The effect of the feedback categorized according to their target.

For terminal choices (those which end the current iFL session) you have to reinforce your feedback.

Navigation to inspected method

iFL for Eclipse supports quick navigation to inspected methods either by double-clicking on its line in the table or via the context menu.

Installation Guide

At first, you have to download the content of our update site and unzip it into the desired location. The official versions of iFL for Eclipse could be found under Releases.

You can install our plug-in directly from Eclipse IDE. Please use the Install New Software wizard which allows you to add new software to your Eclipse installation.

To access all available features of iFL for Eclipse, please copy the key file next to your Eclipse executable, for further details see the description of the selected version.

Contributor's guide

This section is a guideline for those developers who wish to contribute to the project.

Developing environment

install_pde

Setting up project dependencies

After cloning the repository to a local machine, the dependencies of the project must be installed. To do this, navigate to the iFL4Eclipse\org.eclipse.sed.ifl.root\bundles\org.eclipse.sed.ifl.dependencies folder, open the command line and enter "mvn clean verify". This command will create a jar in the "target folder that includes the dependencies. Another dependency that is not included in the jar is Swing2SWT (downloadable from here: https://mvnrepository.com/artifact/org.eclipse.wb.rcp/swing2swt/1.6.0). The downloaded jar must be decompressed with an archiver (like 7zip) and the content jar (swing2swt.jar) along with the previously created dependencies jar should be moved to the iFL4Eclipse\org.eclipse.sed.ifl.root\bundles\org.eclipse.sed.ifl\libs folder.

Opening the project in Eclipse

In Eclipse, choose the "Open project from file system..." option in the "File" menu. Choose the iFL4Eclipse\org.eclipse.sed.ifl.root\bundles\org.eclipse.sed.ifl folder as import source, check the checkbox in front of the folder then click "Finish". The project is now imported. Right click on the project and choose "Properties". Go to the "Java compiler" tab and set the compliance to 1.8.

jdk_compliance

Now go to the "Java build path" tab, choose "Libraries", then "Add JARs...". Select the dependencies jar and the swing2swt jar and click "Ok".

build_path

After this, navigate to the "Order and export" tab and check all of the checkboxes, then hit "Apply and close".

How to run

Right click on the project, choose "Run as...", then hit "Eclipse application".

Contact us

szte

iFL for Eclipse is developed and maintained during the iFL research of the University of Szeged, Department of Software Engineering.

If you have any question or suggestion feel free to submit an issue, or write an e-mail.