首页 > 最新文献

2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)最新文献

英文 中文
Generating Customised Control Flow Graphs for Legacy Languages with Semi-Parsing 使用半解析为遗留语言生成自定义控制流程图
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00072
C. Deknop, J. Fabry, K. Mens, V. Zaytsev
We propose a tool and underlying technique that uses semi-parsing to extract control flow graphs from legacy source code (i.e., COBOL). Obtaining such control flow graphs is relevant in the industrial setting of legacy modernisation, to quickly demonstrate to code owners that modernisation engineers did not break their business logic. They need to be convinced that a migration did not affect the flow around critical parts of their code such as database accesses. Focusing on the control flow around embedded SQL queries and confirming that the code logic has been preserved improves customers' trust and satisfaction in the modernisation. Our proposed algorithm and approach uses fuzzy parsing as opposed to full parsing to parse mainly the control flow constructs, while delegating the full parsing of embedded languages like SQL to an external parser, and produces a control flow graph directly while skipping over most of the input in linear time. Such a fuzzy parser is easier to construct and adapt to particular languages and needs than a full parser with a visitor to elicit control flow. Comparisons are made of the fuzzy parser to an industrial-strength full parser.
我们提出了一种工具和底层技术,它使用半解析从遗留源代码(即COBOL)中提取控制流图。在遗留现代化的工业环境中,获取这样的控制流图是相关的,可以快速地向代码所有者演示现代化工程师没有破坏他们的业务逻辑。他们需要确信迁移不会影响代码的关键部分(如数据库访问)周围的流。关注围绕嵌入式SQL查询的控制流,并确认代码逻辑已被保留,可以提高客户对现代化的信任和满意度。我们提出的算法和方法使用模糊解析,而不是完整解析,主要解析控制流结构,同时将嵌入式语言(如SQL)的完整解析委托给外部解析器,直接生成控制流图,同时在线性时间内跳过大部分输入。与带访问者的完整解析器相比,这种模糊解析器更容易构造并适应特定的语言和需求。将模糊解析器与工业强度的完整解析器进行比较。
{"title":"Generating Customised Control Flow Graphs for Legacy Languages with Semi-Parsing","authors":"C. Deknop, J. Fabry, K. Mens, V. Zaytsev","doi":"10.1109/ICSME55016.2022.00072","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00072","url":null,"abstract":"We propose a tool and underlying technique that uses semi-parsing to extract control flow graphs from legacy source code (i.e., COBOL). Obtaining such control flow graphs is relevant in the industrial setting of legacy modernisation, to quickly demonstrate to code owners that modernisation engineers did not break their business logic. They need to be convinced that a migration did not affect the flow around critical parts of their code such as database accesses. Focusing on the control flow around embedded SQL queries and confirming that the code logic has been preserved improves customers' trust and satisfaction in the modernisation. Our proposed algorithm and approach uses fuzzy parsing as opposed to full parsing to parse mainly the control flow constructs, while delegating the full parsing of embedded languages like SQL to an external parser, and produces a control flow graph directly while skipping over most of the input in linear time. Such a fuzzy parser is easier to construct and adapt to particular languages and needs than a full parser with a visitor to elicit control flow. Comparisons are made of the fuzzy parser to an industrial-strength full parser.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122327177","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
Improving Fault Localization Using Model-domain Synthesized Failing Test Generation 利用模型域综合故障测试生成改进故障定位
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00026
Zhuo Zhang, Yan Lei, Xiaoguang Mao, Meng Yan, Xin Xia
A test suite is indispensable for conducting effective fault localization, and has two classes of tests: passing tests and failing tests. However, in practice, passing tests heavily outnumber failing tests regarding a fault, leading to failing tests being a minority class in contrast to passing tests. Previous work has empirically shown that the lack of failing tests regarding a fault leads to a class-balanced test suite, which tends to hamper fault localization effectiveness.To address this issue, we propose MSGen: a Model-domain Synthesized Failing Test Generation approach. MSGen utilizes the widely used information model of fault localization (i.e., an abstraction of the execution information and test results of a test suite), and uses the minimum variability of the minority feature space to create new synthesized model-domain failing test samples (i.e., synthesized vectors with failing labels defined as the information model) for fault localization. In contrast to traditional test generation directly from the input domain, MSGen seeks to synthesize failing test samples from the model domain. We apply MSGen to 12 state-of-the-art localization approaches and also compare MSGen to 2 representative data optimization approaches. The experimental results show that our synthesized test generation approach significantly improves fault localization effectiveness with up to 51.22%.
测试套件对于进行有效的故障定位是必不可少的,它有两类测试:通过测试和失败测试。然而,在实践中,通过测试的数量远远超过失败测试的数量,导致失败测试成为少数类,而不是通过测试。以前的工作经验表明,缺乏关于故障的失败测试会导致类平衡的测试套件,这往往会妨碍故障定位的有效性。为了解决这个问题,我们提出了MSGen:一种模型域合成失败测试生成方法。MSGen利用广泛使用的故障定位信息模型(即对测试套件的执行信息和测试结果的抽象),利用少数特征空间的最小可变性,创建新的合成模型域故障测试样本(即定义有故障标签的合成向量作为信息模型)进行故障定位。与直接从输入域生成的传统测试不同,MSGen试图从模型域合成失败的测试样本。我们将MSGen应用于12种最先进的本地化方法,并将MSGen与2种具有代表性的数据优化方法进行比较。实验结果表明,该方法显著提高了故障定位效率,定位效率可达51.22%。
{"title":"Improving Fault Localization Using Model-domain Synthesized Failing Test Generation","authors":"Zhuo Zhang, Yan Lei, Xiaoguang Mao, Meng Yan, Xin Xia","doi":"10.1109/ICSME55016.2022.00026","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00026","url":null,"abstract":"A test suite is indispensable for conducting effective fault localization, and has two classes of tests: passing tests and failing tests. However, in practice, passing tests heavily outnumber failing tests regarding a fault, leading to failing tests being a minority class in contrast to passing tests. Previous work has empirically shown that the lack of failing tests regarding a fault leads to a class-balanced test suite, which tends to hamper fault localization effectiveness.To address this issue, we propose MSGen: a Model-domain Synthesized Failing Test Generation approach. MSGen utilizes the widely used information model of fault localization (i.e., an abstraction of the execution information and test results of a test suite), and uses the minimum variability of the minority feature space to create new synthesized model-domain failing test samples (i.e., synthesized vectors with failing labels defined as the information model) for fault localization. In contrast to traditional test generation directly from the input domain, MSGen seeks to synthesize failing test samples from the model domain. We apply MSGen to 12 state-of-the-art localization approaches and also compare MSGen to 2 representative data optimization approaches. The experimental results show that our synthesized test generation approach significantly improves fault localization effectiveness with up to 51.22%.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128052381","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}
引用次数: 6
Automated Server Testing: an Industrial Experience Report 自动化服务器测试:工业经验报告
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00071
Chao Peng, Yujun Gao, Ping Yang
A server API bug could have a huge impact on the operation of other servers and clients relying on that API, resulting in service downtime and financial losses. A common practice of server API testing inside enterprises is writing test inputs and assertions manually, and the test effectiveness depends largely on testers’ carefulness, expertise and domain knowledge. Writing test cases for complicated business scenarios with multiple and ordered API calls is also a heavy task that requires a lot of human effort. In this paper, we present the design and deployment of SIT, a fully automated server interface reliability testing platform at ByteDance that provides capabilities including (1) traffic data generation based on combinatorial testing and fuzzing, (2) scenario testing for complicated business logics and (3) automated test execution with fault localisation in a controlled environment that does not affect online services. SIT has been integrated into the source control system and is triggered when new code change is submitted or configured as scheduled tasks. During the year of 2021, SIT blocked 434 valid issues before they were introduced into the production system.
服务器API错误可能会对依赖该API的其他服务器和客户端的操作产生巨大影响,从而导致服务停机和经济损失。企业内部服务器API测试的一个常见做法是手动编写测试输入和断言,测试的有效性在很大程度上取决于测试人员的细心程度、专业知识和领域知识。为具有多个有序API调用的复杂业务场景编写测试用例也是一项繁重的任务,需要大量人力。在本文中,我们介绍了SIT的设计和部署,SIT是ByteDance的一个全自动服务器接口可靠性测试平台,它提供的功能包括:(1)基于组合测试和模糊测试的流量数据生成,(2)复杂业务逻辑的场景测试,以及(3)在不影响在线服务的受控环境中进行故障定位的自动化测试执行。SIT已经集成到源代码控制系统中,并且在提交新的代码更改或配置为计划任务时触发。在2021年,SIT在引入生产系统之前阻止了434个有效问题。
{"title":"Automated Server Testing: an Industrial Experience Report","authors":"Chao Peng, Yujun Gao, Ping Yang","doi":"10.1109/ICSME55016.2022.00071","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00071","url":null,"abstract":"A server API bug could have a huge impact on the operation of other servers and clients relying on that API, resulting in service downtime and financial losses. A common practice of server API testing inside enterprises is writing test inputs and assertions manually, and the test effectiveness depends largely on testers’ carefulness, expertise and domain knowledge. Writing test cases for complicated business scenarios with multiple and ordered API calls is also a heavy task that requires a lot of human effort. In this paper, we present the design and deployment of SIT, a fully automated server interface reliability testing platform at ByteDance that provides capabilities including (1) traffic data generation based on combinatorial testing and fuzzing, (2) scenario testing for complicated business logics and (3) automated test execution with fault localisation in a controlled environment that does not affect online services. SIT has been integrated into the source control system and is triggered when new code change is submitted or configured as scheduled tasks. During the year of 2021, SIT blocked 434 valid issues before they were introduced into the production system.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133825519","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
Community Smell Detection and Refactoring in SLACK: The CADOCS Project SLACK中的社区气味检测和重构:CADOCS项目
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00061
Gianmario Voria, Viviana Pentangelo, Antonio Della Porta, Stefano Lambiase, Gemma Catolino, Fabio Palomba, F. Ferrucci
Software engineering is a human-centered activity involving various stakeholders with different backgrounds that have to communicate and collaborate to reach shared objectives. The emergence of conflicts among stakeholders may lead to undesired effects on software maintainability, yet it is often unavoidable in the long run. Community smells, i.e., sub-optimal communication and collaboration practices, have been defined to map recurrent conflicts among developers. While some community smell detection tools have been proposed in the recent past, these can be mainly used for research purposes because of their limited level of usability and user engagement. To facilitate a wider use of community smell-related information by practitioners, we present CADOCS, a client-server conversational agent that builds on top of a previous community smell detection tool proposed by Almarini et al. to (1) make it usable within a well-established communication channel like Slack and (2) augment it by providing initial support to software analytics instruments useful to diagnose and refactor community smells. We describe the features of the tool and the preliminary evaluation conducted to assess and improve robustness and usability.
软件工程是一项以人为中心的活动,涉及具有不同背景的各种涉众,他们必须进行沟通和协作以达到共同的目标。涉众之间冲突的出现可能会对软件的可维护性产生意想不到的影响,但从长远来看,这通常是不可避免的。社区气味,即次优的沟通和协作实践,已经被定义为映射开发人员之间反复出现的冲突。虽然最近已经提出了一些社区气味检测工具,但这些工具主要用于研究目的,因为它们的可用性和用户参与度有限。为了促进从业者更广泛地使用社区气味相关信息,我们提出了CADOCS,这是一个客户端-服务器会话代理,它建立在Almarini等人之前提出的社区气味检测工具的基础上,以便(1)使其可用于Slack等完善的通信渠道;(2)通过为诊断和重构社区气味的软件分析工具提供初始支持来增强它。我们描述了该工具的功能,并进行了初步评估,以评估和提高鲁棒性和可用性。
{"title":"Community Smell Detection and Refactoring in SLACK: The CADOCS Project","authors":"Gianmario Voria, Viviana Pentangelo, Antonio Della Porta, Stefano Lambiase, Gemma Catolino, Fabio Palomba, F. Ferrucci","doi":"10.1109/ICSME55016.2022.00061","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00061","url":null,"abstract":"Software engineering is a human-centered activity involving various stakeholders with different backgrounds that have to communicate and collaborate to reach shared objectives. The emergence of conflicts among stakeholders may lead to undesired effects on software maintainability, yet it is often unavoidable in the long run. Community smells, i.e., sub-optimal communication and collaboration practices, have been defined to map recurrent conflicts among developers. While some community smell detection tools have been proposed in the recent past, these can be mainly used for research purposes because of their limited level of usability and user engagement. To facilitate a wider use of community smell-related information by practitioners, we present CADOCS, a client-server conversational agent that builds on top of a previous community smell detection tool proposed by Almarini et al. to (1) make it usable within a well-established communication channel like Slack and (2) augment it by providing initial support to software analytics instruments useful to diagnose and refactor community smells. We describe the features of the tool and the preliminary evaluation conducted to assess and improve robustness and usability.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134061760","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
On the Use of GitHub Actions in Software Development Repositories 关于在软件开发存储库中使用GitHub操作
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00029
Alexandre Decan, T. Mens, Pooya Rostami Mazrae, M. Golzadeh
GitHub Actions was introduced in 2019 and constitutes an integrated alternative to CI/CD services for GitHub repositories. The deep integration with GitHub allows repositories to easily automate software development workflows. This paper empirically studies the use of GitHub Actions on a dataset comprising 68K repositories on GitHub, of which 43.9% are using GitHub Actions workflows. We analyse which workflows are automated and identify the most frequent automation practices. We show that reuse of actions is a common practice, even if this reuse is concentrated in a limited number of actions. We study which actions are most frequently used and how workflows refer to them. Furthermore, we discuss the related security and versioning aspects. As such, we provide an overview of the use of GitHub Actions, constituting a necessary first step towards a better understanding of this emerging ecosystem and its implications on collaborative software development in the GitHub social coding platform.
GitHub Actions于2019年推出,构成了GitHub存储库CI/CD服务的集成替代方案。与GitHub的深度集成允许存储库轻松地自动化软件开发工作流。本文实证研究了GitHub上包含68K库的数据集上GitHub Actions的使用情况,其中43.9%使用GitHub Actions工作流。我们分析哪些工作流程是自动化的,并确定最常见的自动化实践。我们展示了操作的重用是一种常见的实践,即使这种重用集中在有限数量的操作中。我们研究哪些操作是最常用的,以及工作流如何引用它们。此外,我们还讨论了相关的安全性和版本控制方面。因此,我们概述了GitHub Actions的使用,这是更好地理解这个新兴生态系统及其对GitHub社交编码平台中协作软件开发的影响的必要的第一步。
{"title":"On the Use of GitHub Actions in Software Development Repositories","authors":"Alexandre Decan, T. Mens, Pooya Rostami Mazrae, M. Golzadeh","doi":"10.1109/ICSME55016.2022.00029","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00029","url":null,"abstract":"GitHub Actions was introduced in 2019 and constitutes an integrated alternative to CI/CD services for GitHub repositories. The deep integration with GitHub allows repositories to easily automate software development workflows. This paper empirically studies the use of GitHub Actions on a dataset comprising 68K repositories on GitHub, of which 43.9% are using GitHub Actions workflows. We analyse which workflows are automated and identify the most frequent automation practices. We show that reuse of actions is a common practice, even if this reuse is concentrated in a limited number of actions. We study which actions are most frequently used and how workflows refer to them. Furthermore, we discuss the related security and versioning aspects. As such, we provide an overview of the use of GitHub Actions, constituting a necessary first step towards a better understanding of this emerging ecosystem and its implications on collaborative software development in the GitHub social coding platform.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"79 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121246253","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}
引用次数: 20
MUBot: Learning to Test Large-Scale Commercial Android Apps like a Human MUBot:像人类一样学习测试大规模商业Android应用程序
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00074
Chao Peng, Zhao Zhang, Zhengwei Lv, Ping Yang
Automated GUI testing has been playing a key role to uncover crashes to ensure the stability and robustness of Android apps. Recent research has proposed random, search-based and model-based testing techniques for GUI event generation. In industrial practices, different companies have developed various GUI exploration tools such as Facebook Sapienz, WeChat WeTest and ByteDance Fastbot to test their products. However, these tools are bound to their predefined GUI exploration strategies and lack of the ability to generate human-like actions to test meaningful scenarios. To address these challenges, Humanoid is the first Android testing tool that utilises deep learning to imitate human behaviours and achieves promising results over current model-based methods. However, we find some challenges when applying Humanoid to test our sophisticated commercial apps such as infinite loops and low test coverage. To this end, we performed the first case study on the performance of deep learning techniques using commercial apps to understand the underlying reason of the current weakness of this promising method. Based on our findings, we propose MUBot (Multi-modal User Bot) for human-like Android testing. Our empirical evaluation reveals that MUBot has better performance over Humanoid and Fastbot, our in-house testing tool on coverage achieved and bug-fixing rate on commercial apps.
自动化GUI测试在发现崩溃以确保Android应用的稳定性和健壮性方面发挥着关键作用。最近的研究提出了随机、基于搜索和基于模型的GUI事件生成测试技术。在工业实践中,不同的公司已经开发了各种GUI探索工具,如Facebook Sapienz,微信WeTest和字节跳动Fastbot来测试他们的产品。然而,这些工具受限于预定义的GUI探索策略,缺乏生成类似人类的操作来测试有意义的场景的能力。为了应对这些挑战,Humanoid是第一个利用深度学习来模仿人类行为的Android测试工具,与目前基于模型的方法相比,它取得了令人鼓舞的结果。然而,当应用Humanoid来测试我们复杂的商业应用程序(如无限循环和低测试覆盖率)时,我们发现了一些挑战。为此,我们对使用商业应用程序的深度学习技术的性能进行了第一个案例研究,以了解这种有前途的方法当前弱点的潜在原因。基于我们的发现,我们提出了用于类人Android测试的MUBot (Multi-modal User Bot)。我们的实证评估表明,在商业应用的覆盖率和bug修复率方面,MUBot比我们的内部测试工具Humanoid和Fastbot有更好的表现。
{"title":"MUBot: Learning to Test Large-Scale Commercial Android Apps like a Human","authors":"Chao Peng, Zhao Zhang, Zhengwei Lv, Ping Yang","doi":"10.1109/ICSME55016.2022.00074","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00074","url":null,"abstract":"Automated GUI testing has been playing a key role to uncover crashes to ensure the stability and robustness of Android apps. Recent research has proposed random, search-based and model-based testing techniques for GUI event generation. In industrial practices, different companies have developed various GUI exploration tools such as Facebook Sapienz, WeChat WeTest and ByteDance Fastbot to test their products. However, these tools are bound to their predefined GUI exploration strategies and lack of the ability to generate human-like actions to test meaningful scenarios. To address these challenges, Humanoid is the first Android testing tool that utilises deep learning to imitate human behaviours and achieves promising results over current model-based methods. However, we find some challenges when applying Humanoid to test our sophisticated commercial apps such as infinite loops and low test coverage. To this end, we performed the first case study on the performance of deep learning techniques using commercial apps to understand the underlying reason of the current weakness of this promising method. Based on our findings, we propose MUBot (Multi-modal User Bot) for human-like Android testing. Our empirical evaluation reveals that MUBot has better performance over Humanoid and Fastbot, our in-house testing tool on coverage achieved and bug-fixing rate on commercial apps.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"34 1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116616894","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
Impact of Defect Instances for Successful Deep Learning-based Automatic Program Repair 缺陷实例对成功基于深度学习的自动程序修复的影响
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00051
Misoo Kim, Youngkyoung Kim, Jinseok Heo, Hohyeon Jeong, Sungoh Kim, Eunseok Lee
Deep learning-based automatic program repair (DL-APR) returns a patch code when given a defect code. Recent studies on DL-APR techniques have focused on the training phase to generate more accurate patches; however, a trained model cannot always generate an accurate patch for every new defect code, as the training dataset does not completely represent the new defects to be input in the future. DL-APR researchers should study a method to elicit the best performance on new inputs from the trained and deployed model. A new defect instance (i.e., defect codes and their context codes) is one of the crucial input data that determine the accuracy of the DL-APR, which can be changed and improved. We improve the quality of new input defect instances by focusing on the presence of noise tokens which compromise the defect instances’ quality, thus impairing the accuracy of generated patches. This paper shows that 1) there are noise tokens which prevent correct patch generation (inference) in a new defect instance, and 2) it is necessary to mask these noise tokens to avoid their usage in inferencing patch codes. In order to validate these two assertions, we use a state-of-the-art DL-APR technique and a genetic algorithm to generate near-optimal defect instances which maximize the patch generation accuracy (i.e., the BLEU score) of 4,573 defect instances. Based on optimization results, we found that 1) noise tokens impair patch generation accuracy in approximately 49% of instances, and 2) if these tokens are precluded from inference by masking them, we can improve patch generation accuracy by 88%. The results suggest that future work is required to automatically remove noise tokens from new defect instances so that the trained patch generator generates better patches.
当给定缺陷代码时,基于深度学习的自动程序修复(DL-APR)返回补丁代码。最近对DL-APR技术的研究主要集中在训练阶段,以产生更准确的贴片;然而,一个训练好的模型不能总是为每一个新的缺陷代码生成一个准确的补丁,因为训练数据集不能完全代表未来要输入的新缺陷。DL-APR研究人员应该研究一种方法,从训练和部署的模型中获得新输入的最佳性能。一个新的缺陷实例(例如,缺陷代码和它们的上下文代码)是决定DL-APR准确性的关键输入数据之一,它可以被改变和改进。我们通过关注影响缺陷实例质量的噪声标记的存在来提高新输入缺陷实例的质量,从而损害生成补丁的准确性。本文表明:1)在新的缺陷实例中存在妨碍正确补丁生成(推理)的噪声标记;2)有必要屏蔽这些噪声标记以避免它们在补丁代码推理中使用。为了验证这两个断言,我们使用最先进的DL-APR技术和遗传算法来生成接近最优的缺陷实例,最大限度地提高了4,573个缺陷实例的补丁生成精度(即BLEU分数)。基于优化结果,我们发现1)噪声标记在大约49%的实例中损害补丁生成精度,2)如果通过屏蔽这些标记来排除这些标记,我们可以将补丁生成精度提高88%。结果表明,未来的工作需要从新的缺陷实例中自动去除噪声标记,以便训练好的补丁生成器生成更好的补丁。
{"title":"Impact of Defect Instances for Successful Deep Learning-based Automatic Program Repair","authors":"Misoo Kim, Youngkyoung Kim, Jinseok Heo, Hohyeon Jeong, Sungoh Kim, Eunseok Lee","doi":"10.1109/ICSME55016.2022.00051","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00051","url":null,"abstract":"Deep learning-based automatic program repair (DL-APR) returns a patch code when given a defect code. Recent studies on DL-APR techniques have focused on the training phase to generate more accurate patches; however, a trained model cannot always generate an accurate patch for every new defect code, as the training dataset does not completely represent the new defects to be input in the future. DL-APR researchers should study a method to elicit the best performance on new inputs from the trained and deployed model. A new defect instance (i.e., defect codes and their context codes) is one of the crucial input data that determine the accuracy of the DL-APR, which can be changed and improved. We improve the quality of new input defect instances by focusing on the presence of noise tokens which compromise the defect instances’ quality, thus impairing the accuracy of generated patches. This paper shows that 1) there are noise tokens which prevent correct patch generation (inference) in a new defect instance, and 2) it is necessary to mask these noise tokens to avoid their usage in inferencing patch codes. In order to validate these two assertions, we use a state-of-the-art DL-APR technique and a genetic algorithm to generate near-optimal defect instances which maximize the patch generation accuracy (i.e., the BLEU score) of 4,573 defect instances. Based on optimization results, we found that 1) noise tokens impair patch generation accuracy in approximately 49% of instances, and 2) if these tokens are precluded from inference by masking them, we can improve patch generation accuracy by 88%. The results suggest that future work is required to automatically remove noise tokens from new defect instances so that the trained patch generator generates better patches.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114734165","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
Quality Analysis of iOS Applications with Focus on Maintainability and Security 基于可维护性和安全性的iOS应用质量分析
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00083
Kristiina Rahkema, Dietmar Pfahl
We use mobile apps on a daily basis and there is an app for everything. We trust these applications with our most personal data. It is therefore important that these apps are as secure and well usable as possible. So far most studies on the maintenance and security of mobile applications have been done on Android applications. We do, however, not know how well these results translate to iOS.This research project aims to close this gap by analysing iOS applications with regards to maintainability and security. Regarding maintainability, we analyse code smells in iOS applications, the evolution of code smells in iOS applications and compare code smell distributions in iOS and Android applications. Regarding security, we analyse the evolution of the third-party library dependency network for the iOS ecosystem. Additionally, we analyse how publicly reported vulnerabilities spread in the library dependency network.Regarding maintainability, we found that the distributions of code smells in iOS and Android applications differ. Code smells in iOS applications tend to correspond to smaller classes, such as Lazy Class. Regarding security, we found that the library dependency network of the iOS ecosystem is not growing as fast as in some other ecosystems. There are less dependencies on average than for example in the npm ecosystem and, therefore, vulnerabilities do not spread as far.
我们每天都在使用移动应用程序,每件事都有一个应用程序。我们相信这些应用程序可以提供我们的大部分个人数据。因此,确保这些应用程序的安全性和可用性是非常重要的。到目前为止,对移动应用的维护和安全的研究大多是在Android应用上进行的。然而,我们不知道这些结果在iOS上的应用效果如何。本研究项目旨在通过分析iOS应用程序的可维护性和安全性来缩小这一差距。在可维护性方面,我们分析了iOS应用程序中的代码气味,iOS应用程序中代码气味的演变,并比较了iOS和Android应用程序中的代码气味分布。在安全性方面,我们分析了iOS生态系统中第三方图书馆依赖网络的演变。此外,我们分析了公开报告的漏洞如何在库依赖网络中传播。关于可维护性,我们发现iOS和Android应用程序的代码气味分布是不同的。iOS应用程序中的代码气味倾向于对应较小的类,例如Lazy Class。在安全性方面,我们发现iOS生态系统的图书馆依赖网络并没有像其他生态系统那样快速增长。平均而言,与npm生态系统相比,依赖关系更少,因此,漏洞不会传播得那么远。
{"title":"Quality Analysis of iOS Applications with Focus on Maintainability and Security","authors":"Kristiina Rahkema, Dietmar Pfahl","doi":"10.1109/ICSME55016.2022.00083","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00083","url":null,"abstract":"We use mobile apps on a daily basis and there is an app for everything. We trust these applications with our most personal data. It is therefore important that these apps are as secure and well usable as possible. So far most studies on the maintenance and security of mobile applications have been done on Android applications. We do, however, not know how well these results translate to iOS.This research project aims to close this gap by analysing iOS applications with regards to maintainability and security. Regarding maintainability, we analyse code smells in iOS applications, the evolution of code smells in iOS applications and compare code smell distributions in iOS and Android applications. Regarding security, we analyse the evolution of the third-party library dependency network for the iOS ecosystem. Additionally, we analyse how publicly reported vulnerabilities spread in the library dependency network.Regarding maintainability, we found that the distributions of code smells in iOS and Android applications differ. Code smells in iOS applications tend to correspond to smaller classes, such as Lazy Class. Regarding security, we found that the library dependency network of the iOS ecosystem is not growing as fast as in some other ecosystems. There are less dependencies on average than for example in the npm ecosystem and, therefore, vulnerabilities do not spread as far.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"241 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115196407","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
RMove: Recommending Move Method Refactoring Opportunities using Structural and Semantic Representations of Code 推荐使用代码的结构和语义表示的Move方法重构机会
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00033
Di Cui, Siqi Wang, Yong Luo, Xingyu Li, Jie Dai, Lu Wang, Qingshan Li
Incorrect placement of methods within classes is a typical code smell called Feature Envy, which causes additional maintenance and cost during evolution. To remove this design flaw, several Move Method refactoring tools have been proposed. To the best of our knowledge, state-of-the-art related techniques can be broadly divided into two categories: the first line is non-machine-learning-based approaches built on software measurement, while the selection and thresholds of software metrics heavily rely on expert knowledge. The second line is machine learning-based approaches, which suggest Move Method refactoring by learning to extract features from code information. However, most approaches in this line treat different forms of code information identically, disregarding their significant variation on data analysis. In this paper, we propose an approach to recommend Move Method refactoring named RMove by automatically learning structural and semantic representation from code fragment respectively. We concatenate these representations together and further train the machine learning classifiers to guide the movement of method to suitable classes. We evaluate our approach on two publicly available datasets. The results show that our approach outperforms three state-of-the-art refactoring tools including PathMove, JDeodorant, and JMove in effectiveness and usefulness. The results also unveil useful findings and provide new insights that benefit other types of feature envy refactoring techniques.
在类中不正确地放置方法是一种典型的代码气味,称为Feature Envy,它会在进化过程中导致额外的维护和成本。为了消除这个设计缺陷,提出了几个Move Method重构工具。据我们所知,最先进的相关技术可以大致分为两类:第一类是基于软件度量的非机器学习方法,而软件度量的选择和阈值严重依赖于专家知识。第二行是基于机器学习的方法,它建议通过学习从代码信息中提取特征来进行Move Method重构。然而,这一行中的大多数方法都以相同的方式对待不同形式的代码信息,而忽略了它们在数据分析上的显著差异。在本文中,我们提出了一种推荐移动方法重构的方法,即RMove,它分别从代码片段中自动学习结构表示和语义表示。我们将这些表示连接在一起,并进一步训练机器学习分类器,以指导方法移动到合适的类。我们在两个公开可用的数据集上评估我们的方法。结果表明,我们的方法在有效性和有用性方面优于三种最先进的重构工具,包括PathMove、JDeodorant和JMove。研究结果还揭示了一些有用的发现,并提供了有利于其他类型的特性重构技术的新见解。
{"title":"RMove: Recommending Move Method Refactoring Opportunities using Structural and Semantic Representations of Code","authors":"Di Cui, Siqi Wang, Yong Luo, Xingyu Li, Jie Dai, Lu Wang, Qingshan Li","doi":"10.1109/ICSME55016.2022.00033","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00033","url":null,"abstract":"Incorrect placement of methods within classes is a typical code smell called Feature Envy, which causes additional maintenance and cost during evolution. To remove this design flaw, several Move Method refactoring tools have been proposed. To the best of our knowledge, state-of-the-art related techniques can be broadly divided into two categories: the first line is non-machine-learning-based approaches built on software measurement, while the selection and thresholds of software metrics heavily rely on expert knowledge. The second line is machine learning-based approaches, which suggest Move Method refactoring by learning to extract features from code information. However, most approaches in this line treat different forms of code information identically, disregarding their significant variation on data analysis. In this paper, we propose an approach to recommend Move Method refactoring named RMove by automatically learning structural and semantic representation from code fragment respectively. We concatenate these representations together and further train the machine learning classifiers to guide the movement of method to suitable classes. We evaluate our approach on two publicly available datasets. The results show that our approach outperforms three state-of-the-art refactoring tools including PathMove, JDeodorant, and JMove in effectiveness and usefulness. The results also unveil useful findings and provide new insights that benefit other types of feature envy refactoring techniques.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"132 ","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120872050","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
INFuse: Towards Efficient Context Consistency by Incremental-Concurrent Check Fusion 注入:通过增量-并发检查融合实现有效的上下文一致性
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00025
Lingyu Zhang, Huiyan Wang, Chang Xu, Ping Yu
Nowadays applications are getting increasingly attractive by being capable of adapting their behaviors based on their understanding to running environments (a.k.a. contexts). However, such capability can be subject to illness or even unexpected crash, when contexts, for suffering environmental noises, become inaccurate or even conflict with each other. Fortunately, various constraint checking techniques have been proposed to validate contexts against consistency constraints, in order to guard context consistency for applications in a timely manner. However, with the growth of environmental dynamics and context volume, it is getting more and more challenging to check context consistency in time. In this paper, we propose a novel approach, INFuse, to soundly fuse together two lines of techniques, namely, incremental checking and concurrent checking, for efficient constraint checking. Realizing such check fusion has to address the challenges rising from the gap between the micro analysis for reusable elements in incremental checking and the macro collection of parallel tasks in concurrent checking. INFuse solves the challenges by automatically deciding maximal concurrent boundaries for context changes under checking (i.e., what-correctness problem), and soundly fusing incremental and concurrent checking for context consistency (i.e., how-correctness problem), with theoretical guarantees. Our experimental evaluation with real-world data shows that INFuse could improve constraint checking efficiency by 18.6x–171.1x, as compared with existing state-of-the-art techniques.
如今,应用程序正变得越来越有吸引力,因为它们能够根据对运行环境(又名上下文)的理解来调整自己的行为。然而,当遭受环境噪音的环境变得不准确甚至相互冲突时,这种能力可能会受到疾病甚至意外崩溃的影响。幸运的是,已经提出了各种约束检查技术来根据一致性约束验证上下文,以便及时保护应用程序的上下文一致性。然而,随着环境动态性和上下文量的增长,及时检查上下文一致性变得越来越具有挑战性。在本文中,我们提出了一种新的方法,INFuse,将增量检查和并发检查两种技术很好地融合在一起,以实现有效的约束检查。实现这种检查融合必须解决增量检查中可重用元素的微观分析与并发检查中并行任务的宏观收集之间的差距所带来的挑战。INFuse通过在检查下自动决定上下文更改的最大并发边界(即,what-正确性问题)来解决这些挑战,并通过理论保证将增量检查和并发检查完美地融合在一起,以确保上下文一致性(即,how-正确性问题)。我们对实际数据的实验评估表明,与现有最先进的技术相比,INFuse可以将约束检查效率提高18.6 - 171.1倍。
{"title":"INFuse: Towards Efficient Context Consistency by Incremental-Concurrent Check Fusion","authors":"Lingyu Zhang, Huiyan Wang, Chang Xu, Ping Yu","doi":"10.1109/ICSME55016.2022.00025","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00025","url":null,"abstract":"Nowadays applications are getting increasingly attractive by being capable of adapting their behaviors based on their understanding to running environments (a.k.a. contexts). However, such capability can be subject to illness or even unexpected crash, when contexts, for suffering environmental noises, become inaccurate or even conflict with each other. Fortunately, various constraint checking techniques have been proposed to validate contexts against consistency constraints, in order to guard context consistency for applications in a timely manner. However, with the growth of environmental dynamics and context volume, it is getting more and more challenging to check context consistency in time. In this paper, we propose a novel approach, INFuse, to soundly fuse together two lines of techniques, namely, incremental checking and concurrent checking, for efficient constraint checking. Realizing such check fusion has to address the challenges rising from the gap between the micro analysis for reusable elements in incremental checking and the macro collection of parallel tasks in concurrent checking. INFuse solves the challenges by automatically deciding maximal concurrent boundaries for context changes under checking (i.e., what-correctness problem), and soundly fusing incremental and concurrent checking for context consistency (i.e., how-correctness problem), with theoretical guarantees. Our experimental evaluation with real-world data shows that INFuse could improve constraint checking efficiency by 18.6x–171.1x, as compared with existing state-of-the-art techniques.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"509 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133532003","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
期刊
2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)
全部 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