Please use this identifier to cite or link to this item: https://knowledgecommons.lakeheadu.ca/handle/2453/5323
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorAsaduzzaman, Muhammad-
dc.contributor.advisorChoudhury, Salimur-
dc.contributor.authorDas, Subrata-
dc.date.accessioned2024-06-10T16:00:25Z-
dc.date.available2024-06-10T16:00:25Z-
dc.date.created2024-
dc.date.issued2024-
dc.identifier.urihttps://knowledgecommons.lakeheadu.ca/handle/2453/5323-
dc.description.abstractNames of source code elements provide useful contextual information about the code and development tasks. Prior studies leverage the similarity between the names of arguments and method parameters to detect bugs that are caused by accidentally swapping arguments while calling methods. This requires establishing the mapping between method calls and their definitions. However, it is a challenging task to establish the mapping because of the complexity involved with the process (e.g., missing external libraries). This thesis aims to understand the performance of name-based argument-related bug detection techniques in Python, a popular general-purpose, statically typed programming language. Towards this direction, this thesis conducts a study that first investigates the similarity between arguments and their method parameters in Python code. The above step follows by establishing the mapping of method calls to their definitions and evaluating the performance of existing name-based techniques to detect swapping argument-related bugs in Python. Finally, a technique has been developed that uses argument usage patterns and expression types in source code with name-based similarity matching to improve the performance of detecting argument-related bugs. Evaluation of the proposed technique with a large collection of open-source Python projects shows that the technique can detect argument-related bugs with high accuracy even when the method definitions are missing. One potential solution to prevent argument-related bugs from occurring is to use code completion. An argument recommendation system suggests method arguments as a developer types the code. Thus, the second part of the thesis focuses on completing arguments of method calls. In particular, this thesis investigates the efficacy of large language models in recommending arguments for API (Application Programming Interface) method calls.en_US
dc.language.isoen_USen_US
dc.titleExploring name-based bug detection in Pythonen_US
dc.typeThesisen_US
etd.degree.nameMaster of Scienceen_US
etd.degree.levelMasteren_US
etd.degree.disciplineComputer Scienceen_US
etd.degree.grantorLakehead Universityen_US
dc.contributor.committeememberFadlullah, Zubair-
dc.contributor.committeememberBajwa, Garima-
Appears in Collections:Electronic Theses and Dissertations from 2009

Files in This Item:
File Description SizeFormat 
DasS2024m-1a.pdf27.61 MBAdobe PDFThumbnail
View/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.