Qualify refactored legacy software through generation of test cases and models bij ASML


Background information

In the software metrology department at ASML a number of software modules have been constructed during the past few years. The modules quickly grew in complexity and size forming a complex legacy software with many technical debts and architectural decays. In order to facilitate the introduction of new innovations, refactoring of existing legacy code is required. However, ensuring the correctness of the refactored systems is vital to avoid any risk of breaking existing functionality. For this purpose, we are investigating techniques to automatically verify the correctness of the new refactored systems through the generation of models and test cases from legacy systems and use them as basis for software qualification.

Your assignment

The assignment will explore novel and the state of the arts methods and techniques to extract knowledge from various software artifacts and will involve the following topics:

  • Study software metrics to measure the quality of code before and after the refactoring steps.
  • Study various techniques of extracting hidden knowledge from legacy code (e.g., graph walkers, static analysis, active/passive learning
  • Study techniques and frameworks for testing and systematic test case and model generation.
  • Build a prototype tool to qualify any refactored code base.
  • Validate the prototype tooling on existing software at metrology.
  • Prepare a list of (anti-)patterns encountered during refactoring, knowledge extraction and testing.
  • Document and present your findings.

Your profile

You are a master student in Computer Science who has knowledge in C/C++ or Java. Prior knowledge of state machines, software metrics, process mining, model checking, model-based testing and/or Eclipse modeling tools is a plus. You have good analytical skills and can work independently. Furthermore, your English communication skills are good. This is a graduation assignment with a minimum duration of 6 months, for at least 4 days a week. Please keep in mind that we can only consider students (who are enrolled at a school during the whole internship period) for our internships and graduation assignments.

What ASML offers

Your internship will be in one of the leading Dutch corporations, gaining valuable experience in a highly dynamic environment. You will receive a monthly internship allowance of 500 euro (maximum), plus a possible housing or travel allowance. In addition, you’ll get expert, practical guidance and the chance to work in and experience a dynamic, innovative team environment.

ASML: Be part of progress

We make machines that make chips – the hearts of the devices that keep us informed, entertained and safe; that improve our quality of life and help to tackle the world’s toughest problems. We build some of the most amazing machines that you will ever see, and the software to run them. Never satisfied, we measure our performance in units that begin with pico or nano. We believe we can always do better. We believe the winning idea can come from anyone. We love what we do – not because it’s easy, but because it’s hard.

Students: Getting ready for real-world R&D

Pushing technology further is teamwork, and our R&D team is more than 5,500 people strong, with major sites on three continents. Dozens of diverse, interdisciplinary teams work in parallel to meet a challenging development schedule. In such an environment, your colleagues may be sitting next door, or they could be thousands of kilometers away in a different country, or even working for a different company. An internship at ASML is your opportunity to get to know this world of industrial-strength R&D and get a feel for that excites you most. Will you design a part of the machine, or make sure it gets built to the tightest possible specifications? Will you write software that drives the system to its best performance, or work side-by-side with the engineers of our customers in a fab, optimizing a system to the requirements of the customer?