Computer Engineering / Bilgisayar Mühendisliği
Permanent URI for this collectionhttps://hdl.handle.net/11147/10
Browse
2 results
Search Results
Article Studying the Co-Evolution of Source Code and Acceptance Tests(World Scientific Publishing, 2023) Yalçın, Ali Görkem; Tuğlular, TuğkanTesting is a vital part of achieving good-quality software. Deploying untested code can cause system crashes and unexpected behavior. To reduce these problems, testing should evolve with coding. In addition, test suites should not remain static throughout the software versions. Since whenever software gets updated, new functionalities are added, or existing functionalities are changed, test suites should be updated along with the software. Software repositories contain valuable information about the software systems. Access to older versions and differentiating adjacent versions' source code and acceptance test changes can provide information about the evolution process of the software. This research proposes a method and implementation to analyze 21 open-source real-world projects hosted on GitHub regarding the co-evolution of both software and its acceptance test suites. Related projects are retrieved from repositories, their versions are analyzed, graphs are created, and analysis related to the co-evolution process is performed. Observations show that the source code is getting updated more frequently than the acceptance tests. They indicate a pattern that source code and acceptance tests do not evolve together. Moreover, the analysis showed that a few acceptance tests test most of the functionalities that take a significant line of code.Conference Object Citation - Scopus: 1A Novel Feature To Predict Buggy Changes in a Software System(Springer, 2022) Yılmaz, Rahime; Nalçakan, Yağız; Haktanır, ElifResearchers have successfully implemented machine learning classifiers to predict bugs in a change file for years. Change classification focuses on determining if a new software change is clean or buggy. In the literature, several bug prediction methods at change level have been proposed to improve software reliability. This paper proposes a model for classification-based bug prediction model. Four supervised machine learning classifiers (Support Vector Machine, Decision Tree, Random Forrest, and Naive Bayes) are applied to predict the bugs in software changes, and performance of these four classifiers are characterized. We considered a public dataset and downloaded the corresponding source code and its metrics. Thereafter, we produced new software metrics by analyzing source code at class level and unified these metrics with the existing set. We obtained new dataset to apply machine learning algorithms and compared the bug prediction accuracy of the newly defined metrics. Results showed that our merged dataset is practical for bug prediction based experiments. © 2022, The Author(s), under exclusive license to Springer Nature Switzerland AG.
