Premium
Introduction to the special issue on “Machine Learning Techniques for Software Quality Evaluation”
Author(s) -
Ampatzoglou Apostolos,
Arcelli Fontana Francesca,
Palomba Fabio,
Walter Bartosz
Publication year - 2019
Publication title -
journal of software: evolution and process
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.371
H-Index - 29
eISSN - 2047-7481
pISSN - 2047-7473
DOI - 10.1002/smr.2230
Subject(s) - computer science , software engineering , quality (philosophy) , judgement , software quality , process (computing) , software , software quality control , artificial intelligence , software development , data science , machine learning , philosophy , epistemology , political science , law , programming language , operating system
The assessment of software quality is one of the most multifaceted (eg, structural, product, and process quality) and subjective aspects of software engineering, as in most cases, it is substantially based on expert judgement. Such assessments can be performed at almost all phases of software development (from project inception to maintenance) and at different levels of granularity (from source code to architecture). However, human judgement is (1) inherently biased by implicit, subjective criteria applied in the evaluation process, and (2) its economical effectiveness is limited compared to automated or semi-automated approaches. For these reasons, the research community is still looking for new, more effective methods of assessing various qualitative characteristics of software systems and the related processes. In recent years, we observed a rising interest in adopting various approaches to exploiting machine learning (ML) and automated decision-making processes in several areas of software engineering. These models and algorithms help to reduce effort and risk related to human judgment in favor of automated systems, which are able to make informed decisions based on available data and evaluated with objective criteria. Thus, the adoption of machine learning techniques seems to be one of the most promising ways to improve software quality evaluation. This special issue aims at providing researchers with the possibility to spread novel ideas and methods to make machine learning actionable for the assessment of software quality artifacts and processes. The call for papers was originally published in SE-WORLD, the journal webpage, and other forums relevant to the software engineering community. We particularly encouraged the authors of papers accepted at the 2nd International Workshop on Machine Learning for Software Quality Evaluation (MaLTeSQuE 2018*) to submit a revised, extended version of the workshop papers. All submitted papers went through a rigorous review process, which involved up to three internationally recognized experts of the field. This ensured rigor, novelty, and the scientific contribution expected by the Journal of Software: Evolution and Process. As a result, out of the six submitted papers, four of them were recommended for publication. These four papers have approached the topics of the special issue under different viewpoints: • In ‘‘An Extensive Evaluation of Ensemble Techniques for Software Change Prediction’’, Catolino and Ferrucci investigate the extent to which the ensemble of machine learning techniques can boost the performance of change prediction models. To this aim, they compare four ensemble methods (eg, Boosting) with four stand-alone classifiers (eg, Logistic Regression) on a dataset composed of 33 releases of 10 open-source projects. Their results explain how and why ensemble methods can provide benefits for change prediction models. • In ‘‘Maintenance process modeling and dynamic estimations based on Bayesian Networks and Association Rules’’, Chatzimparmpas and Bibi propose a combination of Bayesian networks and association rules to model the maintenance process by identifying the relationships among internal and external quality metrics related to a particular project release. To validate their technique, they exploit a dataset of 957 releases of 5 open-source projects, showing that the performance of the proposed technique is higher than a baseline model. • In ‘‘Branch Coverage Prediction in Automated Testing’’, Grano et al argue that knowing a priori the code coverage of automatically generated tests can be useful to developers to decide on whether to take maintenance actions. Thus, they develop a branch coverage prediction model exploiting source code quality features. They experiment the model against more than 3000 Java classes. The reported results show that it is actually possible to predict coverage with high accuracy. • In ‘‘The Impact of Feature Types, Classifiers, and Data Balancing Techniques on Software Vulnerability Prediction Models’’, Kaya et al study how much the performance of vulnerability prediction models varies when adopted classification algorithm, features, and data balancing approaches are applied. Their experiment provide an overview of when and why certain steps are needed and how vulnerability prediction models can be improved by means of these steps.