“In everyone’s pocket right now is a computer far more powerful than the one we flew on Voyager. I don’t mean your cell phone — I mean the key fob that unlocks your car.”
— Rich Terrile, JPL scientist and member of the Voyager imaging team
I recently hosted an episode of Software Engineering Radio called "Goran Petrovic on Mutation Testing at Google"!
🚀 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. You can learn more about me and my work by reading my biography, downloading my curriculum vitae, and subscribing to my mailing list.
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
Read all of my research papers
Review all of my research presentations
Venue | Role(s) | Year(s) |
---|---|---|
International Flaky Tests Workshop | Program Committee Member | 2025 - 2024 |
International Symposium on Software Testing and Analysis | Tool Demonstrations Program Committee | 2025 - 2024 |
PeerJ Computer Science Journal | Academic Editor | 2025 - 2019 |
Journal of Software: Evolution and Process | Associate Editor, Reviewer | 2025 - 2012 |
International Workshop on Mutation Analysis | Program Committee Member | 2025 - 2010 |
Investigate all of my professional service
Read all of my blog posts
Learn more by reading my professional biography
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
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
“In everyone’s pocket right now is a computer far more powerful than the one we flew on Voyager. I don’t mean your cell phone — I mean the key fob that unlocks your car.”
— Rich Terrile, JPL scientist and member of the Voyager imaging team
@jonmsterling Exactly. Most people don't learn a topic by just working through a textbook.
I'm reasonably confident in (traditional) domain theory now, but that wasn't because I read through Winskel or Gunter. I did some research that involved some of those techniques. I spoke to a few experts. I brushed up on some related fields like topology. I proved a few theorems in a proof assistant.
In the process, I gradually pieced it together from pieces here and there. Now reading Gunter I can understand it fairly easily, but my learning process wasn't by reading the book. I mostly used it as a reference to check I was understanding things correctly.
More exciting news from us? You bet! The #PyConUS 2025 schedule is officially live🗓️🎉
Head to http://us.pycon.org/2025/schedule/ for this year’s amazing lineup, meet our keynote speakers, and register for tutorials, summits & events!
All the details: https://bit.ly/3QFf45P
I have a soft spot for visual formalisms. Some examples:
• neural circuit diagrams (Vincent Abbott)
• revision diagrams (Burckhardt et al)
Any other good examples?