flickr photo shared by /Casper under a CC (BY-NC-ND) license
As an experimental computer scientist, the goal of my research is to design, implement, and rigorously evaluate techniques and tools that support the creation of useful, dependable, and efficient software. My research addresses the challenges within the fields of software engineering, software testing, and computer systems. I conduct this research in collaboration with undergraduates at Allegheny College, graduate students and professors at other universities, and colleagues in industry.
My research is empirical in nature 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 experimental 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 also results in award-winning and frequently cited research papers, oft-complimented presentations, and useful free and open-source software.
My research has concentrated on several important areas, examples of which are summarized in the following list that references key papers.
- Database Testing: Since the database application is a complex artifact that must be verified, my PhD dissertation (Kapfhammer, 2007) presented an approach for testing database applications; a notable paper derived from my dissertation is (Kapfhammer & Soffa, 2003). My work has also focused on testing the schema of a relational database, with (McMinn, Kapfhammer, & Wright, 2016) and (McMinn, Wright, & Kapfhammer, 2015) being examples of papers.
- Web Testing: In response to the prevalence and complexity of mobile-ready web sites, my research has developed automated techniques for checking these sites. Some examples of papers describing approaches that have found defects in live, production web sites include (Walsh, McMinn, & Kapfhammer, 2015) and (Walsh, Kapfhammer, & McMinn, 2017).
- Mutation Testing: Given the challenges associated with evaluating the quality of a test suite, my research has designed efficient ways to perform test assessment through mutation analysis. Considering both programs and relational database schemas, some examples of papers include (Just, Kapfhammer, & Schweiggert, 2012) and (Wright, Kapfhammer, & McMinn, 2014).
- Regression Testing: Since software is often incrementally developed, my work on regression testing has created 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, Soffa, Kapfhammer, & Roos, 2006), (Lin, Tang, & Kapfhammer, 2014), and (Lin, Tang, Wang, & Kapfhammer, 2017).
- Search-Based Testing: Using a fitness function as a guide to a suitable solution, search-based methods have shown promise in a many domains. My work has focused on creating frameworks to support the development of search-based tools, with (McMinn & Kapfhammer, 2016) being one paper. Papers such as (Conrad, Roos, & Kapfhammer, 2010) and (Kukunas, Cupper, & Kapfhammer, 2010) describe and assess other search-based solutions to software engineering challenges.
- Research Methods: My surveys of the research landscape in the field of software testing provide a starting point for individuals exploring this field, with (Kapfhammer, 2004) and (Kapfhammer, 2010) being examples of papers. Moreover, papers like (Kapfhammer, McMinn, & Wright, 2016) and (McMinn, Harman, Fraser, & Kapfhammer, 2016) illustrate ways in which I have articulated a research agenda for the field of software engineering.
- Empirically evaluating greedy-based test suite reduction methods at different levels of test suite complexity
Lin, Chu-Ti & Tang, Kai-Wei & Wang, Jiun-Shiang & Kapfhammer, Gregory M., 2017 return
- Automated layout failure detection for responsive web pages without an explicit oracle
Walsh, Thomas A. & Kapfhammer, Gregory M. & McMinn, Phil, 2017 return
- Hitchhikers need free vehicles! Shared repositories for statistical analysis in SBST
Kapfhammer, Gregory M. & McMinn, Phil & Wright, Chris J., 2016 return
- Automated search for good coverage criteria: Moving from code coverage to fault coverage through search-based software engineering
McMinn, Phil & Harman, Mark & Fraser, Gordon & Kapfhammer, Gregory M., 2016 return
- AVMf: An open-source framework and implementation of the alternating variable method
McMinn, Phil & Kapfhammer, Gregory M., 2016 return
- Virtual mutation analysis of relational database schemas
McMinn, Phil & Kapfhammer, Gregory M. & Wright, Chris J., 2016 return
- The effectiveness of test coverage criteria for relational database schema integrity constraints
McMinn, Phil & Wright, Chris J. & Kapfhammer, Gregory M., 2015 return
- Automatic detection of potential layout faults following changes to responsive web pages
Walsh, Thomas A. & McMinn, Phil & Kapfhammer, Gregory M., 2015 return
- Test suite reduction methods that decrease regression testing costs by identifying irreplaceable tests
Lin, Chu-Ti & Tang, Kai-Wei & Kapfhammer, Gregory M., 2014 return
- The impact of equivalent, redundant, and quasi mutants on database schema mutation analysis
Wright, Chris J. & Kapfhammer, Gregory M. & McMinn, Phil, 2014 return
- Using non-redundant mutation operators and test suite prioritization to achieve efficient and scalable mutation analysis
Just, René & Kapfhammer, Gregory M. & Schweiggert, Franz, 2012 return
- Empirically studying the role of selection operators during search-based test suite prioritization
Conrad, Alexander P. & Roos, Robert S. & Kapfhammer, Gregory M., 2010 return
- Regression testing
Kapfhammer, Gregory M., 2010 return
- A genetic algorithm to improve Linux kernel performance on resource-constrained devices
Kukunas, James & Cupper, Robert D. & Kapfhammer, Gregory M., 2010 return
- A comprehensive framework for testing database-centric applications
Kapfhammer, Gregory M., 2007 return
- Time-aware test suite prioritization
Walcott, Kristen R. & Soffa, Mary Lou & Kapfhammer, Gregory M. & Roos, Robert S., 2006 return
- Software testing
Kapfhammer, Gregory M., 2004 return
- A family of test adequacy criteria for database-driven applications
Kapfhammer, Gregory M. & Soffa, Mary Lou, 2003 return