- Software Architecture
- Software Development Methodologies
Wat krijg je
- A challenging assignment
- € 1000 compensation or € 500 + lease car
- Professional guidance
- Training based on your graduation project
- Consult other graduates and colleagues
- Two vacation days per month
- Become a member of Info Support Research
You're going to do
- 65% Research
- 10% Analyzing, designing, realizing
- 25% Documentation
When writing software unit testing is used to verify the code. This way the initial implementation can be tested and in the future new bugs can be detected early. However, how do you test the effectiveness of your tests?
Code coverage measures which lines of code are executed during a test. This number is often used to indicate (in)sufficient testing. However, the execution of the code does not say anything about whether it is doing the right thing. You could write a test that does not assert anything relevant, but will give you good coverage. Therefore, the assertions in the tests need to be tested as well.
Mutation testing can solve this problem. A mutation testing framework will introduce mutants by make tiny changes to the original source code of a program. If a test fails after introducing the mutant, it is killed. If a test still passes, the mutant survived, indicating a test that is not totally effective as a bug could be introduced without being detected. The percentage of killed mutants (the mutation score) is therefore a good indicator for the effectiveness of tests.
There are many ways of introducing mutants into the source code. Mutating sources statement by statement is a logical choice, but not good for performance as the codebase needs to be recompiled or reloaded after every mutation. Mutation switching can provide a solution to speed up the process. With mutation switching all mutants are compiled into the codebase at once and switched on one-by-one at runtime. In the case of Stryker.NET and Styker4s this has resulted in a significant performance boost.
About Info Support Research Center
We anticipate on upcoming and future challenges and ensures our engineers develop cutting-edge solutions based on the latest scientific insights. Our research community proactively tackles emerging technologies. We do this in cooperation with renowned scientists, making sure that research teams are positioned and embedded throughout our organisation and our community, so that their insights are directly applied to our business. We truly believe in sharing knowledge, so we want to do this without any restrictions.
Apply for this assignment
Bespreken (studie)loopbaan, interesses en ambities en introductie Info Support.
Toetsing vakinhoudelijke kennis en persoonlijkheid (capaciteit, competenties en drijfveren).
Verdiepen van vakinhoudelijke kennis en persoonlijkheid.
Contractaanbieding en uitnodiging tekenmoment.
There are many ways of introducing mutants into the source code. Mutating sources statement by statement is a logical choice, but not good for performance. Mutation switching can provide a solution to…
We’ve all seen how neural networks can be used to transfer the artistic style of one image to another image.
Although the implementation of privacy regulations and laws is not a recent development, new laws are being implemented to the challenges and characteristics of the modern information era.
With the rise of automated machine learning tools it becomes much easier for developers to build machine learning models.