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 work seeks to understand how software tests can be better designed to reveal bugs, and how we can provide developers with techniques that can help them discover 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.

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, it also includes a stipend for living expenses.

Please email me for more information.

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]
[GS]
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]
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]

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.