/ExecutionFlow

A tool to compute test paths of Java methods and constructors.

Primary LanguageJavaMIT LicenseMIT

ExecutionFlow

A tool to compute test paths of Java methods and constructors.

Coverage status Java compatibility Release License


❇ Introduction

ExecutionFlow is a tool to trace executed test paths in Java code. The tool is based on the use of a debugger, aspect-oriented programming, and a testing framework.

Abstract

Video abstract

Presentation (click to play)

Video presentation

Demonstration (click to play)

Video demonstration

❓ How to use

The step by step on how to use the application can be found here. Don't forget to include aspectjtools.jar in the build path of the project (otherwise the application will not work).

📖 Documentation

See the full documentation on wiki. See here the application restrictions and other important points .

✔ Requiremens

🖨 Output

global-schema

Example - SimpleTestPath

--------------------------------------------------------------------------------
				     EXPORT
--------------------------------------------------------------------------------
examples.others.SimpleTestPath.simpleTestPath()
examples.others.auxClasses.AuxClass.factorial(int)
[35, 36, 37, 36, 37, 36, 37, 36, 37, 36, 39]

[...]

--------------------------------------------------------------------------------
				     EXPORT
--------------------------------------------------------------------------------
examples.others.SimpleTestPath.simpleTestPath()
examples.others.auxClasses.AuxClass(int)
[12]

See more here.

ℹ How it works?

app-schema

See more here.

⚠ Warnings

If you encounter any problems with the application, be sure to check the wiki for troubleshooting. If your problem is not resolved, check to see if there is already an issue with your problem. If not, create an issue describing the problem in detail.

Incompatibility between versions

Most of the time the versions are not compatible with each other. If you have used a previous version in your project, you must delete the old version before using the new one. To do this, be sure to delete the directory named executionflow from your project files. Also, use only one version in your project's classpath / buildpath, otherwise the versions may conflict. Do the procedure below before using the new version.

migration

⛔ Stop

In order to stop the application, use the Stop button in the Execution Flow window. Do not use the eclipse stop button, otherwise the original files will not be restored. This is because the eclipse stop issues a SIGKILL command, while the stop button in the Execution Flow window issues a SIGTERM command to end the application. See here more about the difference between these two commands.

stop

Runtime warnings

If this message is displayed during the execution of the application, just click on continue (informs that the code was changed during the execution). This is because during the execution of the application the source code is changed, and in the end the original source code is restored.

eclipse_msg

🚩 Changelog

Details about each version are documented in the releases section.

🤝 Contribute!

See the documentation on how you can contribute to the project here.

🗺 Project structure

architecture

📁 Files

/

Name Type Description
dist Directory Released versions
docs Directory Documentation files
examples Directory Examples of JUnit tests to see how the application works
lib Directory Libraries the project uses
src Directory Source files

/src

Name Type Description
assembly Directory Configuration files related to the generation of the JAR file
main Directory Application source files
test Directory Application test files