Code
from rich.console import Console
= Console()
console print(
console.f":rocket: Have fun exploring my research in fields like testing and debugging!"
)
🚀 Have fun exploring my research in fields like testing and debugging!
I recently hosted an episode of Software Engineering Radio called "Goran Petrovic on Mutation Testing at Google"!
🚀 Have fun exploring my research in fields like testing and debugging!
As an experimental computer scientist, the goal of my research is to design, implement, and evaluate techniques and tools that support the creation of useful, dependable, and efficient software. My research addresses the challenges in fields such as software engineering, software testing, and computer systems. I conduct this research with undergraduates at Allegheny College, graduate students and professors at several universities (e.g., University of Sheffield and the University of Passau), and colleagues in industry. Keep reading for more details!
My research is empirical because it involves the application of the scientific method to formulate problem statements, carry out experiments, take observations, statistically analyze and visualize the data sets, and draw conclusions based on the results. Each research project focuses on the development and evaluation of software artifacts that can be used in both empirical studies and real-world practice by undergraduate and graduate students, software engineers, and computer scientists in both academia and industry.
In addition to supporting my professional service, my research results in award-winning and frequently cited research papers, oft-complimented presentations, and useful free and open-source software. My research focuses on software engineering and software testing, examples of which are described in these summaries that reference key papers.
Since flaky tests can pass or fail without any changes to the test code or the code under test, they are an unreliable indicator of software correctness and a major problem for many software developers. To address this challenge, my collaborators and I have developed an automated method that uses machine learning to predict which tests are most likely to be flaky (Parry et al. 2022b)
Given the importance of verifying that a database application operates correctly, my PhD dissertation (Kapfhammer 2007)
In response to the prevalence and complexity of mobile-ready web sites, my research has developed automated tools for checking the pages in these sites. Some examples of papers describing methods for automatically detecting defects in web pages include (Walsh, Kapfhammer, and McMinn 2017a)
Given the challenges associated with accurately judging the quality of a test suite, my research has designed efficient and useful ways to perform test assessment through mutation analysis. Presenting and evaluating automated techniques that efficiently insert synthetic faults into both real-world Java programs and relational database schemas, some examples of papers include (Just, Kapfhammer, and Schweiggert 2012)
Since software is often incrementally developed, my research on regression testing has created research automated ways to efficiently and effectively run test suites for complex programs. Some examples of papers that present and evaluate regression testing techniques include (Walcott et al. 2006)
Using a fitness function as a guide to a solution, search-based methods have shown promise in supporting many software engineering tasks. My work has focused on creating frameworks that support the development of search-based tools, with (McMinn and Kapfhammer 2016)
Given the importance of equipping software engineers with the insights and tools they need to create efficient software, my work has developed tools that automatically assess program performance. Focusing on the empirical evaluation of real-world software components like databases, relevant papers include (Jones and Kapfhammer 2011)
My surveys of software testing techniques provide a starting point for people exploring this field, with (Kapfhammer 2004)
Do you work on these topics and are you interested in collaborating with me on a project in the fields of software engineering and software testing? If so, then please contact me soon!