Browsing Theses by Supervisor "Lam, Patrick"
Now showing items 1-7 of 7
-
Analysis and Optimization of TrueType Font Bytecode
(University of Waterloo, 2018-12-19)TrueType is one of the most widely used vectorized font formats. It can be optimally rendered on screens with different resolutions and different font sizes thanks to hints expressed as bytecode programs. Font engines ... -
Automatic Refactoring for Renamed Clones in Test Code
(University of Waterloo, 2018-11-21)Unit testing plays an essential role in software development and maintenance, especially in Test-Driven Development. Conventional unit tests, which have no input parameters, often exercise similar scenarios with small ... -
Automating Programming Assignment Marking with AST Analysis
(University of Waterloo, 2019-01-14)This thesis presents a novel approach to automatically mark programming assignments. We hypothesize that correct student solution ASTs will be more similar to reference solution ASTs than incorrect student solutions and ... -
Enforcing Abstract Immutability
(University of Waterloo, 2018-08-01)Researchers have recently proposed a number of systems for expressing, verifying, and inferring immutability declarations. These systems are often rigid, and do not support "abstract immutability". An abstractly immutable ... -
MockDetector: Detecting and tracking mock objects in unit tests
(University of Waterloo, 2021-09-21)Unit testing is a widely used tool in modern software development processes. A well-known issue in writing tests is handling dependencies: creating usable objects for dependencies is often complicated. Developers must ... -
A Quantitative and Qualitative Empirical Evaluation of a Test Refactoring Tool
(University of Waterloo, 2021-10-18)Reducing the gap between what practitioners want vs. what researchers assume they want is one of the vital challenges in software projects. When it comes to software tools, many people develop tools, but only some tools ... -
Studying and Leveraging API Usage Patterns
(University of Waterloo, 2022-09-29)Software projects make use of libraries extensively. Libraries have intended API surfaces—sets of exposed library interfaces that library developers expect clients to use. However, in practice, clients only use small ...