Running thesis

  • All universities

  • Reset filters

Systém pro filtrování testovací sady na základě změn v projektu

Nedílnou součástí moderních metod vývoje softwaru je princip Continuous Integration, kdy je cílem co nejdůkladněji otestovat změny v softwaru co nejdříve. Ne vždy je ale z časových nebo finančních důvodů pouštět kompletní testovací sadu u každého pull requestu, zejména pokud je projekt rozsáhlý, nebo pokud jsou testy časově náročné. Smyslem této práce je vývoj algoritmu, který bude vyhodnocovat změny v projektu mezi jednotlivými revizemi na základě změn ve zdrojovém kódu, a jeho uplatnění při pouštění testů. Analýza změn provedených např. v rámci pull requestu může u projektů, které obsahují velké množství časově náročných testů, odfiltrovat nepotřebné testy a zajistit tak, […]

October 15, 2019

Asynchronous Task Processing in PCS Project

PCS is a configuration tool for High-availability clusters with a client-server architecture written (mostly) in Python. It is required to add a feature of asynchronous execution of tasks. To do so, mechanism for executing and managing synchronous tasks in asynchronous manner is required. Also, this mechanism should be possible to integrate to an existing HTTP server (which is using tornado, asynchronous programming).

October 9, 2019

Generated tests for GNOME applications

Assistive Technology Service Provider Interface (AT-SPI) is a platform-neutral framework for providing bi-directional communication between assistive technologies (AT) and applications.[1] It is the de facto standard for providing accessibility to free and open desktops, like GNU/Linux or OpenBSD, led by the GNOME Project. Besides of providing unified access for screen readers and other tools for visually impaired, illiterate, or having learning disability (e.g. text-to-speech systems, sound icons and Braille devices) AT-SPI can be used also for testing purposes.

October 8, 2019

Automation of testing of operating system backup and recovery

The goal of the project is to fill the gap in testing of the source repository of the Relax-and-Recover disaster recovery tool by automating the recovery process and deploying a Continuous Integration (CI) setup that will automatically test all the proposed changes to the source repository.

September 26, 2019

Event sourcing for Narayana LRA

The goal is to investigate on event sourcing. Find what it is and how it is used in the microservice architecture. Then design and change the current Narayana LRA implementation to be capable to store its state changes as events by saving them in the event source log storage. Narayana LRA is an implementation of “saga transactions” as effort to add transaction capabilities to the MicroProfile (set of specifications transferring Java EE development approaches to the microservice environment while boosting them to the next level). Saga is concept of transaction processing where transaction manager does not ensure full ACID guarantees. […]

April 17, 2019

Transaction analyser tool for Narayana

The goal is to design and implement an application that would gather information about the transaction processing occurring within Narayana transaction manager. Narayana normally runs as part of the WildFly application server but has more integration. Having a good solution for monitoring can help users to understand and solve issues connected with the transaction processing. Having the universal tool is more important in the present time where Narayana is integrated with many different systems as WildFly, Spring Boot, Camel or Apache Tomcat.

April 16, 2019

High-availability for PostgreSQL in OpenShift

PostgreSQL database system by default offers replication with one master server and several read-only replicas. That design also allows to implement high-availability (HA), but only with several other tools and further configuration done by administrator. In OpenShift PaaS, implementing such HA is even more challenging, but it’s very important in fully automatic cloud environment. The goal of the project is to investigate how existing solutions work and implement one or more container images based on Fedora packages, which would deliver HA with automatic fail-over in OpenShift environment.

March 5, 2019

Gantt Chart Tool

Goals The main goal of this topic is to develop an online tool for creating Gantt charts. It must support creating, editing and storing diagrams per registered user. The student will get familiar with developing web applications using modern JavaScript technologies and frameworks (NodeJS, ExpressJS), NoSQL databases (MongoDB) and securing web applications leveraging passport.js and Auth0 IdM Platform.

December 6, 2018

Web-based customers cases aggregation and reporting tool

Currently, there is no efficient way how to get notified about customer cases in Quality Engineering department. Quality Engineers would be interested in how the product is used in real life, to be able to adjust testing scenarios accordingly and provide better services for end customers. Employees have to go manually through the list of reported cases and find what they need. In order to make their work easier, it would be useful to implement a web-based application that would send reports with information about cases to subscribed users according to certain criteria. This way, they would get fresh information […]

December 5, 2018

Transformation of native upstream repositories into Fedora dist-git format

Fedora GNU/Linux distribution is using a custom repository structure for package sources called dist-git. This repository contains a recipe how to construct a binary package and a reference to archive with pristine upstream sources. Working with this repository is cumbersome and we are trying to modernize the workflow for Fedora maintainers. We are going to move the development efforts of packages to a repository which resembles upstream format. In order to automate manual tasks, we will need a tool which will translate source code between these two repository formats. The goal of this thesis is to develop such a tool […]

October 31, 2018

Analyze & improve the filters in GNOME Photos

GNOME Photos is an application to access, organize and share your photos on GNOME 3. It has some common image processing features built into it so that users can quickly tweak and enhance their photographs after importing them from the camera. One such feature is the ability to apply some preset effects to an image. Unfortunately, most of the algorithms behind these filters were not scientifically developed or tested. They are merely implementations of approaches described by various people on the Internet. One exception is the Caap filter which is based on an algorithm developed by Corey Hoard. Scientifically analyzing some well-known […]

October 10, 2018

Research of Fedora Status for Machine Learning

