Skip to content
/ imfit Public
forked from 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.

License

Notifications You must be signed in to change notification settings

cembglm/imfit

 
 

Repository files navigation

IM-FIT

repo_size Apache-2.0 License lang CodeFactor

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

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

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

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

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 Project under grant number 120N803 which conducted by the İnovasyon Mühendislik.


valu3s_logo

This work is also done by Inovasyon Muhendislik and ESOGU-SRLAB under VALU3S project. This project has received funding from the ECSEL 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 file for license rights and limitations (Apache-2.0 Licence).

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%