首页 > 最新文献

2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)最新文献

英文 中文
The role of meta-learners in the adaptive selection of classifiers 元学习者在分类器自适应选择中的作用
D. D. Nucci, A. D. Lucia
The use of machine learning techniques able to classify source code components in defective or not received a lot of attention by the research community in the last decades. Previous studies indicated that no machine learning classifier is capable of providing the best accuracy in any context, highlighting interesting complementarity among them. For these reasons ensemble methods, that combines several classifier models, have been proposed. Among these, it was proposed ASCI (Adaptive Selection of Classifiers in bug predIction), an adaptive method able to dynamically select among a set of machine learning classifiers the one that better predicts the bug proneness of a class based on its characteristics. In summary, ASCI experiments each classifier on the training set and then use a meta-learner (e.g., Random Forest) to select the most suitable classifier to use for each test set instance. In this work, we conduct an empirical investigation on 21 open source software systems with the aim of analyzing the performance of several classifiers used as meta-learner in combination with ASCI. The results show that the selection of the meta-learner has not strong influence in the results achieved by ASCI in the context of within-project bug prediction. Indeed, the use of lightweight classifiers such as Naive Bayes or Logistic Regression is suggested.
在过去的几十年里,使用机器学习技术对有缺陷或没有缺陷的源代码组件进行分类受到了研究界的广泛关注。先前的研究表明,没有机器学习分类器能够在任何上下文中提供最佳的准确性,突出了它们之间有趣的互补性。由于这些原因,集成方法,结合多个分类器模型,被提出。其中,提出了ASCI (Adaptive Selection of Classifiers in bug predIction),这是一种自适应方法,能够根据类的特征,在一组机器学习分类器中动态选择最能预测类的bug倾向的分类器。总之,ASCI在训练集上对每个分类器进行实验,然后使用元学习器(例如Random Forest)为每个测试集实例选择最合适的分类器。在这项工作中,我们对21个开源软件系统进行了实证调查,目的是分析与ASCI结合使用的几种分类器作为元学习器的性能。结果表明,元学习器的选择对ASCI在项目内bug预测中的结果影响不大。实际上,建议使用轻量级分类器,如朴素贝叶斯或逻辑回归。
{"title":"The role of meta-learners in the adaptive selection of classifiers","authors":"D. D. Nucci, A. D. Lucia","doi":"10.1109/MALTESQUE.2018.8368452","DOIUrl":"https://doi.org/10.1109/MALTESQUE.2018.8368452","url":null,"abstract":"The use of machine learning techniques able to classify source code components in defective or not received a lot of attention by the research community in the last decades. Previous studies indicated that no machine learning classifier is capable of providing the best accuracy in any context, highlighting interesting complementarity among them. For these reasons ensemble methods, that combines several classifier models, have been proposed. Among these, it was proposed ASCI (Adaptive Selection of Classifiers in bug predIction), an adaptive method able to dynamically select among a set of machine learning classifiers the one that better predicts the bug proneness of a class based on its characteristics. In summary, ASCI experiments each classifier on the training set and then use a meta-learner (e.g., Random Forest) to select the most suitable classifier to use for each test set instance. In this work, we conduct an empirical investigation on 21 open source software systems with the aim of analyzing the performance of several classifiers used as meta-learner in combination with ASCI. The results show that the selection of the meta-learner has not strong influence in the results achieved by ASCI in the context of within-project bug prediction. Indeed, the use of lightweight classifiers such as Naive Bayes or Logistic Regression is suggested.","PeriodicalId":345739,"journal":{"name":"2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125318310","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
User-perceived reusability estimation based on analysis of software repositories 基于软件存储库分析的用户感知的可重用性评估
Michail D. Papamichail, Themistoklis G. Diamantopoulos, Ilias Chrysovergis, Philippos Samlidis, A. Symeonidis
The popularity of open-source software repositories has led to a new reuse paradigm, where online resources can be thoroughly analyzed to identify reusable software components. Obviously, assessing the quality and specifically the reusability potential of source code residing in open software repositories poses a major challenge for the research community. Although several systems have been designed towards this direction, most of them do not focus on reusability. In this paper, we define and formulate a reusability score by employing information from GitHub stars and forks, which indicate the extent to which software components are adopted/accepted by developers. Our methodology involves applying and assessing different state-of-the-practice machine learning algorithms, in order to construct models for reusability estimation at both class and package levels. Preliminary evaluation of our methodology indicates that our approach can successfully assess reusability, as perceived by developers.
开源软件存储库的流行导致了一种新的重用范例,可以对在线资源进行彻底分析,以确定可重用的软件组件。显然,评估开放软件存储库中源代码的质量,特别是可重用性潜力,对研究社区来说是一个重大挑战。虽然有几个系统已经朝着这个方向设计,但它们中的大多数并不关注可重用性。在本文中,我们通过使用来自GitHub stars和forks的信息来定义和制定可重用性评分,这表明了软件组件被开发人员采用/接受的程度。我们的方法包括应用和评估不同的最先进的机器学习算法,以便在类和包级别构建可重用性评估模型。对我们方法的初步评估表明,我们的方法可以成功地评估可重用性,正如开发人员所感知的那样。
{"title":"User-perceived reusability estimation based on analysis of software repositories","authors":"Michail D. Papamichail, Themistoklis G. Diamantopoulos, Ilias Chrysovergis, Philippos Samlidis, A. Symeonidis","doi":"10.1109/MALTESQUE.2018.8368459","DOIUrl":"https://doi.org/10.1109/MALTESQUE.2018.8368459","url":null,"abstract":"The popularity of open-source software repositories has led to a new reuse paradigm, where online resources can be thoroughly analyzed to identify reusable software components. Obviously, assessing the quality and specifically the reusability potential of source code residing in open software repositories poses a major challenge for the research community. Although several systems have been designed towards this direction, most of them do not focus on reusability. In this paper, we define and formulate a reusability score by employing information from GitHub stars and forks, which indicate the extent to which software components are adopted/accepted by developers. Our methodology involves applying and assessing different state-of-the-practice machine learning algorithms, in order to construct models for reusability estimation at both class and package levels. Preliminary evaluation of our methodology indicates that our approach can successfully assess reusability, as perceived by developers.","PeriodicalId":345739,"journal":{"name":"2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123020593","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Ensemble techniques for software change prediction: A preliminary investigation 软件变更预测的集成技术:初步研究
Gemma Catolino, F. Ferrucci
Predicting the classes more likely to change in the future helps developers to focus on the more critical parts of a software system, with the aim of preventively improving its maintainability. The research community has devoted a lot of effort in the definition of change prediction models, i.e., models exploiting a machine learning classifier to relate a set of independent variables to the change-proneness of classes. Besides the good performances of such models, key results of previous studies highlight how classifiers tend to perform similarly even though they are able to correctly predict the change-proneness of different code elements, possibly indicating the presence of some complementarity among them. In this paper, we aim at analyzing the extent to which ensemble methodologies, i.e., machine learning techniques able to combine multiple classifiers, can improve the performances of change-prediction models. Specifically, we empirically compared the performances of three ensemble techniques (i.e., Boosting, Random Forest, and Bagging) with those of standard machine learning classifiers (i.e., Logistic Regression and Naive Bayes). The study was conducted on eight open source systems and the results showed how ensemble techniques, in some cases, perform better than standard machine learning approaches, even if the differences among them is small. This requires the need of further research aimed at devising effective methodologies to ensemble different classifiers.
预测将来更有可能更改的类有助于开发人员关注软件系统中更关键的部分,目的是预防性地提高其可维护性。研究界在变化预测模型的定义上投入了大量的精力,即利用机器学习分类器将一组自变量与类的变化倾向联系起来的模型。除了这些模型的良好性能外,先前研究的关键结果强调,即使分类器能够正确预测不同代码元素的变化倾向,分类器的表现也往往相似,这可能表明它们之间存在某种互补性。在本文中,我们旨在分析集成方法(即能够组合多个分类器的机器学习技术)在多大程度上可以提高变化预测模型的性能。具体来说,我们通过经验比较了三种集成技术(即boost, Random Forest和Bagging)与标准机器学习分类器(即逻辑回归和朴素贝叶斯)的性能。这项研究是在八个开源系统上进行的,结果表明,在某些情况下,集成技术比标准的机器学习方法表现得更好,即使它们之间的差异很小。这需要进一步的研究,旨在设计有效的方法来集成不同的分类器。
{"title":"Ensemble techniques for software change prediction: A preliminary investigation","authors":"Gemma Catolino, F. Ferrucci","doi":"10.1109/MALTESQUE.2018.8368455","DOIUrl":"https://doi.org/10.1109/MALTESQUE.2018.8368455","url":null,"abstract":"Predicting the classes more likely to change in the future helps developers to focus on the more critical parts of a software system, with the aim of preventively improving its maintainability. The research community has devoted a lot of effort in the definition of change prediction models, i.e., models exploiting a machine learning classifier to relate a set of independent variables to the change-proneness of classes. Besides the good performances of such models, key results of previous studies highlight how classifiers tend to perform similarly even though they are able to correctly predict the change-proneness of different code elements, possibly indicating the presence of some complementarity among them. In this paper, we aim at analyzing the extent to which ensemble methodologies, i.e., machine learning techniques able to combine multiple classifiers, can improve the performances of change-prediction models. Specifically, we empirically compared the performances of three ensemble techniques (i.e., Boosting, Random Forest, and Bagging) with those of standard machine learning classifiers (i.e., Logistic Regression and Naive Bayes). The study was conducted on eight open source systems and the results showed how ensemble techniques, in some cases, perform better than standard machine learning approaches, even if the differences among them is small. This requires the need of further research aimed at devising effective methodologies to ensemble different classifiers.","PeriodicalId":345739,"journal":{"name":"2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121962164","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 12
Varying defect prediction approaches during project evolution: A preliminary investigation 在项目发展过程中变化缺陷预测方法:初步调查
Salvatore Geremia, D. Tamburri
Defect prediction approaches use various features of software product or process to prioritize testing, analysis and general quality assurance activities. Such approaches require the availability of project's historical data, making them inapplicable in early phase. To cope with this problem, researchers have proposed cross-project and even cross-company prediction models, which use training material from other projects to build the model. Despite such advances, there is limited knowledge of how, as the project evolves, it would be convenient to still keep using data from other projects, and when, instead, it might become convenient to switch towards a local prediction model. This paper empirically investigates, using historical data from four open source projects, on how the performance of various kinds of defect prediction approaches — within-project prediction, local and global cross-project prediction, and mixed (injected local cross) prediction — varies over time. Results of the study are part of a long-term investigation towards supporting the customization of defect prediction models over projects' history.
缺陷预测方法使用软件产品或过程的各种特性来确定测试、分析和一般质量保证活动的优先级。这种方法需要项目历史数据的可用性,这使得它们在早期阶段不适用。为了解决这个问题,研究人员提出了跨项目甚至跨公司的预测模型,这些模型使用来自其他项目的培训材料来构建模型。尽管取得了这样的进步,但随着项目的发展,如何方便地继续使用其他项目的数据,以及何时可以方便地切换到本地预测模型,这些知识都是有限的。本文使用来自四个开源项目的历史数据,对各种缺陷预测方法的性能——项目内预测、局部和全局跨项目预测,以及混合(注入局部交叉)预测——如何随时间变化进行了实证调查。研究的结果是一个长期调查的一部分,它支持项目历史上缺陷预测模型的定制。
{"title":"Varying defect prediction approaches during project evolution: A preliminary investigation","authors":"Salvatore Geremia, D. Tamburri","doi":"10.1109/MALTESQUE.2018.8368451","DOIUrl":"https://doi.org/10.1109/MALTESQUE.2018.8368451","url":null,"abstract":"Defect prediction approaches use various features of software product or process to prioritize testing, analysis and general quality assurance activities. Such approaches require the availability of project's historical data, making them inapplicable in early phase. To cope with this problem, researchers have proposed cross-project and even cross-company prediction models, which use training material from other projects to build the model. Despite such advances, there is limited knowledge of how, as the project evolves, it would be convenient to still keep using data from other projects, and when, instead, it might become convenient to switch towards a local prediction model. This paper empirically investigates, using historical data from four open source projects, on how the performance of various kinds of defect prediction approaches — within-project prediction, local and global cross-project prediction, and mixed (injected local cross) prediction — varies over time. Results of the study are part of a long-term investigation towards supporting the customization of defect prediction models over projects' history.","PeriodicalId":345739,"journal":{"name":"2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127023587","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
ConfigFile++: Automatic comment enhancement for misconfiguration prevention configfile++:自动注释增强,防止错误配置
Yuanliang Zhang, Shanshan Li, Xiangyang Xu, Xiangke Liao, Shazhou Yang, Yun Xiong
Nowadays, misconfiguration has become one of the key factors leading to system problems. Most current research on the topic explores misconfiguration diagnosis, but is less concerned with educating users about how to configure correctly in order to prevent misconfiguration before it happens. In this paper, we manually study 22 open source software projects and summarize several observations on the comments of their configuration files, most of which lack sufficient information and are poorly formatted. Based on these observations and the general process of misconfiguration diagnosis, we design and implement a tool called ConfigFile++ that automatically enhances the comment in configuration files. By using name-based analysis and machine learning, ConfigFile++ extracts guiding information about the configuration option from the user manual and source code, and inserts it into the configuration files. The format of insert comment is also designed to make enhanced comments concise and clear. We use real-world examples of misconfigurations to evaluate our tool. The results show that ConfigFile++ can prevent 33 out of 50 misconfigurations.
目前,配置错误已成为导致系统问题的关键因素之一。目前关于该主题的大多数研究都探讨了错误配置诊断,但很少关注如何教育用户正确配置,以便在错误配置发生之前防止错误配置。在本文中,我们手工研究了22个开源软件项目,并总结了对其配置文件注释的几个观察结果,其中大多数缺乏足够的信息并且格式很差。基于这些观察和错误配置诊断的一般过程,我们设计并实现了一个名为configfile++的工具,该工具可以自动增强配置文件中的注释。通过使用基于名称的分析和机器学习,configfile++从用户手册和源代码中提取关于配置选项的指导信息,并将其插入到配置文件中。插入注释的格式也是为了使增强的注释简洁明了而设计的。我们使用错误配置的真实例子来评估我们的工具。结果表明,在50个错误配置中,configfile++可以防止33个错误配置。
{"title":"ConfigFile++: Automatic comment enhancement for misconfiguration prevention","authors":"Yuanliang Zhang, Shanshan Li, Xiangyang Xu, Xiangke Liao, Shazhou Yang, Yun Xiong","doi":"10.1109/MALTESQUE.2018.8368457","DOIUrl":"https://doi.org/10.1109/MALTESQUE.2018.8368457","url":null,"abstract":"Nowadays, misconfiguration has become one of the key factors leading to system problems. Most current research on the topic explores misconfiguration diagnosis, but is less concerned with educating users about how to configure correctly in order to prevent misconfiguration before it happens. In this paper, we manually study 22 open source software projects and summarize several observations on the comments of their configuration files, most of which lack sufficient information and are poorly formatted. Based on these observations and the general process of misconfiguration diagnosis, we design and implement a tool called ConfigFile++ that automatically enhances the comment in configuration files. By using name-based analysis and machine learning, ConfigFile++ extracts guiding information about the configuration option from the user manual and source code, and inserts it into the configuration files. The format of insert comment is also designed to make enhanced comments concise and clear. We use real-world examples of misconfigurations to evaluate our tool. The results show that ConfigFile++ can prevent 33 out of 50 misconfigurations.","PeriodicalId":345739,"journal":{"name":"2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125325699","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Co-evolution analysis of production and test code by learning association rules of changes 通过学习变更的关联规则对生产代码和测试代码进行协同演化分析
László Vidács, M. Pinzger
Many modern software systems come with automated tests. While these tests help to maintain code quality by providing early feedback after modifications, they also need to be maintained. In this paper, we replicate a recent pattern mining experiment to find patterns on how production and test code co-evolve over time. Understanding co-evolution patterns may directly affect the quality of tests and thus the quality of the whole system. The analysis takes into account fine grained changes in both types of code. Since the full list of fine grained changes cannot be perceived, association rules are learned from the history to extract co-change patterns. We analyzed the occurrence of 6 patterns throughout almost 2500 versions of a Java system and found that patterns are present, but supported by weaker links than in previously reported. Hence we experimented with weighting methods and investigated the composition of commits.
许多现代软件系统都带有自动化测试。虽然这些测试通过提供修改后的早期反馈来帮助维护代码质量,但它们也需要维护。在本文中,我们复制了最近的一个模式挖掘实验,以找到有关生产代码和测试代码如何随时间共同演化的模式。理解协同进化模式可以直接影响测试的质量,从而影响整个系统的质量。分析考虑了两种类型代码中的细粒度变化。由于无法感知细粒度更改的完整列表,因此从历史中学习关联规则以提取共同更改模式。我们分析了在Java系统的近2500个版本中出现的6种模式,发现模式是存在的,但是由较弱的链接支持,而不是之前报道的那样。因此,我们尝试了加权方法,并研究了提交的组成。
{"title":"Co-evolution analysis of production and test code by learning association rules of changes","authors":"László Vidács, M. Pinzger","doi":"10.1109/MALTESQUE.2018.8368456","DOIUrl":"https://doi.org/10.1109/MALTESQUE.2018.8368456","url":null,"abstract":"Many modern software systems come with automated tests. While these tests help to maintain code quality by providing early feedback after modifications, they also need to be maintained. In this paper, we replicate a recent pattern mining experiment to find patterns on how production and test code co-evolve over time. Understanding co-evolution patterns may directly affect the quality of tests and thus the quality of the whole system. The analysis takes into account fine grained changes in both types of code. Since the full list of fine grained changes cannot be perceived, association rules are learned from the history to extract co-change patterns. We analyzed the occurrence of 6 patterns throughout almost 2500 versions of a Java system and found that patterns are present, but supported by weaker links than in previously reported. Hence we experimented with weighting methods and investigated the composition of commits.","PeriodicalId":345739,"journal":{"name":"2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)","volume":"124 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133551414","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
Machine learning-based run-time anomaly detection in software systems: An industrial evaluation 基于机器学习的软件系统运行时异常检测:工业评估
Fabian Huch, Mojdeh Golagha, A. Petrovska, Alexander Krauss
Anomalies are an inevitable occurrence while operating enterprise software systems. Traditionally, anomalies are detected by threshold-based alarms for critical metrics, or health probing requests. However, fully automated detection in complex systems is challenging, since it is very difficult to distinguish truly anomalous behavior from normal operation. To this end, the traditional approaches may not be sufficient. Thus, we propose machine learning classifiers to predict the system's health status. We evaluated our approach in an industrial case study, on a large, real-world dataset of 7.5 • 106 data points for 231 features. Our results show that recurrent neural networks with long short-term memory (LSTM) are more effective in detecting anomalies and health issues, as compared to other classifiers. We achieved an area under precision-recall curve of 0.44. At the default threshold, we can automatically detect 70% of the anomalies. Despite the low precision of 31 %, the rate in which false positives occur is only 4 %.
异常是企业软件系统运行过程中不可避免的现象。传统上,异常是通过基于阈值的关键指标警报或运行状况探测请求来检测的。然而,在复杂系统中进行全自动检测是具有挑战性的,因为很难将真正的异常行为与正常操作区分开来。为此目的,传统的方法可能是不够的。因此,我们提出机器学习分类器来预测系统的健康状态。我们在一个工业案例研究中对我们的方法进行了评估,该研究是在一个具有7.5•106个数据点、231个特征的大型真实数据集上进行的。我们的研究结果表明,与其他分类器相比,具有长短期记忆(LSTM)的递归神经网络在检测异常和健康问题方面更有效。我们在精密度-召回率曲线下的面积为0.44。在默认阈值下,我们可以自动检测到70%的异常。尽管准确率低至31%,但假阳性的发生率仅为4%。
{"title":"Machine learning-based run-time anomaly detection in software systems: An industrial evaluation","authors":"Fabian Huch, Mojdeh Golagha, A. Petrovska, Alexander Krauss","doi":"10.1109/MALTESQUE.2018.8368453","DOIUrl":"https://doi.org/10.1109/MALTESQUE.2018.8368453","url":null,"abstract":"Anomalies are an inevitable occurrence while operating enterprise software systems. Traditionally, anomalies are detected by threshold-based alarms for critical metrics, or health probing requests. However, fully automated detection in complex systems is challenging, since it is very difficult to distinguish truly anomalous behavior from normal operation. To this end, the traditional approaches may not be sufficient. Thus, we propose machine learning classifiers to predict the system's health status. We evaluated our approach in an industrial case study, on a large, real-world dataset of 7.5 • 106 data points for 231 features. Our results show that recurrent neural networks with long short-term memory (LSTM) are more effective in detecting anomalies and health issues, as compared to other classifiers. We achieved an area under precision-recall curve of 0.44. At the default threshold, we can automatically detect 70% of the anomalies. Despite the low precision of 31 %, the rate in which false positives occur is only 4 %.","PeriodicalId":345739,"journal":{"name":"2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)","volume":"104 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127995889","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 15
How high will it be? Using machine learning models to predict branch coverage in automated testing 它会有多高?使用机器学习模型来预测自动化测试中的分支覆盖率
Giovanni Grano, Timofey V. Titov, Sebastiano Panichella, H. Gall
Software testing is a crucial component in modern continuous integration development environment. Ideally, at every commit, all the system's test cases should be executed and moreover, new test cases should be generated for the new code. This is especially true in a Continuous Test Generation (CTG) environment, where the automatic generation of test cases is integrated into the continuous integration pipeline. Furthermore, developers want to achieve a minimum level of coverage for every build of their systems. Since both executing all the test cases and generating new ones for all the classes at every commit is not feasible, they have to select which subset of classes has to be tested. In this context, knowing a priori the branch coverage that can be achieved with test data generation tools might give some useful indications for answering such a question. In this paper, we take the first steps towards the definition of machine learning models to predict the branch coverage achieved by test data generation tools. We conduct a preliminary study considering well known code metrics as a features. Despite the simplicity of these features, our results show that using machine learning to predict branch coverage in automated testing is a viable and feasible option.
软件测试是现代持续集成开发环境中的一个重要组成部分。理想情况下,在每次提交时,应该执行所有系统的测试用例,而且,应该为新代码生成新的测试用例。这在持续测试生成(CTG)环境中尤其正确,其中测试用例的自动生成被集成到持续集成管道中。此外,开发人员希望为其系统的每个构建实现最低程度的覆盖。由于在每次提交时执行所有测试用例和为所有类生成新用例是不可行的,因此他们必须选择必须测试的类的哪个子集。在这种情况下,先验地知道可以用测试数据生成工具实现的分支覆盖率,可能会为回答这样的问题提供一些有用的指示。在本文中,我们向机器学习模型的定义迈出了第一步,以预测测试数据生成工具实现的分支覆盖率。我们将众所周知的代码度量作为特性进行初步研究。尽管这些特征很简单,但我们的结果表明,在自动化测试中使用机器学习来预测分支覆盖率是一个可行的选择。
{"title":"How high will it be? Using machine learning models to predict branch coverage in automated testing","authors":"Giovanni Grano, Timofey V. Titov, Sebastiano Panichella, H. Gall","doi":"10.1109/MALTESQUE.2018.8368454","DOIUrl":"https://doi.org/10.1109/MALTESQUE.2018.8368454","url":null,"abstract":"Software testing is a crucial component in modern continuous integration development environment. Ideally, at every commit, all the system's test cases should be executed and moreover, new test cases should be generated for the new code. This is especially true in a Continuous Test Generation (CTG) environment, where the automatic generation of test cases is integrated into the continuous integration pipeline. Furthermore, developers want to achieve a minimum level of coverage for every build of their systems. Since both executing all the test cases and generating new ones for all the classes at every commit is not feasible, they have to select which subset of classes has to be tested. In this context, knowing a priori the branch coverage that can be achieved with test data generation tools might give some useful indications for answering such a question. In this paper, we take the first steps towards the definition of machine learning models to predict the branch coverage achieved by test data generation tools. We conduct a preliminary study considering well known code metrics as a features. Despite the simplicity of these features, our results show that using machine learning to predict branch coverage in automated testing is a viable and feasible option.","PeriodicalId":345739,"journal":{"name":"2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130424585","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 25
Investigating type declaration mismatches in Python 调查Python中的类型声明不匹配
L. Pascarella, Achyudh Ram, A. Nadeem, Dinesh Bisesser, Norman Knyazev, Alberto Bacchelli
Past research provided evidence that developers making code changes sometimes omit to update the related documentation, thus creating inconsistencies that may contribute to faults and crashes. In dynamically typed languages, such as Python, an inconsistency in the documentation may lead to a mismatch in type declarations only visible at runtime. With our study, we investigate how often the documentation is inconsistent in a sample of 239 methods from five Python open-source software projects. Our results highlight that more than 20% of the comments are either partially defined or entirely missing and that almost 1% of the methods in the analyzed projects contain type inconsistencies. Based on these results, we create a tool, PyID, to early detect type mismatches in Python documentation and we evaluate its performance with our oracle.
过去的研究提供的证据表明,开发人员在进行代码更改时有时会忽略更新相关文档,从而造成可能导致错误和崩溃的不一致。在动态类型语言(如Python)中,文档中的不一致可能导致仅在运行时可见的类型声明不匹配。在我们的研究中,我们调查了来自五个Python开源软件项目的239种方法样本中文档不一致的频率。我们的结果强调,超过20%的注释要么是部分定义的,要么是完全缺失的,并且在分析的项目中,几乎有1%的方法包含类型不一致。基于这些结果,我们创建了一个工具PyID,用于早期检测Python文档中的类型不匹配,并使用oracle评估其性能。
{"title":"Investigating type declaration mismatches in Python","authors":"L. Pascarella, Achyudh Ram, A. Nadeem, Dinesh Bisesser, Norman Knyazev, Alberto Bacchelli","doi":"10.1109/MALTESQUE.2018.8368458","DOIUrl":"https://doi.org/10.1109/MALTESQUE.2018.8368458","url":null,"abstract":"Past research provided evidence that developers making code changes sometimes omit to update the related documentation, thus creating inconsistencies that may contribute to faults and crashes. In dynamically typed languages, such as Python, an inconsistency in the documentation may lead to a mismatch in type declarations only visible at runtime. With our study, we investigate how often the documentation is inconsistent in a sample of 239 methods from five Python open-source software projects. Our results highlight that more than 20% of the comments are either partially defined or entirely missing and that almost 1% of the methods in the analyzed projects contain type inconsistencies. Based on these results, we create a tool, PyID, to early detect type mismatches in Python documentation and we evaluate its performance with our oracle.","PeriodicalId":345739,"journal":{"name":"2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130300574","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
期刊
2018 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE)
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1