I am a second year Ph.D. student at the University of California, Berkeley, advised by Koushik Sen. My research interests centre around improving, or helping developers to improve, the correctness, reliability, and understanding of software systems. I am particularly interested in developing automated methods for engineering tasks such as testing, debugging, and comprehension, and lean towards work with strong empirical aspects (i.e. requiring large-scale data analysis).
This interest is a defining thread through my current and past research projects. My current research into automated testing, particularly fuzz testing, aims to produce tools which test programs as effectively as possible with as little user input as possible. In the summer of 2017 I was a research intern in the Tools for Software Engineers group at Microsoft, working on automating detection of anomolous errors in the distributed build system CloudBuild. At UBC, I worked with Ivan Beschastnikh on automated specification mining tools.
In May 2016 I received my B.Sc. (in Combined Honours Computer Science and Mathematics) at the University of British Columbia, and was awarded the Governor General's Silver Medal for highest standing in the graduating class of the Faculty of Science.
|I developed an extension to AFL, named FairFuzz, which targets rare branches to achieve faster program coverage. FairFuzz changes (1) the way in which AFL selects input for mutation and (2) the way in which AFL mutates inputs to target rare branches in the program under test. View technical details here.|
|I am the main developer of the Texada tool, which mines linear temporal logic (LTL) relationships of arbitrary length and complexity from textual logs. Texada takes as input a log of traces and a property type expressed in LTL and outputs instantiations of this property types with log events which hold on the entire log. Texada also supports confidence and support thresholds to allow for mining on imperfect or incomplete logs.|
|I also built the Quarry tool. Quarry interfaces data predicates with temporal invariants in order to extract data-temporal invariants of arbitrary length and complexity from program execution. Quarry mines relationships between Daikon-style data predicates specified in linear temporal logic (LTL). Quarry uses Daikon for data predicate inference and Texada for inference of temporal invariants.||I worked on one of UBC's first computer science MOOCs, Introduction to Systematic Program Design, while the course was still hosted on Coursera. I worked on both MOOC offerings, focusing mostly on video lecture development, but also participating in TA tasks like replying to students on forums and composing peer-graded projects. The video lectures from the Coursera offering were used in CPSC 110, UBC's introductory computer science course, and are available for viewing here.|
- Caroline Lemieux, Dennis Park and Ivan Beschastnikh. General LTL Specification Mining. In Proceedings of the 30th International Conference on Automated Software Engineering, ASE 2015, Lincoln, USA. pdf, slides pdf slides pptx
- Caroline Lemieux and Ivan Beschastnikh. Investigating Program Behavior Using the Texada LTL Specifications Miner. In Proceedings of the 30th International Conference on Automated Software Engineering, ASE 2015, Lincoln, USA. (Tool Demonstration Track). pdf
- Caroline Lemieux. Mining Temporal Properties of Data Invariants. In Proceedings of the 37th International Conference on Software Engineering, ICSE 2015, Florence, Italy. (ACM SRC Research Abstract). pdf
- Mining Temporal Relationships Between Data Invariants. Poster in SRC at ICSE 2015, Florence, Italy. pdf
Full resume here.