Job Description
Software testing is a critical part of the software development process, ensuring that software behaves as expected and meets the requirements. Developers are typically responsible for writing and maintaining test cases, which can be time-consuming and error prone. Automated test generation tools can help developers by automatically generating test cases, reducing the manual effort required. These tools are increasingly being adopted in continuous integration and continuous deployment (CI/CD) practices to automate testing and deployment.
This PhD position focuses on the challenges and opportunities in testing for dynamically typed programming languages. Dynamically typed languages like Python and JavaScript offer flexibility and rapid prototyping but introduce unique testing challenges, particularly compared to statically typed languages. These challenges include runtime type errors, lack of compile-time guarantees, and issues related to type inference and coverage. As a PhD student, you will explore innovative testing methodologies, frameworks, and tools to address these challenges, contributing to the state-of-the-art in software testing. You will make use of the latest advances in software testing, including search-based test case generation, symbolic execution, and large language models to improve the quality and efficiency of testing for dynamically typed languages. You will also work on applying these techniques to real-world software systems, collaborating with industry partners and contributing to open-source projects.
As a PhD candidate, you will learn to:
- Conduct original research on testing techniques for dynamically typed languages.
- Develop tools, algorithms, and methodologies to improve testing effectiveness and efficiency for both unit-level and integration level testing.
- Analyze and compare the testing challenges between dynamically and statically typed languages.
- Publish research findings in top-tier journals and conferences.
- Collaborate with researchers and practitioners in the field.
You will work as part of the Software Engineering Research Group at TU Delft, an internationally recognized research group with a strong focus on empirical research, conducted in close collaboration with software development practice. SERG is known for its research on software testing, program analysis, mining software repositories, and empirical software engineering with close collaboration with industry partners (e.g., JetBrains, ING, Adyen, Ripple). The group has a strong track record of publishing in top-tier venues, such as ICSE, FSE, and ASE. As a candidate, you will have the opportunity to collaborate with experienced researchers, attend conferences, and experience an international research environment. The position will focus on research, with optional contributions to education and supervision of students.
As a group, we are committed to creating a diverse and inclusive research environment and encourage applications from all qualified candidates, regardless of their background or experience. We believe that diversity contributes to a more innovative and creative research community. If you do not meet some of the optional requirements listed, we encourage you to still apply and explain how your unique experience and skills can contribute to our research.
Job requirements
Academic Qualifications (as per the TU Delft Graduate School):
- A Master's degree in Computer Science, Software Engineering, closely related discipline.
- Proficiency in the English language.
Domain Knowledge:
- Familiarity with Software Engineering and Software Testing methodologies (desirable).
- Understanding of Artificial Intelligence and/or Machine Learning concepts (desirable).
Technical Skills:
- A strong technical foundation (essential).
- Programming experience in JavaScript and Python (desirable).
Interpersonal Skills (desirable):
- A collaborative mindset and effective communication skills.
- Strong problem-solving abilities, with a proactive and independent approach to tackling challenges.
- Open to feedback and eager to learn from peers, supervisors, and the academic community.
- A curiosity-driven mindset with a passion for advancing knowledge in your field.
TU Delft (Delft University of Technology)
Delft University of Technology is built on strong foundations. As creators of the world-famous Dutch waterworks and pioneers in biotech, TU Delft is a top international university combining science, engineering and design. It delivers world class results in education, research and innovation to address challenges in the areas of energy, climate, mobility, health and digital society. For generations, our engineers have proven to be entrepreneurial problem-solvers, both in business and in a social context.
At TU Delft we embrace diversity as one of our core values and we actively engage to be a university where you feel at home and can flourish. We value different perspectives and qualities. We believe this makes our work more innovative, the TU Delft community more vibrant and the world more just. Together, we imagine, invent and create solutions using technology to have a positive impact on a global scale. That is why we invite you to apply. Your application will receive fair consideration.
- CV
- Motivational letter
Doing a PhD at TU Delft requires English proficiency at a certain level to ensure that the candidate is able to communicate and interact well, participate in English-taught Doctoral Education courses, and write scientific articles and a final thesis.
- You can apply online. We will not process applications sent by email and/or post.
- A pre-employment screening can be part of the selection procedure.
- For the final candidates, a knowledge security check will be part of the application procedure.
Het salaris bedraagt €2901 - €3707