Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/inomuh/imfit

IM-FIT provides to find the weaknesses on Python and ROS. The user can use IM-FIT with workload or code snippets. At the same time the user can create custom workload and code snippets for its codes.
https://github.com/inomuh/imfit

code-quality code-snippets fault-injection python3 qt6 qt6-gui testing-tools

Last synced: 6 days ago
JSON representation

IM-FIT provides to find the weaknesses on Python and ROS. The user can use IM-FIT with workload or code snippets. At the same time the user can create custom workload and code snippets for its codes.

Awesome Lists containing this project

README

        

# IM-FIT
![repo_size](https://img.shields.io/github/repo-size/inomuh/imfit) ![Apache-2.0 License](https://img.shields.io/github/license/inomuh/imfit?color=blue) ![lang](https://img.shields.io/github/languages/top/inomuh/imfit) [![CodeFactor](https://www.codefactor.io/repository/github/akerdogmus/imfit/badge)](https://www.codefactor.io/repository/github/akerdogmus/imfit)

IM-FIT applies mutation testing to **Python, ROS-Py, Launch, Yaml, SRV, MSG** file types.

The requirements.txt file should list all Python libraries that your notebooks depend on, and they will be installed using:
```
pip install -r requirements.txt
```
![Image of IM-FIT Home Page](https://github.com/inomuh/imfit/blob/main/home-page.png)


Fig 1. IM-FIT Home Page

IM-FIT, which presents a user manual to the user when opened, aims to provide an efficient and detailed use to the user with this manual.

![Image of IM-FIT Start Page](https://github.com/inomuh/imfit/blob/main/start-page.png)


Fig 2. IM-FIT Start Page

IM-FIT scans are fully customizable for workloads and selected code snippets. After the scanning process is applied, fault plans are created to be used in test processes. Fault plans keep information about which file to apply a code mutation.

![Image of IM-FIT Scan Page](https://github.com/inomuh/imfit/blob/main/scan-page.png)


Fig 3. IM-FIT Scan Page

Mutants that are compared to the original code in the run are classified as killed or survived. Killing a mutant is the main objective of our testing process. Surviving mutants show that the software we tested works with the fault.

![Image of IM-FIT ROS Page](https://github.com/inomuh/imfit/blob/main/ros-page.png)


Fig 4. IM-FIT ROS Page

IM-FIT performs mutation operations on ROS-Py and Launch files according to the collected data and user requests.
On the execution page, IM-FIT runs the mutants on Docker. At the end of the execution process, you can go to the monitoring page to take detailed information about the V&V process.

Installations
-------------------------------
- Firstly, you must install python3 and some requirements:

sudo apt-get update && sudo apt-get install python3 python3-venv python3-pip

- Install PySide6:

pip install PySide6

- Install PyQt6:

pip install PyQt6==6.1.0

Usage
-------------------------------
Terminal command to open interface

python3 main.py

PS: Before first run IM-FIT, the command

chmod +x *

must enter the terminal opened from IM-FIT folder.

### Credits


tübitak_logo

---

This work is supported by [TÜBİTAK](https://www.tubitak.gov.tr/) Project under grant number 120N803 which conducted by the İnovasyon Mühendislik.

---


valu3s_logo

This work is also done by [Inovasyon Muhendislik](https://www.inovasyonmuhendislik.com/) and [ESOGU-SRLAB](https://srlab.ogu.edu.tr/) under [VALU3S](https://valu3s.eu) project. This project has received funding from the [ECSEL](https://www.ecsel.eu) Joint Undertaking (JU) under grant agreement No 876852. The JU receives support from the European Union’s Horizon 2020 research and innovation programme and Austria, Czech Republic, Germany, Ireland, Italy, Portugal, Spain, Sweden, Turkey.

### License

See the [LICENSE](LICENSE.md) file for license rights and limitations (Apache-2.0 Licence).