Skip to content

EvoAvalla is an automated tool that uses evosuite to generate test scenarios in Avalla language for an Abstract State Machine (ASM).

Notifications You must be signed in to change notification settings

isaacmaffeis/evoAvalla

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EvoAvalla

EvoAvalla is an automated tool that uses evosuite to generate test scenarios in Avalla language for an Abstract State Machine (ASM).

To achieve this, EvoAvalla is divided into three microservices:

  1. asmetal2java:
    This microservice converts the input .asm file into a corresponding Java application.

  2. evoservice:
    This microservice uses EvoSuite, a test generation tool that automatically generates JUnit test suites for Java classes. EvoSuite therfore generates a test suite based on the Java application that was produced by the asmetal2java service. Since we are testing an ASM, the tests we are interested in are operating scenarios, which we will call scenarios.

  3. javaToAvalla:
    Once the scenarios are generated, this microservice converts the Java-based scenarios into the Avalla language. The Avalla format is a specialized language used for defining test scenarios for ASMs, and this conversion ensures the generated test cases can be executed in an Avalla-based testing environment.

Installation

To start using EvoAvalla, you need to have Docker Desktop installed on your machine.

Make sure you have it installed and then clone the repository:

git clone https://github.com/isaacmaffeis/evoAvalla.git

Note: Currently, this project only works on Windows machines because it uses a batch file (exec.bat) that can only be executed in a Command Prompt (CMD).

How to Start

Follow these steps to run the project:

  1. Open Docker Desktop:

    Open and run Docker Desktop.

  2. Prepare Your Input File:

    Place the .asm file you want to process in the input folder of the cloned repository.

  3. Run the Project:

    Open a CDM terminal and navigate to the root of the cloned repository folder:

    cd path/to/cloned/repository

    Run the following command to execute the project:

    exec.bat

    At this point the application will run and provide the output in the ./output folder.

System Architecture

EvoAvalla is structured as a series of microservices built on Docker:

  1. asmetal2java: Converts the .asm input file into a Java application.
  2. evoservice: Generates a Junit test suite (scenarios) for the newly created Java application using EvoSuite.
  3. javaToAvalla: Converts the Junit test scenarios into the Avalla format.

These projects are built and integrated into EvoAvalla using a GitHub Action CI pipeline. This pipeline automates the building of Docker images for each project, making them available for use in EvoAvalla via the docker-compose file.

Repository Structure

The project repository is organized into the following folders:

  • input/: The application expects .asm input files to be placed here before execution.

  • output/: The output .avalla files generated by the services will be located here.

  • example/: This folder contains a collection of example .asm files that you can use to test the application.

  • services/: This folder contains subfolders for each microservice that the application uses. It stores Docker volumes, which are needed for the services to communicate with each other and persist data between containers.

About

EvoAvalla is an automated tool that uses evosuite to generate test scenarios in Avalla language for an Abstract State Machine (ASM).

Topics

Resources

Stars

Watchers

Forks