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

gvwilson post

@sue +100 to this, except I think that learning to code has become more daunting than ever thanks to package managers, CI/CD, linting tools, etc. - I've been doing this a while, and I find lists like https://willigottstein.medium.com/from-good-code-to-reliable-software-a-practical-guide-to-production-ready-python-packages-aa881c2c31e9 intimidating. (Type hints in Python? Whatever happened to the friendly, approachable little language I once knew?)

Feb 1, 2026
sue post

Honestly I think there is a lot to this, when I see some of the guides to using LLMs for folk without coding skills I think I could more easily just teach them to code. The mystification of coding is also a huge part of the appeal of this stuff for lots of people.

Feb 1, 2026
adamchainz post

✍️ New post on using Memray to profile the memory usage of a Django project.

You can use this tool to find and eliminate memory-costly lines of code. The example in the post finds and removes a costly import, reducing startup time.

https://adamj.eu/tech/2026/01/29/django-profile-memray/

#Django #Python

Jan 29, 2026
paul post

Regular reminder: 85,000 developers a week run the wrong commands `npm add user` instead of the correct `npm adduser`

https://www.npmjs.com/package/user

Jan 29, 2026
hugovk post

Using the new Tachyon profiler coming to Python 3.15 I profiled a one-liner to find a bottleneck, then sped up some 26-year-old code in @pillow!

https://hugovk.dev/blog/2026/faster-pillow/

#Python #python315 #Tachyon #Pillow #PythonPillow #performance

Jan 28, 2026
See more posts at Mastodon

GMK

Top