Machine learning and artificial intelligence gain a lot of popularity lately. Fedora distribution wants to become a distribution of choice for developers who develop applications in this field, and the focus is on Python language. This project is mostly a research and the goal is to identify pain points in Fedora distribution in this new, progressively developed field, and prepare content on the Fedora Developer Portal to help new-comers to begin in this field. Except the research, there are some coding part: one is to prepare an example application from the machine learning field, and others are bringing the missing […]

September 24, 2018

LSP clients generator

The goal of this thesis is to design and implement a tool for creating LSP clients for different IDEs (Eclipse, Eclipse Che, VS Code, …). On the input will be an LSP server. The output will be LSP clients for this server with instructions on how to install them into particular IDEs. The tool should be able to generate clients for the Apache Camel LSP server first. Although, it should be able to produce clients for an arbitrary LSP server. The implemented tool should be easy to use and build on top of modern technologies and approaches.

September 5, 2018

Application-specific passwords / Multiple passwords for one user in FreeIPA

FreeIPA is an authentication and authorization server. At the moment, FreeIPA does not currently allow users to have more than one password. Aim of the thesis is to allow to use multiple passwords for single user. Motivation There are many possible use cases for multiple passwords for single user account: Several fall under a category that could be broadly defined as ‘application specific passwords’ (as Google refers to it), or possibly ‘partially trusted credentials’, or something. For instance: I have my mail server configured to use FreeIPA authentication via PAM. I have three computers, two phones and a tablet configured […]

A static analysis tool detecting bugs in signal handlers

POSIX signals are commonly used in C/C++ programs for IPC (Inter-Process Communication). One of the key advantages of using signals is that they can be handled asynchronously to the main control flow of the program. However, this advantage does not come for free. Developers of C/C++ programs must follow strict rules while implementing signal handlers. If these rules are violated, such programs do not work properly and may suffer from occasional crashes, freezes, or even data loss. Moreover, these issues are usually difficult to test and difficult to debug because they are timing-dependent.

August 21, 2018

ManageIQ Expression Editor

ManageIQ is an open-source management platform that delivers insight, control, and automation functionality allowing enterprises to manage hybrid IT environments. The ManageIQ application collects information about various entities such as Virtual Machines, Hosts, Containers, etc., with numerous attributes and relationships.

May 2, 2018

Mobile applications for EvMan

The aim of the thesis is to create a mobile application for platforms Google Android and Apple iOS, using which the user will be able to perform some processes on the EvMan event management system. The first milestone is to analyze the EvMan information system and build a list of requirements for the mobile application. The second milestone is to design and build API that will be used for communication between the mobile application and the EvMan information system. The third milestone analyze available tools for building cross-platform mobile applications and choose the one that will be used. The fourth […]

April 20, 2018

Using DNS for verifying integrity of software packages

Currently it is common that software packages are cryptographically signed using methods of public-key cryptography. Software vendor signs package using his private key and signed software package is then distributed along with vendor’s public key. This vendor’s public key can later be used in automatic software update verification process.

March 19, 2018

rcm-pdc opensource and test coverage

Open sourcing and test coverage for RCM Internal library “rcm-pdc” which used to generate “transport layer” for internal release train. “Transport layer” is really a transformation of data in product build to match the format of the internal tool used to push product to Satellite 5 or Satellite 6 (an internal equivalent of opensource project spacewalk).

March 1, 2018

Deep Neural Networks Used for Customer Support Cases Analysis

There is a big number of resolved Support Cases by Red Hat, therefore an idea was proposed to use these data for data mining and information retrieval in order to ease a resolution process of the Support Case. This work will tries to create Deep Neural Network models for prediction of features which could help during the resolution process.

January 30, 2018

Extracting a configuration parser from the application source code.

Get acquainted with means of compilation of C programs using LLVM compiler infrastructure – clang, LLVM Internal Representation, AST, LLVM optimisations. Propose a solution to statically transplant a subset of a C program that is dedicated to parse configuration files of an application. This subset should be extracted from the original program and synthesised as an independent binary. Design and implement the proposed solution in a tool having an appropriate form (standalone application or LLVM plugin). Test the implemented tool on standard linux server daemons used in Red Hat Enterprise Linux distributions.

December 11, 2017

Git reporting tool

Git reporting tool to enable project leaders to see statistics such as Git commits per person, by time period, per product, per component Size of git commit, e.g. differences in lines (added or removed) Additional characteristic (merges etc.)

December 4, 2017

Git reporting tool

Git reporting tool to enable project leaders to see statistics such as Git commits per person, by time period, per product, per component Size of git commit, e.g. differences in lines (added or removed) Additional characteristic (merges etc.)

November 24, 2017

Test shield for ARM-based boards

Get fimiliar with ARM-based boards (“ABB”) RaspberryPi, Cubieboard and BeagleBoneBlack.

October 25, 2017

Determine applications affected by upgrade

Pokud je aktualizovaná knihovna, která je právě používaná nějakou aplikací (i třeba tranzitivně), tak je stará knihovna používaná dokud se aplikace nerestartuje. Zjistit, které aplikace je třeba restartovat není pro uživatele triviální. Tato práce by mu měla poskytnout nástroj, který by uživateli navrhl, které aplikace by bylo vhodné restartovat.

October 15, 2013

SelfTest tool improvements and fixes

Úkolem sudenta bude implementovat několik vylepšení a nových funkcí (například možnost přerušit test a vrátit se k němu později…). Výsledkem práce bude série patchů implementujících potřebné změny v takové kvaltě, že je bude možné přímo použít.

September 16, 2013