Projects
This page highlights my research-driven projects. I frequently update it with relevant materials as my work progresses.
Project: PyLLMut
PyLLMut is a research-based, LLM-driven mutant generator library for Python. It uses Large Language Models (LLMs) to generate mutants for Python programs. Traditional mutation operators often fail to generate mutants for certain program statements, reducing the effectiveness of techniques like Mutation-Based Fault Localization (MBFL). PyLLMut aims to address this issue using LLMs.
Key Features
- Uses LLMs to generate mutants for Python programs.
- Supports
GPT-4o
andGPT-4o mini
(more models coming). - Designed for research & real-world applications.
Key Links
Project: FauxPy
FauxPy is the first multi-family fault localization tool for Python programs, available as open-source software. The current version of FauxPy supports the following fault localization families:
- Spectrum-Based Fault Localization
- Mutation-Based Fault Localization
- Predicate Switching
- Stack Trace Fault Localization
Update: FauxPy now integrates PyLLMut, enabling the use of Large Language Models (LLMs) to improve Mutation-Based Fault Localization (MBFL) effectiveness.
Fault localization refers to automated techniques that help developers identify buggy locations within their codebase. These techniques typically produce a ranked list of program entities (e.g., statements, functions/methods, files). Developers or automated program repair tools can use this list, starting with the highest-ranked entity (most likely to contain the bug), and continue until the bug is located and resolved.
FauxPy is a dynamic analysis tool that has been tested on 135 real-world bugs across 13 well-known projects, demonstrating its robustness and effectiveness. Below is a complete list of projects FauxPy has been tested with:
Key Links
Publications
-
An empirical study of fault localization in Python programs
Mohammad Rezaalipour and Carlo A. Furia
Published in Empirical Software Engineering, Volume 29, Issue 4, 2024, Pages 92 -
FauxPy: A Fault Localization Tool for Python
Mohammad Rezaalipour and Carlo A. Furia
arXiv Technical Report, 2024
Project: aNNoTest
aNNoTest is an annotation-based test generation approach and tool specifically designed for Python-based neural network programs. Using annotations written in aN—a concise and descriptive annotation language that we developed—aNNoTest generates Hypothesis test templates for functions, methods, and modules within a neural network program, which can then be run to identify bugs.
aNNoTest has been evaluated on 19 real-world programs and has successfully identified several previously unknown bugs and reproduced many known bugs, highlighting its bug-finding capabilities. Notably, aNNoTest discovered one bug and one documentation inconsistency in Vision, PyTorch’s machine vision library. Both issues were accepted by the maintainers and integrated into the library’s codebase.
Key Links
Publications
-
aNNoTest: An Annotation-based Test Generation Tool for Neural Network Programs
Mohammad Rezaalipour and Carlo A. Furia
Proceedings of the 39th IEEE International Conference on Software Maintenance and Evolution (ICSME), 2023, Pages 574–579 -
An annotation-based approach for finding bugs in neural network programs
Mohammad Rezaalipour and Carlo A. Furia
Published in Journal of Systems and Software, Volume 201, 2023, Pages 111669