Mobile apps are extremely popular nowadays but testing them is very challenging and time-consuming for software engineers. Despite software engineering efforts to make mobile apps work well and reliably, they may contain bugs or issues, just like any other types of software. And if an app has many bugs, crashes regularly, or works unreliably, users will simply uninstall it from their devices and find alternatives in mobile app stores. Testing these apps thoroughly before they are released to end-users is therefore paramount to their success, but doing so is extremely difficult given the vast diversity of devices and environments in which these apps usually run. Manual testing is simply not sufficient to detect faults and correct them within reasonable timeframes. In this context, several tools have been proposed to automatically test mobile applications, achieving high code coverage and crash discovery. While useful for crash reproduction and bug-fixing, these techniques and tools usually do not present the generated test scenarios in a format that motivates developers to read and modify such tests later on. This hinders the developers' ability to add those tests to their existing test suites, or adapt them to new scenarios – common practices in modern software development where tests are maintained and evolve alongside production code. This project aims to investigate how to automatically generate fully re-executable and effective test cases for mobile apps and will develop techniques and tools that will help developers test their mobile apps more effectively.
About the Supervisor
Dr José Miguel Rojas Siles is a Lecturer in Software Testing at the Department of Computer Science. He received a PhD in Software and Systems from the Technical University of Madrid (Spain, 2013) and was a Research Associate at the Department of Computer Science at Sheffield (2014-2017) before joining the University of Leicester as a Lecturer in Software Engineering.
His research work focuses on search-based automated test generation and its application in real-world software development scenarios. His interests include empirical software engineering, automated software testing, and software engineering education.
His work has been published in the top venues of logic programming (ICLP), software engineering (ICSE and ASE), software testing (ISSTA and ICST) and search-based software engineering (SSBSE and GECCO) and has been awarded multiple distinguished paper awards.
This project aims to investigate how to automatically generate fully re-executable and effective test cases for mobile apps and will develop techniques and tools that will help developers test their mobile apps more effectively. Techniques and tools will be develop to this end, either from scratch or by extending the state-of-the-art.
In previous work , we have identified a set of challenges that will be investigated in this project, in particular in the context of Android apps and Espresso tests . The first work package in this project involves expanding these challenges to develop a comprehensive understanding of the research challenges associated to the problem and mapping them to existing techniques and tools that could be used to solve them.
Based on the understanding developed in the first work package of the project, the core of the project will involve developing a novel set of techniques that could be used to automatically generate executable mobile app tests (e.g., widget-based approaches ). These techniques will be implemented in research prototypes and their effectiveness measured in terms of the code coverage and fault detection via lab experiments and in terms of developer perception, by means of studies with users (professional developers and computer science student volunteers). This work package includes several open challenges or sub-tasks, such as how to measure coverage of Android app tests, mutation analysis as a proxy for fault effectiveness, and the design of meaningful user studies to evaluate the effectiveness of the research tools.
The project will be carried out in collaboration with international academic collaborators and local industrial partners, e.g., University of Buenos Aires (Argentina), University of Passau (Germany) and British Telecom (UK).
About the Department
You will be part of the Software Testing research group (https://www.sheffield.ac.uk/dcs/research/groups/testing) within the Department of Computer Science at Sheffield. You will also have the opportunity to interact and collaborate with other research groups in the department, e.g., Machine Learning or Security (https://www.sheffield.ac.uk/dcs/research). The Testing research group is one of the largest testing groups in the UK, with several of its members being widely recognised within the software engineering and testing research communities worldwide.
99 percent of our research is rated in the highest two categories in the REF 2021, meaning it is classed as world-leading or internationally excellent. We are rated as 8th nationally for the quality of our research environment, showing that the Department of Computer Science is a vibrant and progressive place to undertake research.
Applicants will hold at least a 2:1 degree in Computer Science or a related subject. Strong interest in software testing and quality assurance. Solid software development skills in any programming language. Good communication and organisational skills.
If English is not your first language, you must have an IELTS score of 6.5 overall, with no less than 6.0 in each component.
How to Apply
To apply for a PhD studentship, applications must be made directly to the University of Sheffield using the Postgraduate Online Application Form. Make sure you name Dr José Miguel Rojas Siles as your proposed supervisor.
Information on what documents are required and a link to the application form can be found here - https://www.sheffield.ac.uk/postgraduate/phd/apply/applying
The form has comprehensive instructions for you to follow, and pop-up help is available.
Your research proposal should:
-be no longer than 4 A4 pages, include references
-outline your reasons for applying for this studentship
-explain how you would approach the research, including details of your skills and experience in the topic area