I recently hosted an episode of Software Engineering Radio called “Jeroen Janssens and Thijs Nieuwdorp on Using Polars”!

  • Home
  • Teaching
    • Overview
    • Algorithm Analysis
    • Computer Security
  • Research
    • Overview
    • Papers
    • Presentations
  • Outreach
    • Software
    • Service
    • Blog
  • About
    • Biography
    • Schedule
    • Contact
    • Blog
    • Service
    • Papers
    • Presentations
    • Light
    • Dark
    • System

Contents

  • Research Expertise
  • Featured Papers
  • Featured Presentations
  • Professional Service
  • Recent Posts
  • Media Appearances
  • Highlighted Courses
  • Software Engineering
  • Status Updates

Gregory M. Kapfhammer

Code
from rich.console import Console
console = Console()
console.print(
    ":rocket: Hi! I'm a researcher, teacher, podcaster, and software developer!"
)
🚀 Hi! I'm a researcher, teacher, podcaster, and software developer!

Innovating in technical areas such as software engineering and software testing, I teach courses, conduct research, write papers and a blog, give presentations, create software, and serve organizations. Working as an Associate Professor in the Department of Computer and Information Science at Allegheny College, I am an associate editor for the Journal of Software: Evolution and Process, an academic editor for the PeerJ Computer Science journal, a program committee member for conferences like the International Conference on Software Testing, Verification and Validation and the International Conference on Software Engineering, and a reviewer for journals like Transactions on Software Engineering and the Journal of Software Testing, Verification and Reliability. Along with media appearances on podcasts like Stack Overflow and Talk Python, I interview the world’s leading experts on software engineering as a co-host of Software Engineering Radio. You can learn more about me and my work by reading my biography, downloading my curriculum vitae, and staying in touch with me.

Research Expertise

  • Database Testing: Automatically test relational database schemas

  • Flaky Tests: Find and fix unpredictable and harmful test cases

  • Mutation Testing: Using automatically seeded defects to evaluate tests

  • Regression Testing: Efficiently and effectively rerunning test suites

  • Web Testing: Detecting and repairing responsive web page layout

Explore all of my areas of research expertise

Featured Papers

Test flimsiness: Characterizing flakiness induced by mutation to the code under test

Proceedings of the 48th International Conference on Software Engineering

2026
Owain Parry, Gregory M. Kapfhammer, Michael Hilton, Phil McMinn

FlakeFighters: A PyTest plugin to detect flaky test failures

Proceedings of the 41st International Conference on Automated Software Engineering – Tools and Datasets Track

2026
Michael Foster, Owain Parry, Michael Hilton, Gregory M. Kapfhammer, Phil McMinn

Empirically comparing hazard-guided LLM mutation techniques with existing LLM- and rule-based approaches

Proceedings of the 30th International Conference on Evaluation and Assessment in Software Engineering

2026
Megan Maton, Gregory M. Kapfhammer, Phil McMinn

multiplex: A modular LLM-based mutation framework

Proceedings of the 41st International Conference on Automated Software Engineering – Tools and Datasets Track

2026
Megan Maton, Gregory M. Kapfhammer, Phil McMinn

Beyond test flakiness: A manifesto for a holistic approach to test suite health

Proceedings of the 2nd International Flaky Tests Workshop

2025
Phil McMinn, Muhammad Firhard Roslan, Gregory M. Kapfhammer
No matching items

Read all of my research papers

Featured Presentations

Don’t blame the type checker: Automatically finding who is right when Python type checkers disagree

PyOhio

2026
Benedek Kaibas, Gregory M. Kapfhammer

Testing the parts you don’t see: Pseudo-tested native code in Python libraries

PyOhio

2026
Issei Hasegawa, Gregory M. Kapfhammer

Building and deploying course websites with Python, Quarto, and Mkdocs

PyCon Education Summit

2025
Alish Chhetri, Gregory M. Kapfhammer

Automated and configurable programming project checking with Chasten

PyCon Education Summit

2025
Daniel Bekele, Jaclyn Pham, Gregory M. Kapfhammer

Chasten your Python program: Configurable program analysis and linting with XPath

PyOhio

2025
Daniel Bekele, Jaclyn Pham, Gregory M. Kapfhammer
No matching items

Review all of my research presentations

Professional Service

VenueRole(s)Year(s)
International Conference on Software Maintenance and EvolutionTool Demonstrations Program Committee2026 - 2025
International Flaky Tests WorkshopProgram Committee Member2026 - 2024
International Symposium on Software Testing and AnalysisProgram Committee Member, Tool Demonstrations Program Committee Member2026 - 2023
International Conference on Automated Software EngineeringProgram Committee Member2026 - 2020
PeerJ Computer Science JournalAcademic Editor2026 - 2019
No matching items

Investigate all of my professional service

Recent Posts

Insights from my Software Engineering Radio interview with Jeroen Janssens and Thijs Nieuwdorp

What makes Polars a fast and expressive data frame library?

2026
Gregory M. Kapfhammer
5 min

Insights from my Software Engineering Radio interview with Scott Kingsley

How does Swagger help you design, test, and document APIs?

2026
Gregory M. Kapfhammer
5 min

Insights from my Software Engineering Radio interview with Danny Yang and Sam Goldman

How does Pyrefly type check Python code so quickly?

2026
Gregory M. Kapfhammer
5 min

Insights from my Software Engineering Radio interview with Dave Airlie

How does the Linux kernel get maintained at scale?

2026
Gregory M. Kapfhammer
4 min

Can mutating the code under test make a stable test go flaky? Yes, and it happens more than you think!

Introducing test flimsiness — a new concept in flaky test research!

2026
Gregory M. Kapfhammer
3 min
No matching items

Read all of my blog posts

Media Appearances

EventVenueRole
"Jeroen Janssens and Thijs Nieuwdorp on Using Polars"Software Engineering RadioHost
"Scott Kingsley on the Swagger Ecosystem"Software Engineering RadioHost
"Danny Yang and Sam Goldman on the Pyrefly Type Checker"Software Engineering RadioHost
"Dave Airlie on Linux Kernel Maintenance"Software Engineering RadioHost
"2025 Python Year in Review"Talk Python PodcastGuest
No matching items

Learn more by reading my professional biography

Highlighted Courses

  • Algorithm Analysis: Implement and evaluate correct and efficient algorithms

  • Data Abstraction: Build and manipulate correct and efficient data structures

  • Discrete Structures: Clearly connect mathematics to Python programming

  • Operating Systems: Build and understand operating system components

  • Software Engineering: Team-based introduction to building software systems

Explore all of my teaching materials

Software Engineering

  • Flakefighters: Pytest plugin for detecting and classifying flaky tests

  • Formtuist: Programmatically create, complete, and circulate flexible forms

  • GatorGrade: Python front-end for the GatorGrader assessment tool

  • GatorGrader: Automated assessment for source code and writing

  • SchemaAnalyst: Data generation and mutation analysis for database schemas

Benefit from my open-source software

Status Updates

GMK

Top