I recently hosted an episode of Software Engineering Radio called "Jennings Anderson and Amy Rose on Overture Maps"!

  • Home
  • Teaching
    • Overview
    • Algorithm Analysis
    • Document Engineering
  • Research
    • Overview
    • Papers
    • Presentations
  • Outreach
    • Software
    • Service
    • Blog
  • About
    • Biography
    • Schedule
    • Contact
    • Blog
    • Service
    • Papers
    • Presentations

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 subscribing to my mailing list.

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

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

Systemic flakiness: An empirical analysis of co-occurring flaky test failures

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

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

Where tests fall short: Empirically analyzing oracle gaps in covered code

Proceedings of the 19th International Symposium on Empirical Software Engineering and Measurement

2025
Megan Maton, Gregory M. Kapfhammer, Phil McMinn

Exploring pseudo-testedness: Empirically evaluating extreme mutation testing at the statement level

Proceedings of the 35th International Conference on Software Maintenance and Evolution

2024
Megan Maton, Gregory M. Kapfhammer, Phil McMinn
No matching items

Read all of my research papers

Featured Presentations

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

Up and running with GitHub, GitHub Classroom, and GitHub Actions

PyCon Education Summit

2025
Hemani Alaparthi, Gregory M. Kapfhammer

ExecExam: Streamlining Python assessments with automation and personalized feedback

PyCon Poster Symposium

2025
Hemani Alaparthi, Pallas-Athena Cain, 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
PeerJ Computer Science JournalAcademic Editor2026 - 2019
Journal of Software: Evolution and ProcessAssociate Editor, Reviewer2026 - 2012
No matching items

Investigate all of my professional service

Recent Posts

Insights from my Software Engineering Radio interview with Samuel Colvin

How does Pydantic support Python programming?

2025
Gregory M. Kapfhammer
2 min

Is slicing or mutation testing better at automatically identifying weaknesses in your test suite?

How can we best find the blind spots of our test suites?

2025
Gregory M. Kapfhammer
3 min

When flaky tests fail together: Empirical evidence for systemic flakiness

Flaky tests often cluster together with shared root causes!

2025
Gregory M. Kapfhammer
4 min

Insights from my Software Engineering Radio interview with Will McGugan

How do you build text-based user interfaces?

2025
Gregory M. Kapfhammer
3 min

Insights from my Software Engineering Radio interview with Eran Yahav

How does Tabnine automate the engineering process?

2025
Gregory M. Kapfhammer
3 min
No matching items

Read all of my blog posts

Media Appearances

EventVenueRole
"2025 Python Year in Review"Talk Python PodcastGuest
"Gregory Kapfhammer on Flaky Tests"Code with Jason PodcastGuest
"Jennings Anderson and Amy Rose on Overture Maps"Software Engineering RadioHost
"Kacper Łukawski on Qdrant Vector Database"Software Engineering RadioHost
"Samuel Colvin on the Pydantic Ecosystem"Software Engineering RadioHost
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

  • Cellveyor: Easily convey reports from Google Sheets to GitHub

  • Chasten: Configurable linting tool that uses XPath expressions

  • 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

thdxr post

i'm confused why no one ever thinks about the psychology behind this stuff

when a programmer tells you "my entire job is just prompting" they are just very excited about discovering a novel way of working

every tool whether it's neovim or AI or functional programming starts off with a period of overuse because we're all looking for the feeling of finding a secret everyone else is missing out on

the novelty also makes you literally work harder (temporarily) because you love experiencing the new setup

after time goes by you eventually realize you lied to yourself about how much of an impact it was making and settle into something more balanced

anyone not self aware of this dynamic is going through it for the first time
https://bird.makeup/users/deedydas/statuses/2000472514854825985

Dec 16, 2025
thdxr post

early in my career when i was learning a new tech or language i would tinker and google whenever i hit a roadblock

eventually i realized books had all the information i needed pre-googled for me

i think this is happening again with LLMs - sometimes i waste so much time letting the LLM keep taking swings instead of reading something

hope the industry doesn't abandon producing good reading material

Feb 16, 2026
dhh post

I fully appreciate how hyperbolic this must sound to anyone who haven't started working with the latest models. For me, the inflection point was Opus 4.5, and now the fast catch-up of Kimi K2.5. It's just completely different from what we had even last summer.

Feb 24, 2026
nedbat post

The AI hype-cyclone is bad, but so is the anti-AI witch hunt. Commits co-authored by Claude do not mean that a project has "abandoned engineering as a serious endeavor"

Would we say that accepting contributions from new developers means we've "abandoned engineering as a serious endeavor"? No.

Claude can write wrong code. New contributors can write wrong code. What matters is what you do with that code after it's been written.

Feb 25, 2026
itamarst post

You want your code to be faster, or at least not to get slower.

Step 1. Add benchmarks to CI. This will catch accidental regressions.

Step 2. You spend a day adding a feature, submit a PR... and discover you accidentally made an important code path slower. You don't know which particular commit was at fault, though.

Step 3. Add unit tests that will catch changes to speed, so you can catch potential regressions immediately, while coding a feature or bugfix. Or, that's the theory anyway.

Here's some thoughts on how to do step 3: https://pythonspeed.com/articles/speed-unit-tests/

Feb 26, 2026
See more posts at Mastodon

GMK

Top