Detecting Multi-Parameter Constraint Inconsistencies in Python Data Science Libraries

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Xu, Xiufeng, Xie, Fuman, Zhu, Chenguang, Bai, Guangdong, Khurshid, Sarfraz, Li, Yi
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866910705185193984
author Xu, Xiufeng
Xie, Fuman
Zhu, Chenguang
Bai, Guangdong
Khurshid, Sarfraz
Li, Yi
author_facet Xu, Xiufeng
Xie, Fuman
Zhu, Chenguang
Bai, Guangdong
Khurshid, Sarfraz
Li, Yi
contents Modern AI- and Data-intensive software systems rely heavily on data science and machine learning libraries that provide essential algorithmic implementations and computational frameworks. These libraries expose complex APIs whose correct usage has to follow constraints among multiple interdependent parameters. Developers using these APIs are expected to learn about the constraints through the provided documentations and any discrepancy may lead to unexpected behaviors. However, maintaining correct and consistent multi-parameter constraints in API documentations remains a significant challenge for API compatibility and reliability. To address this challenge, we propose MPDetector, for detecting inconsistencies between code and documentation, specifically focusing on multi-parameter constraints. MPDetector identifies these constraints at the code level by exploring execution paths through symbolic execution and further extracts corresponding constraints from documentation using large language models (LLMs). We propose a customized fuzzy constraint logic to reconcile the unpredictability of LLM outputs and detects logical inconsistencies between the code and documentation constraints. We collected and constructed two datasets from four popular data science libraries and evaluated MPDetector on them. The results demonstrate that MPDetector can effectively detect inconsistency issues with the precision of 92.8%. We further reported 14 detected inconsistency issues to the library developers, who have confirmed 11 issues at the time of writing.
format Preprint
id arxiv_https___arxiv_org_abs_2411_11410
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Detecting Multi-Parameter Constraint Inconsistencies in Python Data Science Libraries
Xu, Xiufeng
Xie, Fuman
Zhu, Chenguang
Bai, Guangdong
Khurshid, Sarfraz
Li, Yi
Software Engineering
Modern AI- and Data-intensive software systems rely heavily on data science and machine learning libraries that provide essential algorithmic implementations and computational frameworks. These libraries expose complex APIs whose correct usage has to follow constraints among multiple interdependent parameters. Developers using these APIs are expected to learn about the constraints through the provided documentations and any discrepancy may lead to unexpected behaviors. However, maintaining correct and consistent multi-parameter constraints in API documentations remains a significant challenge for API compatibility and reliability. To address this challenge, we propose MPDetector, for detecting inconsistencies between code and documentation, specifically focusing on multi-parameter constraints. MPDetector identifies these constraints at the code level by exploring execution paths through symbolic execution and further extracts corresponding constraints from documentation using large language models (LLMs). We propose a customized fuzzy constraint logic to reconcile the unpredictability of LLM outputs and detects logical inconsistencies between the code and documentation constraints. We collected and constructed two datasets from four popular data science libraries and evaluated MPDetector on them. The results demonstrate that MPDetector can effectively detect inconsistency issues with the precision of 92.8%. We further reported 14 detected inconsistency issues to the library developers, who have confirmed 11 issues at the time of writing.
title Detecting Multi-Parameter Constraint Inconsistencies in Python Data Science Libraries
topic Software Engineering
url https://arxiv.org/abs/2411.11410