I recently hosted an episode of Software Engineering Radio called "Will McGugan on Text-Based User Interfaces"!

  • Home
  • Teaching
    • Overview
    • Data Abstraction
    • Operating Systems
  • 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

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

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

PseudoSweep: A pseudo-tested code identifier

Proceedings of the 35th International Conference on Software Maintenance and Evolution – Tool Demonstrations Track

2024
Megan Maton, Gregory M. Kapfhammer, Phil McMinn

Empirically evaluating flaky test detection techniques combining test case rerunning and machine learning models

Empirical Software Engineering Journal, 28:72

2023
Owain Parry, Gregory M. Kapfhammer, Michael Hilton, 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

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

ExecExam: A tool to facilitate effective executable examinations in Python

PyCon Education Summit

2025
Pallas-Athena Cain, Hemani Alaparthi, Gregory M. Kapfhammer
No matching items

Review all of my research presentations

Professional Service

VenueRole(s)Year(s)
International Flaky Tests WorkshopProgram Committee Member2025 - 2024
International Symposium on Software Testing and AnalysisTool Demonstrations Program Committee2025 - 2024
PeerJ Computer Science JournalAcademic Editor2025 - 2019
Journal of Software: Evolution and ProcessAssociate Editor, Reviewer2025 - 2012
International Workshop on Mutation AnalysisProgram Committee Member2025 - 2010
No matching items

Investigate all of my professional service

Recent Posts

When flaky tests fail together: Empirical evidence for systemic flakiness

Flaky tests often cluster together with shared root causes!

2025
Gregory M. Kapfhammer
3 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

Using eXtreme mutation testing to discover hidden test suite weaknesses

Can tools detect hidden weaknesses in test suites?

2024
Gregory M. Kapfhammer
3 min

Insights from my Software Engineering Radio interview with Itamar Friedman

How can generative AI transform automated testing?

2024
Gregory M. Kapfhammer
3 min
No matching items

Read all of my blog posts

Media Appearances

EventVenueRole
"Will McGugan on Text-Based User Interfaces"Software Engineering RadioHost
"Eran Yahav on the Tabnine AI Coding Assistant"Software Engineering RadioHost
"Itamar Friedman on Automated Testing with Generative AI"Software Engineering RadioHost
"Goran Petrovic on Mutation Testing at Google"Software Engineering RadioHost
"Jonathan Schneider on Automated Refactoring with OpenRewrite"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

amy post

horrible weekend for weeyums :(

May 31, 2025
viticci post

I was able to run the full version of the just-released DeepSeek R1-0528 on my M3 Ultra Mac Studio.

It worked…with 400 GB of RAM.

Here's how it went, along with some technical notes on the whole process for LM Studio and Ollama: https://www.macstories.net/notes/testing-deepseek-r1-0528-on-the-m3-ultra-mac-studio-and-installing-local-gguf-models-with-ollama-on-macos/

May 29, 2025
CoolSWEng post

Wow! The Rust compiler correctly guessed the correct method I should be calling. Helpful and very impressive error handling!

May 29, 2025
tao post

@antoinechambertloir I'm not sure I understand the issue in 1): the conjectures listed in this database are all drawn from public sources, and are already part of the scientific commons. I see no reason why a private company should not be allowed to access this common resource, or to use that resource to build databases in a fashion that is non-exclusionary to other parties (in particular, the existence of this database does not prohibit other researchers from working with these conjectures without using the database).

2) Actually in recent years the fraction of mathematics that can be formalized in Lean's Mathlib has expanded significantly. Just to give one example, the notion of a perfectoid space was formalized back in 2019: https://leanprover-community.github.io/lean-perfectoid-spaces/ . While formalizing the _proofs_ of the core theory of mathematics is still far from reality, the goal of formalizing the majority of the _statements_ of key concepts and conjectures seems quite feasible to me within a few years (particularly with AI assistance).

In general, I would view these developments in positive-sum terms rather than zero-sum terms. If a contribution to mathematics is positive across all subfields, but has a stronger positive contribution in one subfield than in another, I would still view this as a net positive for mathematics, especially given that in time the subfields which could not immediately utilize the contribution can eventually figure out how to do so after interacting with those subfields that could initially benefit from it.

May 29, 2025
mhoye post

My fellow nerds: a question about your personal machines:

What is your favourite quality-of-life tweak you've made to your system?

An alias? A utility, a setting, something in .bashrc or ~/bin?

I'd like to know.

May 29, 2025
See more posts at Mastodon

GMK

Top