“…Plenty of prior studies investigate the impact of many phenomena on code quality using software metrics, for example, code size, code complexity [31,49,71], change complexity [42,57,59,71,88], antipatterns [41], developer activity [71], developer experience [61], developer expertise [5], developer and reviewer knowledge [81], design [3,10,11,14,16], reviewer participation [50,82], code smells [40], and mutation testing [7]. To perform such studies, there are five common steps: (1) formulating of hypotheses that pertain to the phenomena that one wishes to study; (2) designing appropriate metrics to operationalize the intention behind the phenomena under study; (3) defining a model specification (e.g., the ordering of metrics) to be used when constructing an analytical model; (4) constructing an analytical model using, for example, regression models [5,57,81,82,87] or random forest models [23,38,55,64]; and (5) examining the ranking of metrics using a model interpretation technique (e.g., ANOVA Type-I, one of the most commonly-used interpretation techniques since it is the default built-in function for logistic regression (glm) models in R) in order to test the hypotheses.…”