Hide menu

Current thesis proposals

What should students learn for their theses? -- a curriculum alignment study (30hp)

During the three to five years students spend in Engineering studies, they take a number of courses that are hopefully related to their work as engineers. To test whether the right mix of courses is offered to our students, we can use openly available material on the kind of final theses students write, and courses that are available as part of their degree programmes as described in the Study Guide and on course web pages.

Using this information, this thesis will use Machine Learning techniques to explore what topics are usually selected for final theses, and how courses prepare students for those final theses by matching course content descriptions with thesis descriptions.

The thesis will contribute to our understanding of the relationship between curriculum development and final theses, hopefully for most Engineering degree programmes at LiU.

Suggested background: Student with experience in Machine Learning, natural language processing, and (some) web programming.

Tuning learning algorithms for optimal regression test ordering (30hp)

Automated testing is a very important prerequisite for Continuous Integration. Automated testing ensures that changes do not cause bugs in existing software, or have otherwise unintended effects. Automated tests need to be efficient, effective and reliable in order for the continuous integration setup to provide the value needed in a modern software development environment. At LiU, we are conducting research in collaboration with several industry partners to identify key issues in software test automation and ensure that contemporary research are integrated in industry practice. So far, there has been many studies on how to optimize regression testing by means of selecting or prioritizing tests to run after individual builds, or reduce the total size of a regression test suite. However, these studies have not resulted in open software for prioritizing or selecting tests

Students are expected to create a Jenkins plugin that allows us to automatically prioritize tests in a workflow based on metrics such as APFD (Average Percentage of Failure Detection), that indicate how early in a test suite failing tests as executed, and techniques such as those introduced by Thomas, Hemmati et al [1] and empirically evaluate the results on company data from our industry partners.

Suggested background: Master's students with experience in Machine Learning and good knowledge of software testing


[1] S. W. Thomas, H. Hemmati, A. E. Hassan, and D. Blostein, “Static test case prioritization using topic models,” Empirical Software Engineering, vol. 19, no. 1, pp. 182–212, 2014.

Software Testing Optimization with respect to hardware setup times (30hp)

When testing hardware in embedded systems, there are typically significant overhead costs to incurred by setting up and initializing the hardware. Developers who want to know if firmware changes will have adverse effects want fast feedback, which requires making optimal use of hardware resources to explore the most likely areas of failures in the current context. This will require both selection of test cases to execute as well as a priority ordering to help developers obtain fast feedback on changes.

The project aims to provide an optimization framework for automated testing that can provide optimal groups of tests given state requirements for each test and the costs of setting up hardware states that match the requirements for each test. The framework shall be evaluated against company data from either Axis Communications, Volvo Cars or Saab.

Suggested background: Good knowledge of software testing and skills in Java and Python. Knowledge in embedded systems is preferred.


Y.-C. Huang, K.-L. Peng, and C.-Y. Huang, “A history-based cost-cognizant test case prioritization technique in regression testing,” Journal of Systems and Software, vol. 85, no. 3, pp. 626 – 637, 2012.

Online, graphical constraint-based equation solving with dynamic problem generation (30hp)

Constraint-based equation solvers are powerful tools for solving optimality problems in many domains, but they are yet to become the mainstream method for solving problems where users are not experts in the use of constraint solvers. For many, using advanced mathematical models without the ability to visually inspect or manipulate the model is a major obstacle to using advanced techniques for solving constraint problems.

This thesis will explore available open tools that can be used for constraint-based, iterative equation solving, and provide a graphical framework for interacting with constraint solvers by providing graphical components that can be used to model entitites in a constraint optimization problem, and their relationships to one another. The tool will be evaluated with respect to how fast users are able to learn and use the tool to create and solve new problems, and how the proposed design for the tool will enable users to model new types of constraint problems.

Suggested background: Master's students with courses in interaction design and mathematical (linear, combinatorial, constraint-based) optimization. Possible for two students.

More will come...

Page responsible: Ola Leifler
Last updated: 2017-10-20