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 and GPT-4o mini (more models coming).
  • Designed for research & real-world applications.

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:

Publications

  1. 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

  2. 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.

Publications

  1. 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

  2. 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