Profile image of me

Hi! I'm a Professor of Software Engineering at the University of Sheffield.

I care about software quality and reliability. My research and teaching place an important emphasis on software testing.

From AI-driven systems to traditionally programmed software, my research seeks to understand how software tests can be better designed to reveal bugs, and how to best equip developers with automated techniques that enable the discovery of software failures.

Research

My research focusses on developing automated techniques for software testing, to help developers maintain "healthy" test suites that find bugs.

Recently my work has centred on helping developers detect and mitigate "flaky" software tests. I have also worked on mutation analysis approaches to help developers assess the quality of their test suites, including finding areas of code that while executed by tests may only be pseudo-tested. Other past areas of work have included detecting and repairing presentation failures and automatically generating tests using search-based test generation.

My work has been funded by the EPSRC and Meta. I am currently an associate editor for the Software Testing, Verification and Reliability journal, and I lead Sheffield's Testing Research Group.

Team

Testing group November 2024

We are part of the Testing Research Group at the University of Sheffield, one of the largest software testing groups in the UK.

I have previously supervised nine PhD students to completion as first supervisor.

PhD Opportunities

I currently have an open PhD position to start in 2025. This position comes with fees paid. If you are a UK student (or you have settled status), it also includes a stipend for living expenses.

The topic of the PhD position centres on flaky software tests and more information can be found here.

Publications

See my full list of my publications, also recorded on my Google Scholar and DBLP profiles.

Some of my papers that have recently appeared include:

Do Automatic Test Generation Tools Generate Flaky Tests?
M Gruber, MF Roslan, O Parry, F Scharnböck, P McMinn and G Fraser
International Conference on Software Engineering (ICSE), 2024
[PDF]
[DOI]
[]
@inproceedings{Gruber2024,
  author    = "Gruber, Martin and Roslan, Muhammad Firhard and Parry, Owain and Scharnb{\"o}ck,
               Fabian and McMinn, Phil and Fraser, Gordon",
  title     = "Do Automatic Test Generation Tools Generate Flaky Tests?",
  booktitle = "International Conference on Software Engineering (ICSE)",
  year      = "2024"
}

Exploring Pseudo-Testedness: Empirically Evaluating Extreme Mutation Testing at the Statement Level
M Maton, GM Kapfhammer and P McMinn
International Conference on Software Maintenance and Evolution (ICSME), 2024
[PDF]
[]
@inproceedings{Maton2024,
  author    = "Maton, Megan and Kapfhammer, Gregory M. and McMinn, Phil",
  title     = "Exploring Pseudo-Testedness: Empirically Evaluating Extreme Mutation Testing at the
               Statement Level",
  booktitle = "International Conference on Software Maintenance and Evolution (ICSME)",
  year      = "2024"
}

Private — Keep Out? Understanding How Developers Account for Code Visibility in Unit Testing
MF Roslan, JM Rojas and P McMinn
International Conference on Software Maintenance and Evolution (ICSME), 2024
[PDF]
[]
@inproceedings{Roslan2024,
  author    = "Roslan, Muhammad Firhard and Rojas, Jos{\'e} Miguel and McMinn, Phil",
  title     = "Private --- Keep Out? Understanding How Developers Account for Code Visibility in
               Unit Testing",
  booktitle = "International Conference on Software Maintenance and Evolution (ICSME)",
  year      = "2024"
}

Teaching

I teach the first-year COM1001 Introduction to Software Engineering module. Key to the module is team-based software development, writing automated tests, and improving code design through refactoring.

I also teach the third-year COM3529 Software Testing and Analysis module. Topics include how to write effective, maintainable tests, and how to analyse their quality. The module also covers more research-oriented topics such as automatically generating test cases (e.g., through fuzzing and search-based techniques), mutation analysis, and methods for test case priortisation.

I also supervise a range of third year dissertation projects on topics in software engineering, software testing, and on those provided by local industry partners.