- Java 1.8
- Eclipse 2018-12 or later
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.
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.
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.
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.
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).
name
: (mandatory string) the fully qualified name of the methods, e.g.dgdg.bla.removeAll(Ljava/util/Collection<*>;)Z
score
: (mandatory double) the suspiciousness values of the methodsinteractive
: (optional string) if it is present and its value isno
then the user will not be able to give feedback for this itemdetails
: (optional string) the URL to more information about the methods
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.
Feedback will change the score for one or more items. The effect of the feedback categorized according to their target.
- selection: all items currently selected in the table
- context: all items, which are in the context of the selected items (context are highlighted with an orange hue)
- other: any items which do not fit into the above categories
For terminal choices (those which end the current iFL session) you have to reinforce your feedback.
iFL for Eclipse supports quick navigation to inspected methods either by double-clicking on its line in the table or via the context menu.
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.
This section is a guideline for those developers who wish to contribute to the project.
- Java JDK 1.8 (https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)
- Eclipse for Java developers (2018-12 or later version) (https://www.eclipse.org/downloads/)
- PDE plug-in for Eclipse (In the newer versions of Eclipse, this plug-in is included in the basic installation. If it is not, it can be easily added by using Eclipse's "Install new software..." feature from the "Help" menu.)
- Maven (installation guide can be found here: https://maven.apache.org/install.html)
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.
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.
Now go to the "Java build path" tab, choose "Libraries", then "Add JARs...". Select the dependencies jar and the swing2swt jar and click "Ok".
After this, navigate to the "Order and export" tab and check all of the checkboxes, then hit "Apply and close".
Right click on the project, choose "Run as...", then hit "Eclipse application".
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.