Thesis Supervision
General Information
You would like to write your thesis at the Chair of Software Engineering II? We offer topics in the following courses:
- Bachelor Computer Science
- Bachelor Internet Computing
- Master Computer Science
Application
For general information about the research topics at the chair, check out ongoing Projects, Publications, Teaching, as well as completed Bachelor Theses and Master Theses.
For information on available thesis topics, either contact an employee directly or by e-mail at se2theses@fim.uni-passau.de. Please send us your email request from your student / FIM email address with the following information:
- Short resume
- Complete excerpt from grades (passed and failed exams),
- List of subject areas that interest you (e.g. search-based software testing, testing of autonomous cars, ...)
Procedure
1. Preparation phase: After you have decided on a topic, you familiarize yourself with this topic and plan your work. You decide on the research questions that you want to answer, deal with relevant literature and plan all the steps that are necessary to answer the research questions. This phase is completed by a presentation to the staff of the chair or a written proposal. Only if you successfully complete this phase and your presentation / proposal is accepted you can register your work with the examination office.
2. Implementation phase: Depending on the degree program, you have three or six months to complete your work and submit it to the examination secretariat after registration. You are free to hand in your work before this deadline. Discuss the schedule and other modalities with your supervisor. We expect you to behave proactively, which means that in the event of problems, it is your responsibility to inform your supervisor.
3. Final presentation: A final presentation is mandatory in all current study and examination regulations. Depending on the arrangement with your supervisor, this takes place shortly before or after completion of the work in front of the staff of the chair. In this lecture you present the results of your work.
Please note our presentation guidelines (PDF-Version), which also apply for seminar presentations.
Requirements
- Students write their thesis in German or English.
- All results, implementations and data must be published under a suitable open source license (exceptions: data protection, non-disclosure agreements).
- There is an option to maintain a private repository on on our local GitLab to manage source code, experiments, and written work. Alternatively, you can create a repository yourself on GitHub or GitLab. Your work supervisor must have access to this repository to simplify operations.
SS 2024 |
---|
Michael Baumgartner: Improving code readability in practice: Focus on the change |
Valentin Damjantschitsch: Commenting feedback on Scratch projects — Effects on code quality and reaction analysis |
Sebastian Dechant: Combining Neuroevolution with Novelty Search to Overcome Static Screens in Scratch Programs |
Jonas Elsper: Einfluss von Codequalität Hinweisen in Tutorial Systeme für blockbasierte Sprachen |
Thomas Fellner: Applying Abstraction and Mocking on Tests through Gamification |
Tim Greller: Teaching Software Testing and Debugging with the Serious Game Sojourner under Sabotage |
Jonas Heitz: Comparing Unit Test Generation Capabilities of Large Language Models to Pynguin |
Kilian Lichtenauer: Effects of Assertion Transformations on Automatic Repair |
Xhyla Musliu: Generative Art: Teaching Students to Code through Creative Programming |
Lisa Seisenberger: Accessibility in software development: A comparison of awareness between students and employees |
Patrick Urlberger: A Readability Plugin for the IDE |
Victor Vollmann: Analyzing the Intersection of Youth, Technology, and Society in Scratch |
WS 2023/24 |
---|
Alexander Degenhart: Empirical Evaluation of Equivalence in Mutants Created Manually with Code Defenders |
Michael Grüner: Die Suche nach den Mutanten: Codeänderungsverfolgung in Gamekins |
Jasper Herting: Hyperparametertuning-Strategien für Code2Vec - Implementierung und Analyse eines zweistufigen Tuning-Verfahrens |
Johannes Schmid: The Future of Input Management: Exploring Generative AI Solutions |
Jakob Silbereisen: Perfuming Java for learners: an adoption of Code Perfumes for Java |
SS 2023 |
---|
Markus Obermaier: Auswirkungen der automatischen Typannotierung durch Monkeytype auf Deeptyper und die Testgenerierung durch Pynguin |
WS 2022/23 |
---|
Ivan Charviakou: Application of NLP techniques to increase the eciency of mutation testing |
Sebastian Vogt: Analysing the Influence of the Fitness Function on the Fitness Landscape of the Android Black-Box Test Generation Problem |
SS 2022 |
---|
Bakhanovich, Ihar: Illuminated AsFault: Combining Segment-based Road Generation and Illumination Search for Testing Lane Keeping Systems |
Leonhard Bauer: Gamification of Software Testing on the GitLab Collaboration Platform |
Gössmann, David: Capturing and Mining Programming Actions in Scratch |
Kästl, Leonhard: The Behavior of Scratch Sprites by Inferring State Machine Models |
Königseder, Maximilian: DeepTyper für Python und der Einfluss von Typvorhersagen auf die automatische Testgenerierung |
Pernerstorfer, Robert: Automatic Detection of Bad Coding Practices in Educational Robot Programs |
Piehler, Jonas: Eine Studie zur Untersuchung ausgewählter Faktoren von GUI-Traversal-basierter Testgenerierung für Android Applikationen |
Rauch, Matthias: Pygram - Bug Detection with N-gram Language Models for Python Projects |
Scharnböck, Fabian: Flakiness in automatically generated Python tests: An empirical study |
WS 2021/22 | |
---|---|
Beck, Florian: Code2Vec für Scratch | |
Bloch, Lena: Positive Linting for Scratch Programs | |
Euler, Urs: Development of a block-based frontend for automated Scratch tests | |
Ewald, Verena: Geschlechtsspezifische Unterschiede in Programmierkursen für Kinder | |
Kasberger, Christian: Using spectrum based fault localization to find root causes of flaky tests | |
Petereins, Victor: Entwicklung eines Statistiktools zur Visualisierung und Analyse der Durchführung von automatisierten Softwaretests |
SS 2021 |
---|
Borgards, Ben: A Coverage-based Greybox Fuzzing approach for Android GUI Testing |
Buchner, Simon: Refactoring in Scratch |
Caspari, Laura: Tracking and Analysing Programming Sequences in Scratch |
Dassow, Dominik: Evolutionary Computation and Swarm Intelligence in the Field of Music Recommender Systems |
Grieser, Eva: Gender Differences when Implementing a Scratch Program: an Empirical Analysis |
Häuslein, Fabian: Scratch Tutorialsystem: Eingliederung testbasierter Tutorien in Scratch |
Jäger, Jakob: Defining a Measurement for the Quality of Type Annotations in Python using Mutation Analysis |
Jungwirth, Maximilian: Challenging Developers to Remove Test Smells |
Stockinger, Simone: Sentiment-Analyse von Scratch-Kommentaren |
Straubinger, Florian: Mutation Analysis to Improve the Generation of Assertions for Automatically Generated Python Unit-tests |
Zauner, Daniel: PySketchFix - Automated Program Repair Tool for Python |
WS 2020/21 |
---|
Bloch, Matthias: Visualizing Data Flow Coverage for Java Classes |
Einwander, Julian: Empirische Analyse der Nutzung von Lambdas in Python |
Fichtner, Fabian: Mutation Analysis in Scratch |
Fraunholzer, Tim: An Empirical Investigation on Road Similarity and its Application to Testing Autonomous Cars |
Gründinger, Eva: Scratch Bug Detection Using the N-gram Language Model |
Haan, Alexander: Surrogate Models for Mobile App Testing |
Isaak, Johannes: Implementing Automated Refactoring for Scratch |
Kern, Christian: Runtime Property Checking on Scratch Programs |
Pusl, Michael: Automated Dependency Inference and Test Suite Execution for Python Projects |
Reißig, Alexander: Ant Colony Optimization Algorithmus -- Implementierung des ACO in MATE und analytischer Vergleich mit anderen Heuristiken für das automatisierte Testen von Android Applikationen |
Steffens, Lukas: Seeding Strategies in Search-Based Unit Test Generation for Python |
SS 2020 |
---|
Diner, Dominik: Exchanging Scratch Error Witnesses between Analysis Frameworks |
Frank, Christian: Search-based Reproduction of Android App Crashes |
Grelka, Felix: Eine empirische Analyse von Flaky-Tests in Python |
Heine, Michael: Generating Urban-like Scenarios to Spot Fuel-Inefficient Behavior of Autonomous Cars |
Körber, Nina: Anomaly Detection in Scratch:Block Patterns and Their Violations |
Kroiss, Florian: Automatic Generation of Whole Test Suites in Python |
Raster, Felix: Combining Ul- and Intent-Fuzzing on Android |
Schrenk, David: Generierung von Typhinweisen in Python mit code2vec und PathMiner |
WS 2019/2020 |
---|
Fierbeck, Simon: Comparing novelty search and multi-objective search for testing self-driving car software |
Krafft, Maren: The Effects of Introducing Programming Concepts to Adults with Scratch |
Nowotny, Karin: Data Flow Anomaly Detection in Scratch Programs |
Prasse, Felix: Automated test suite generation by mapping elites |
Zuch, Noah: Automatisiertes Kombinatorisches Testen für Unit-Testing-Frameworks |
SS 2019 |
---|
Bachmann, Rafael: Specification and Verification of a Multicopter Flight Controller |
Blöchl, Markus: Code Clone Detection in Scratch |
Hierl, Markus: Automatic Generation of Driving Simulations from Labeled Video Data |
Galdobin, Sabina: Scratch Debugging: Vergleich der Vorgehensweise von Studierenden und Schulkindern |
Lerchenberger, Jonas: Gamification in Software Engineering: Code Coverage als Ziel eines Test-Spiels |
Kreis, Marvin: Whisker: Automated Testing of Scratch Programs |
Sulzmair, Florian: Identification and Automated Analysis of Common Bug Patterns in Scratch Programs |
Ziegler, Tobias: Ein automatisierter Spieler zu Unterstützung in der Software Testing Lehre |
WS 2018/2019 |
---|
Gruber, Michael: Teaching Software Testing Techniques to Novice Programmers Using a Mutation Testing Game |
Keller, Sebastian: Using Plan-Driven Development in Educational Programming Projects |
Vogl, Sebastian: Analysis of the Pareto Archived Evolution Strategy for Many-Objectives Test Generation |
SS 2024 |
---|
Gonzalo Andrés Oberreuter Álvarez: Effects of the Implementation of a Graph-Based Object Synthesis Heuristic on Pynguin |
Ameer Anqawe: Gamekins IntelliJ plugin |
Emily Courtney: Automatic Question Generation for Block-Based Programs |
Joshua Fazel: Construction Safety Training in Virtual Reality with Interactive NPCs |
Anastasia Penkova: Zero-downtime deployments of event-driven applications |
Severin Primbs: AsserT5: Automated Generation of Test Assertions using a Large Language Model Approach |
Gregor Sarubenko: Evaluating the Effectiveness of HyperNEAT for Testing Scratch Games Using Different Substrate Configurations |
Vibhash Kumar Singh: Classification and Prioritization of Static Analysis Warnings using Machine Learning |
Siegfried Steckenbiller: Interactive Block-Based Testing in Scratch |
Florian Straubinger: Deep Q-Learning for Testing Games |
Andreas Strobl: Combining MIO and EDA for Search-based Android App Testing |
Sandra Merin Thomas: Static Analysis in the Scratch User Interface |
Parid Varoshi: Integration of a Large Language Model Assistant in Scratch |
WS 2023/24 |
---|
Matthias Bloch: An Empirical Evaluation of Data Flow Coverage |
Seyedehsara Hashemitari: A Master Thesis of C++ Code Readability |
Maximilian Jungwirth: NeuroCodeStylist: Learning Naming Schemes and Format Conventions for Fixing Checkstyle Violations |
Alaa Khalil: Deep Learning-Based Bug Detection in Scratch Programs |
Lukas Krodinger: Advancing Code Readability: Mined & Modified Code for Dataset Generation |
Nikita Semenov: Empowering Search-Based Automatic Program Repair by Using Language Models |
SS 2023 |
---|
Nina Feifel: Breakdown: Automated Generation of Tutorials for Scratch Programs |
Vuong Nguyen: Automatically Generating Accurate Crash Simulations by Combining Natural Language and Image Processing with Metaheuristics |
Michael Pusl: Using Subjective Logic to Judge the Novelty of Test Cases in Search-Based Android Test Generation |
Oliver Wiescholek: JavaDeconstructor: Enabling structural modifications of running Java applications by deconstructing classes |
WS 2022/23 |
---|
Manuel Binder: Deep Reinforcement Learning für Android Testgenerierung |
Adina Deiner: Interrogative Debugging for Scratch |
Dominik Diner: Search-Based Crash Reproduction for Android Apps |
Florian Kroiss: Type Tracing: Using Runtime Information To Improve Automated Unit-Test Generation for Python |
Umme Rabab: Changing trends in female authorship of Software Engineering research community |
Franz Scheuer: STRETCH: Generating Avoidable Scenarios from Car Crash Simulations |
Valeria Stromtcova: Towards the detection of malicious bots in Russian social networks |
Lavannya Varghese: User Influential Analysis of the Scratch Network |
SS 2022 |
---|
Adler, Felix: A Surrogate Model for Search-based Android App Testing |
Bikowski, Jannik: Testing Android Applications Automatically Using Neuroevolution |
Simon Labrenz: Using Checked Coverage as Fitness Function for Test Generation in Python |
Lerchenberger, Jonas: Improving the testing behaviour of developers using Gamification |
Mohapatra, Smruti Ranjan: Embeddings for Scratch Programs using Gated Graph Neural Networks |
Tymofyeyev, Vsevolod: Search-based Test Suite Generation for Rust |
Ziegler, Tobias: Automatic Interaction Testing for Motion Planning Systems |
WS 2021/22 |
---|
Ahmed, Jasim: CRISCE: Automatically Generating Critical Driving Scenarios From Car Accident Sketches |
Disha, Alba: Project categorization in Scratch and analysis of various relations between different categories |
Götz, Katharina: Model-based Testing for Scratch |
Gruber, Felix: Effective Simulation-based Testing of Advanced Driver Assistant Systems with Bayesian Optimization |
Harrat, Ammar: Predicting Test Flakiness in Python projects |
Panyin, Stephen Banin: Vision-Based Multi-Task Learning for Automated Vehicles |
Steinger, Nils: Predictive Mutation Testing for Human-Generated Mutants |
Stocker, Armin: Deconstructed Java: Faster Mutation Testing using COMET (Closed Map Metaprograms) |
SS 2021 |
---|
Afsar, Owais: Deep Learning Prediction Model for Merge Conflicts |
Becker, Leon: Automated App Testing Using Grammatical Evolution |
Bumes, Michael: Analysis of injector closing time measurements using machine learning methods |
Durairaj, Prabaharan: An empirical evaluation of the fault detection ability of checked coverage |
Fein, Benedikt: Automatische Generierung strukturbasierter Hinweise für Scratch-Programme |
Geserer, Sophia: Differential Testing of Scratch Programs in Whisker |
Gogineni, Chaitanya: Hybrid modeling and the prediction of dynamic systems: A case study on the estimation of PMSM rotor temperature |
Hamisu, Abdulhayyu: Mutation Testing: Analysis of Mutation Operators’ Role in the Context of Deep Neural Networks |
Phan, Tran: Gamification of Mutation Testing in Continuous Integration and Continuous Delivery |
Pilgram, Nico: Software Repair for Scratch Applications using Genetic Programming |
Routh, Jairaj: An Evaluation of Fault Localisation for Python Programs |
Srinivasan, Varun Balaji: Hyper-parameters Tuning of Reward functions with Multi-Objective Optimization for Deep Reinforcement Learning |
Zare, Niloufar: Code Readability in Scratch |
WS 2020/21 |
---|
Feldmeier, Patric: Testing Scratch Programs using Neuroevolution |
Griebl, Elisabeth: Code Completion for Scratch |
Gruber, Michael: Automated Testing of Web Services with External Dependencies |
Gulati, Priyansha: Cost Reduction using Random Sampling Strategies on Python Programs |
Hamza, Ahmed: Testing Robustness of Self Driving Car Software by Identifying their Performance Boundary |
Lawal, Abdulhayyu: Mutation Testing: Analysis of Mutation Operators’ Role in the Context of Deep Neural Networks |
Obermüller, Florian: Hint Generation for Scratch With Help of Automated Testing |
Reichenberger, Marco: Measuring Oracle Quality in Python |
Vogl, Sebastian: Encoding the Certainty of Boolean Variables to Improve the Guidance for Search-Based Test Generation |
SS 2020 |
---|
Dhiddi, Saikrishna: Rehabilitating Mutant Immortals - An Empirical Investigation on the Application of Statistical Estimators in Mutation Testing |
Gidwani, Varun: CrashGen: Generation of Vehicle Crash Scenarios |
Govindaswamy, Arun: How Effective is Code Coverage in Correlation to Fault Finding? |
Graßl, Isabella: Semiotische Analyse von Programmcode und -peripherie in Scratch |
Holosynskyi, Robert: Python dataflow coverage |
Huber, Stefan: DriveBuild: Automation of Simulation-based Testing of Autonomous Vehicles |
Tkachuk, Vladyslav: Detecting equivalent mutants in Java |
Jazi, Youssef: Grid-Based Object Tracking in autonomous diving |
Mujahid, Qazi: Automatically Generating Driving Simulations from Videos to Address Safety Issues in Self-Driving Cars |
Müller, Johannes: Declarative Test Case Generation for Autonomous Cars |
Nguyen, Thi Thu Ngan: Efficient Sampling of Car States for Boundary Condition Estimation |
Patil, Sanika: Software bug prediction in python using machine learning approach |
Pleyer, Wenzel: Automating co-simulation for testing Advanced Driver Assistance Systems |
Pradhan, Karthik Srinivas: Test Case Generation from Finite State Machine and Simulation on BeamNG |
Simha, Apsara Murali: Search-based testing of drive comfort in self-driving cars |
Sokyappa, Divya: How Good are Mutants to Replace Real Faults |
Straubinger, Philipp: Motivating Developers to Write more Tests using Gamification |
Tariq, Sameed: Automatic Driving Simulation Generation To Explore Parameters of Crash Scenarios in Self Driving Cars |
Werli, Philemon: Asking the right questions – Adding Interrogative Debugging to Scratch |
Zantner, Niklas: Accelerating the Whisker Test Framework |
WS 2019/2020 |
---|
Böhm, Sebastian: Predicate Granularity in Predicate Abstraction |
Frädrich, Christoph: Combining Test Generation and Type Inference for Testing Dynamically Typed Programming Languages |
Schweikl, Sebastian: Guided Mutation in EvoSuite |
SS 2019 |
---|
Pradhan, Tanshi: Automated Accessibility Testing of Android Applications |
Halgekar, Prathmesh: Novelty Search for Unit Test Generation |
WS 2018/2019 |
---|
Bader, Verena: Parallelizing a Many-Objective Sorting Algorithm for Test Generation |