Skip to content

se-fbk/UAV-Testing-Competition

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evolv-1 at ICST/SBFT 2025 Tool Competition - CPS-UAV Test Case Generation Track

Description

This repository contains the implementation for the UAV Testing Competition, which challenges participants to create and evaluate efficient test scenarios for Unmanned Aerial Vehicles (UAVs).

This project implements a test case generation algorithm using advanced techniques such as Evolution Strategies, specifically the EE-(1+1) algorithm, which iteratively evolves solutions to minimize the distance and diversity of the test cases. Additionally, a Fibonacci Spiral Point Selection methodology is used to optimize the distribution of points, ensuring uniform coverage in testing scenarios.

cover

Repository Structure

📦 UAV-Testing-Competition/
├── 📁 docs/ # Documentation
├── 📁 reports/ # Competition Report 2024
├── 📁 snippets/ # Scripts
│   ├── 📄 Dockerfile
│   ├── 📄 requirements.txt 
│   ├── 📄 config.py
│   ├── 📄 cli.py 
│   ├── 📄 evolution_strategy.py
│   ├── 📄 obstacle_generator.py
│   ├── 📄 fibonacci_spiral.py
│   ├── 📄 manual_testing.py
│   ├── 📄 mission_plan.py
│   ├── 📄 README.md
│   ├── 📄 testcase.py
│   └── 📄 utils.py
│   └── 📁 case_studies/ # Drone mission plans
│       ├── 📄 mission1.yaml 
│       ├── 📄 ... 
│       └── 📄 missionN.yaml 
├── 📄 README.md
└── 📄 LICENSE

Environment Setup

To ensure compatibility and reproducibility, this project requires Docker (tested on version 27.3.1). Follow the steps below to set up the environment.

  1. Clone the Repository

Clone the repository to your local machine:

git clone https://github.com/se-fbk/UAV-Testing-Competition.git
  1. Build the Docker Image

Navigate to the snippets directory and build the Docker image:

cd UAV-Testing-Competition/snippets/
docker build -t evolv-1 .
  1. Run the Docker Container Run the Docker container with the required volumes
xhost +
docker run --env DISPLAY=$DISPLAY \
    -v "/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    -v "$(pwd):/src/generator" \
    -it evolv-1 bash

Usage

In the config.py file, you can modify the parameters used by the generator, such as the length and width of obstacles or the size of the Fibonacci spiral.

To start the generation, use the following command:

python3 cli.py generate [mission] [budget]

For example:

python3 cli.py generate case_studies/mission1.yaml 10

This will execute 10 test cases.

The results will be saved in the automatically generated folder: /snippets/generated-test.

Contributors

Name Email Affiliation
Pietro Lechthaler [email protected] Fondazione Bruno Kessler, Trento, Italy
Davide Prandi [email protected] Fondazione Bruno Kessler, Trento, Italy
Fitsum Meshesha Kifetew [email protected] Fondazione Bruno Kessler, Trento, Italy

About

Tool Competion on Testing Unmanned Aerial Vehicles

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.1%
  • Dockerfile 0.9%