Browsing Theses by Supervisor "Godfrey, Michael"
Now showing items 1-13 of 13
-
API Parameter Recommendation Based on Documentation Analysis
(University of Waterloo, 2020-01-20)Application Programming Interfaces (APIs) are widely used in today's software development, as they provide a easy and safe way to build more powerful applications with less code. However, learning how to use an API function ... -
Case Studies of a Machine Learning Process for Improving the Accuracy of Static Analysis Tools
(University of Waterloo, 2016-10-18)Static analysis tools analyze source code and report suspected problems as warnings to the user. The use of these tools is a key feature of most modern software development processes; however, the tools tend to generate ... -
Continuous Integration Build Failures in Practice
(University of Waterloo, 2016-08-24)Automated software testing is a popular method of quality control that aims to detect bugs before software is released to the end user. Unfortunately, writing, maintaining, and executing automated test suites is expensive ... -
Data Science for Software Maintenance
(University of Waterloo, 2017-04-26)Maintaining and evolving modern software systems is a difficult task: their scope and complexity mean that seemingly inconsequential changes can have far-reaching consequences. Most software development companies attempt ... -
Documentation-Guided Fuzzing for Testing Deep Learning API Functions
(University of Waterloo, 2020-12-21)Widely-used deep learning (DL) libraries demand reliability. Thus, it is integral to test DL libraries’ API functions. Despite the effectiveness of fuzz testing, there are few techniques that are specialized in fuzzing API ... -
Evaluating the Effectiveness of Code2Vec for Bug Prediction When Considering That Not All Bugs Are the Same
(University of Waterloo, 2020-09-21)Bug prediction is an area of research focused on predicting where in a software project future bugs will occur. The purpose of bug prediction models is to help companies spend their quality assurance resources more ... -
Extracting Non-Functional Requirements from Unstructured Text
(University of Waterloo, 2018-01-18)Non-functional requirements (NFRs) of a software system describe desired quality attributes rather than specific user-visible features; NFRs model stakeholder expectations about pervasive system properties such as performance, ... -
On the Effectiveness of Incremental Fact Extraction and Analysis
(University of Waterloo, 2020-07-30)Today's software projects can be huge. They often consist of millions of lines of code, have multiple teams working on them and are constantly evolving. It is no surprise then that developers sometimes seek the help of ... -
Source Code Stylometry and Authorship Attribution for Open Source
(University of Waterloo, 2019-09-23)Public software repositories such as GitHub make transparent the development history of an open source software system. Source code commits, discussions about new features and bugs, and code reviews are stored and carefully ... -
A Study on the Effects of Exception Usage in Open-Source C++ Systems
(University of Waterloo, 2019-05-24)Exception handling (EH) is a feature common to many modern programming languages, including C++, Java, and Python, that allows error handling in client code to be performed in a way that is both systematic and largely ... -
Studying the Impact of Risk Assessment Analytics on Risk Awareness and Code Review Performance
(University of Waterloo, 2023-05-18)While code review is a critical component of modern software quality assurance, defects can still slip through the review process undetected. Previous research suggests that the main reason for this is a lack of reviewer ... -
Towards Understanding and Improving Code Review Quality
(University of Waterloo, 2017-06-12)Code review is an essential element of any mature software development project, it is key to ensuring the long-term quality of the code base. Code review aims at evaluating code contributions submitted by developers before ... -
Using Crowd-Based Software Repositories to Better Understand Developer-User Interactions
(University of Waterloo, 2023-05-17)Software development is a complex process. To serve the final software product to the end user, developers need to rely on a variety of software artifacts throughout the development process. The term software repository ...