Matej Madeja

Dr. Matej Madeja

orcid

Research Focus & Metrics

Academic Career Length

10Years (2017-Present)

(Calculated once Scilit publication data is synced: current year − year of first publication + 1)

Representative Publications

View All Publications
2 July 2022 in Empirical Software Engineering
Verified
Journal Article
Open access
PDF file
SHSteffen Herbold
Steffen Herbold
ATAlexander Trautsch
Alexander Trautsch
BLBenjamin Ledel
Benjamin Ledel
AAAlireza Aghamohammadi
Alireza Aghamohammadi
TGTaher A. Ghaleb
Taher A. Ghaleb
JEJohannes Erbel
Johannes Erbel
Context: Tangled commits are changes to software that address multiple concerns at once. For researchers interested in bugs, tangled commits mean that they actually study not only bugs, but also other concerns irrelevant for the study of bugs. Objective: We want to improve our understanding of the prevalence of tangling and the types of changes that are tangled within bug fixing commits. Methods: We use a crowd sourcing approach for manual labeling to validate which changes contribute to bug fixes for each line in bug fixing commits. Each line is labeled by four participants. If at least three participants agree on the same label, we have consensus. Results: We estimate that between 17% and 32% of all changes in bug fixing commits modify the source code to fix the underlying problem. However, when we only consider changes to the production code files this ratio increases to 66% to 87%. We find that about 11% of lines are hard to label leading to active disagreements between participants. Due to confirmed tangling and the uncertainty in our data, we estimate that 3% to 47% of data is noisy without manual untangling, depending on the use case. Conclusion: Tangled commits have a high prevalence in bug fixes and can lead to a large amount of noise in the data. Prior research indicates that this noise may alter results. As researchers, we should be skeptics and assume that unvalidated data is likely very noisy, until proven otherwise.

21 September 2020 in Data
Verified
Journal Article
Open access
PDF file
MSMatúš Sulír
Matúš Sulír
MBMichaela Bačíková
Michaela Bačíková
MMMatej Madeja
Matej Madeja
SCSergej Chodarev
Sergej Chodarev
JJJán Juhár
Ján Juhár
When a person decides to inspect or modify a third-party software project, the first necessary step is its successful compilation from source code using a build system. However, such attempts often end in failure. In this data descriptor paper, we provide a dataset of build results of open source Java software systems. We tried to automatically build a large number of Java projects from GitHub using their Maven, Gradle, and Ant build scripts in a Docker container simulating a standard programmer’s environment. The dataset consists of the output of two executions: 7264 build logs from a study executed in 2016 and 7233 logs from the 2020 execution. In addition to the logs, we collected exit codes, file counts, and various project metadata. The proportion of failed builds in our dataset is 38% in the 2016 execution and 59% in the 2020 execution. The published data can be helpful for multiple purposes, such as correlation analysis of factors affecting build success, build failure prediction, and research in the area of build breakage repair.

6 August 2021 in Applied Sciences
Verified
Journal Article
Open access
PDF file
MMMatej Madeja
Matej Madeja
JPJaroslav Porubän
Jaroslav Porubän
SCSergej Chodarev
Sergej Chodarev
MSMatúš Sulír
Matúš Sulír
FGFilip Gurbáľ
Filip Gurbáľ
Automated tests are often considered an indicator of project quality. In this paper, we performed a large analysis of 6.3 M public GitHub projects using Java as the primary programming language. We created an overview of tests occurrence in publicly available GitHub projects and the use of test frameworks in them. The results showed that 52% of the projects contain at least one test case. However, there is a large number of example tests that do not represent relevant production code testing. It was also found that there is only a poor correlation between the number of the word “test” in different parts of the project (e.g., file paths, file name, file content, etc.) and the number of test cases, creation date, date of the last commit, number of commits, or number of watchers. Testing framework analysis confirmed that JUnit is the most used testing framework with a 48% share. TestNG, considered the second most popular Java unit testing framework, occurred in only 3% of the projects.

15 August 2021 in Electronics
Verified
Journal Article
Open access
PDF file
MBMichaela Bačíková
Michaela Bačíková
JPJaroslav Porubän
Jaroslav Porubän
MSMatúš Sulír
Matúš Sulír
SCSergej Chodarev
Sergej Chodarev
William SteingartnerWilliam Steingartner
William Steingartner
MMMatej Madeja
Matej Madeja
Contemporary software systems focus on usability and accessibility from the point of view of effectiveness and ergonomics. However, the correct usage of the domain dictionary and the description of domain relations and properties via their user interfaces are often neglected. We use the term domain usability (DU) to describe the aspects of the user interface related to the terminology and domain. Our experience showed that poor domain usability reduces the memorability and effectiveness of user interfaces. To address this problem, we describe a method called ADUE (Automatic Domain Usability Evaluation) for the automated evaluation of selected DU properties on existing user interfaces. As a prerequisite to the method, metrics for formal evaluation of domain usability, a form stereotype recognition algorithm, and general application terms filtering algorithm have been proposed. We executed ADUE on several real-world Java applications and report our findings. We also provide proposals to modify existing manual usability evaluation techniques for the purpose of domain usability evaluation.

1 November 2019
Verified
Conference Paper
Closed access
MMMatej Madeja
Matej Madeja
JPJaroslav Poruban
Jaroslav Poruban
Identification of unit under test (UUT) from a test is often difficult and requires wider source code comprehension. By automating this process it would be possible to support the program comprehension and reduce software maintenance process. In this paper the Latent Semantic Analysis (LSA) and the Latent Dirichlet Allocation (LDA) were used which proved to be inaccurate in the UUT identification. The experiment was conducted on 5 popular projects where 1,093,730 similarity results were obtained. It was found out that the best topic number for the LSA model is from 7 to 10, the LDA model had big differences in this value, so it was not possible to define a stable value. The best UUT identification accuracy compared to manual testing has been obtained with the LSA model with result of 7.63% success, where documents were preprocessed using words splitting based on naming conventions and Java keywords removal. The accuracy of the LDA model was almost zero. Further 8 manual identification errors were discovered during the experiment.

1 November 2017
Verified
Conference Paper
Closed access
MMMatej Madeja
Matej Madeja
JPJaroslav Porubän
Jaroslav Porubän
This paper presents a solution of creating a testing environment for Android applications in programming courses. Appropriate testing methods and suggestions for the testing environment are consulted by the authors with a mobile application development company. The paper also analyzes basic student mistakes, looks for solutions to their detection by automated testing, and suggests appropriate test tools on their basis. At the same time, the paper contains an assessment and testing experience for particular tools. In addition, it compares the performance of emulator and real device tests, and the proposed tools are partially tested in particular course.