首页 > 最新文献

软件产业与工程最新文献

英文 中文
Quantitative relational modelling with QAlloy 定量关系建模与QAlloy
Pub Date : 2022-11-07 DOI: 10.1145/3540250.3549154
Pedro Silva, J. Oliveira, Nuno Macedo, Alcino Cunha
Alloy is a popular language and tool for formal software design. A key factor to this popularity is its relational logic, an elegant specification language with a minimal syntax and semantics. However, many software problems nowadays involve both structural and quantitative requirements, and Alloy's relational logic is not well suited to reason about the latter. This paper introduces QAlloy, an extension of Alloy with quantitative relations that add integer quantities to associations between domain elements. Having integers internalised in relations, instead of being explicit domain elements like in standard Alloy, allows quantitative requirements to be specified in QAlloy with a similar elegance to structural requirements, with the side-effect of providing basic dimensional analysis support via the type system. The QAlloy Analyzer also implements an SMT-based engine that enables quantities to be unbounded, thus avoiding many problems that may arise with the current bounded integer semantics of Alloy.
Alloy是一种用于正式软件设计的流行语言和工具。这种流行的一个关键因素是它的关系逻辑,这是一种语法和语义最少的优雅规范语言。然而,现在的许多软件问题都涉及到结构和定量需求,Alloy的关系逻辑不太适合对后者进行推理。本文介绍了QAlloy,它是Alloy的扩展,具有定量关系,可以在域元素之间的关联中添加整数。将整数内部化到关系中,而不是像在标准Alloy中那样作为显式的域元素,允许在QAlloy中以与结构需求类似的优雅方式指定定量需求,其副作用是通过类型系统提供基本的维度分析支持。QAlloy Analyzer还实现了一个基于smt的引擎,该引擎支持数量无界,从而避免了Alloy当前有界整数语义可能出现的许多问题。
{"title":"Quantitative relational modelling with QAlloy","authors":"Pedro Silva, J. Oliveira, Nuno Macedo, Alcino Cunha","doi":"10.1145/3540250.3549154","DOIUrl":"https://doi.org/10.1145/3540250.3549154","url":null,"abstract":"Alloy is a popular language and tool for formal software design. A key factor to this popularity is its relational logic, an elegant specification language with a minimal syntax and semantics. However, many software problems nowadays involve both structural and quantitative requirements, and Alloy's relational logic is not well suited to reason about the latter. This paper introduces QAlloy, an extension of Alloy with quantitative relations that add integer quantities to associations between domain elements. Having integers internalised in relations, instead of being explicit domain elements like in standard Alloy, allows quantitative requirements to be specified in QAlloy with a similar elegance to structural requirements, with the side-effect of providing basic dimensional analysis support via the type system. The QAlloy Analyzer also implements an SMT-based engine that enables quantities to be unbounded, thus avoiding many problems that may arise with the current bounded integer semantics of Alloy.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"28 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84222625","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
Corporate dominance in open source ecosystems: a case study of OpenStack 企业在开源生态系统中的主导地位:OpenStack的案例研究
Pub Date : 2022-11-07 DOI: 10.1145/3540250.3549117
Yuxia Zhang, Klaas-Jan Stol, Hui Liu, Minghui Zhou
Corporate participation plays an increasing role in Open Source Software (OSS) development. Unlike volunteers in OSS projects, companies are driven by business objectives. To pursue corporate interests, companies may try to dominate the development direction of OSS projects. One company's domination in OSS may 'crowd out' other contributors, changing the nature of the project, and jeopardizing the sustainability of the OSS ecosystem. Prior studies of corporate involvement in OSS have primarily focused on predominately positive aspects such as business strategies, contribution models, and collaboration patterns. However, there is a scarcity of research on the potential drawbacks of corporate engagement. In this paper, we investigate corporate dominance in OSS ecosystems. We draw on the field of Economics and quantify company domination using a dominance measure; we investigate the prevalence, patterns, and impact of domination in the evolution of the OpenStack ecosystem. We find evidence of company domination in over 73% of the repositories in OpenStack, and approximately 25% of companies dominate one or more repositories per version. We identify five patterns of corporate dominance: Early incubation, Full-time hosting, Growing domination, Occasional domination, and Last remaining. We find that domination has a significantly negative relationship with the survival probability of OSS projects. This study provides insights for building sustainable relationships between companies and the OSS ecosystems in which they seek to get involved.
企业参与在开源软件(OSS)开发中扮演着越来越重要的角色。与OSS项目中的志愿者不同,公司是由业务目标驱动的。为了追求企业利益,企业可能会试图主导OSS项目的发展方向。一家公司在OSS中的主导地位可能会“排挤”其他贡献者,改变项目的性质,并危及OSS生态系统的可持续性。以前关于企业参与OSS的研究主要集中在积极的方面,比如商业策略、贡献模型和协作模式。然而,关于企业参与的潜在弊端的研究却很少。本文研究了企业在OSS生态系统中的主导地位。我们借鉴经济学领域,使用支配度度量来量化公司支配度;我们调查了OpenStack生态系统演变中主导地位的流行程度、模式和影响。我们在OpenStack中超过73%的存储库中发现了公司主导的证据,大约25%的公司在每个版本中主导一个或多个存储库。我们确定了五种企业支配模式:早期孵化、全职托管、成长支配、偶尔支配和最后保留。我们发现,支配与OSS项目的生存概率呈显著负相关。这项研究为公司和他们寻求参与的OSS生态系统之间建立可持续的关系提供了见解。
{"title":"Corporate dominance in open source ecosystems: a case study of OpenStack","authors":"Yuxia Zhang, Klaas-Jan Stol, Hui Liu, Minghui Zhou","doi":"10.1145/3540250.3549117","DOIUrl":"https://doi.org/10.1145/3540250.3549117","url":null,"abstract":"Corporate participation plays an increasing role in Open Source Software (OSS) development. Unlike volunteers in OSS projects, companies are driven by business objectives. To pursue corporate interests, companies may try to dominate the development direction of OSS projects. One company's domination in OSS may 'crowd out' other contributors, changing the nature of the project, and jeopardizing the sustainability of the OSS ecosystem. Prior studies of corporate involvement in OSS have primarily focused on predominately positive aspects such as business strategies, contribution models, and collaboration patterns. However, there is a scarcity of research on the potential drawbacks of corporate engagement. In this paper, we investigate corporate dominance in OSS ecosystems. We draw on the field of Economics and quantify company domination using a dominance measure; we investigate the prevalence, patterns, and impact of domination in the evolution of the OpenStack ecosystem. We find evidence of company domination in over 73% of the repositories in OpenStack, and approximately 25% of companies dominate one or more repositories per version. We identify five patterns of corporate dominance: Early incubation, Full-time hosting, Growing domination, Occasional domination, and Last remaining. We find that domination has a significantly negative relationship with the survival probability of OSS projects. This study provides insights for building sustainable relationships between companies and the OSS ecosystems in which they seek to get involved.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"18 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84432354","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
A retrospective study of one decade of artifact evaluations 对十年来人工制品评估的回顾性研究
Pub Date : 2022-11-07 DOI: 10.1145/3540250.3549172
Stefan Winter, C. Timperley, Ben Hermann, Jürgen Cito, Jonathan Bell, Michael C Hilton, Dirk Beyer
Most software engineering research involves the development of a prototype, a proof of concept, or a measurement apparatus. Together with the data collected in the research process, they are collectively referred to as research artifacts and are subject to artifact evaluation (AE) at scientific conferences. Since its initiation in the SE community at ESEC/FSE 2011, both the goals and the process of AE have evolved and today expectations towards AE are strongly linked with reproducible research results and reusable tools that other researchers can build their work on. However, to date little evidence has been provided that artifacts which have passed AE actually live up to these high expectations, i.e., to which degree AE processes contribute to AE's goals and whether the overhead they impose is justified. We aim to fill this gap by providing an in-depth analysis of research artifacts from a decade of software engineering (SE) and programming languages (PL) conferences, based on which we reflect on the goals and mechanisms of AE in our community. In summary, our analyses (1) suggest that articles with artifacts do not generally have better visibility in the community, (2) provide evidence how evaluated and not evaluated artifacts differ with respect to different quality criteria, and (3) highlight opportunities for further improving AE processes.
大多数软件工程研究都涉及原型的开发、概念的验证或测量仪器。它们与研究过程中收集的数据一起被统称为研究工件,并在科学会议上接受工件评估(AE)。自2011年ESEC/FSE在SE社区发起以来,AE的目标和过程都发生了变化,今天对AE的期望与可重复的研究结果和可重用的工具密切相关,其他研究人员可以在此基础上开展工作。然而,到目前为止,很少有证据表明,通过了AE的工件实际上达到了这些高期望,也就是说,AE过程对AE目标的贡献程度,以及它们施加的开销是否合理。我们的目标是通过对十年来软件工程(SE)和编程语言(PL)会议的研究成果进行深入分析来填补这一空白,在此基础上,我们反思了我们社区中AE的目标和机制。总之,我们的分析(1)表明带有工件的文章通常在社区中没有更好的可见性,(2)提供了关于不同质量标准的评估和未评估工件的差异的证据,以及(3)突出了进一步改进AE过程的机会。
{"title":"A retrospective study of one decade of artifact evaluations","authors":"Stefan Winter, C. Timperley, Ben Hermann, Jürgen Cito, Jonathan Bell, Michael C Hilton, Dirk Beyer","doi":"10.1145/3540250.3549172","DOIUrl":"https://doi.org/10.1145/3540250.3549172","url":null,"abstract":"Most software engineering research involves the development of a prototype, a proof of concept, or a measurement apparatus. Together with the data collected in the research process, they are collectively referred to as research artifacts and are subject to artifact evaluation (AE) at scientific conferences. Since its initiation in the SE community at ESEC/FSE 2011, both the goals and the process of AE have evolved and today expectations towards AE are strongly linked with reproducible research results and reusable tools that other researchers can build their work on. However, to date little evidence has been provided that artifacts which have passed AE actually live up to these high expectations, i.e., to which degree AE processes contribute to AE's goals and whether the overhead they impose is justified. We aim to fill this gap by providing an in-depth analysis of research artifacts from a decade of software engineering (SE) and programming languages (PL) conferences, based on which we reflect on the goals and mechanisms of AE in our community. In summary, our analyses (1) suggest that articles with artifacts do not generally have better visibility in the community, (2) provide evidence how evaluated and not evaluated artifacts differ with respect to different quality criteria, and (3) highlight opportunities for further improving AE processes.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"46 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79497277","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}
引用次数: 3
Quantifying community evolution in developer social networks 量化开发者社交网络中的社区演变
Pub Date : 2022-11-07 DOI: 10.1145/3540250.3549106
Liang Wang, Ying Li, Jierui Zhang, Xianping Tao
Understanding the evolution of communities in developer social networks (DSNs) around open source software (OSS) projects can provide valuable insights about the socio-technical process of OSS development. Existing studies show the evolutionary behaviors of social communities can effectively be described using patterns including split, shrink, merge, expand, emerge, and extinct. However, existing pattern-based approaches are limited in supporting quantitative analysis, and are potentially problematic for using the patterns in a mutually exclusive manner when describing community evolution. In this work, we propose that different patterns can occur simultaneously between every pair of communities during the evolution, just in different degrees. Four entropy-based indices are devised to measure the degree of community split, shrink, merge, and expand, respectively, which can provide a comprehensive and quantitative measure of community evolution in DSNs. The indices have properties desirable to quantify community evolution including monotonicity, and bounded maximum and minimum values that correspond to meaningful cases. They can also be combined to describe more patterns such as community emerge and extinct. We conduct studies with real-world OSS projects to evaluate the validity of the proposed indices. The results suggest the proposed indices can effectively capture community evolution, and are consistent with existing approaches in detecting evolution patterns in DSNs with an accuracy of 94.1%. The results also show that the indices are useful in predicting OSS team productivity with an accuracy of 0.718. In summary, the proposed approach is among the first to quantify the degree of community evolution with respect to different patterns, which is promising in supporting future research and applications about DSNs and OSS development.
了解围绕开源软件(OSS)项目的开发人员社会网络(dsn)社区的演变,可以为OSS开发的社会技术过程提供有价值的见解。现有的研究表明,社会群体的进化行为可以用分裂、缩小、合并、扩张、出现和灭绝等模式来有效地描述。然而,现有的基于模式的方法在支持定量分析方面是有限的,并且在描述社区演变时以互斥的方式使用模式可能存在问题。在这项工作中,我们提出在进化过程中,每对群落之间可以同时出现不同的模式,只是程度不同。设计了4个基于熵的指标,分别衡量群落分裂、缩小、合并和扩展的程度,可以全面定量地衡量DSNs的群落演化。这些指标具有量化群落演化所需的特性,包括单调性,以及对应于有意义情况的有界最大值和最小值。它们还可以结合起来描述更多的模式,如社区出现和灭绝。我们对现实世界的OSS项目进行研究,以评估所提议的指标的有效性。结果表明,本文提出的指标能够有效地捕捉到群落的进化特征,与现有的方法基本一致,准确率为94.1%。结果还表明,这些指标在预测OSS团队生产力方面是有用的,准确率为0.718。总之,所提出的方法是第一个量化不同模式的社区演变程度的方法,这在支持关于dsn和OSS开发的未来研究和应用方面是有希望的。
{"title":"Quantifying community evolution in developer social networks","authors":"Liang Wang, Ying Li, Jierui Zhang, Xianping Tao","doi":"10.1145/3540250.3549106","DOIUrl":"https://doi.org/10.1145/3540250.3549106","url":null,"abstract":"Understanding the evolution of communities in developer social networks (DSNs) around open source software (OSS) projects can provide valuable insights about the socio-technical process of OSS development. Existing studies show the evolutionary behaviors of social communities can effectively be described using patterns including split, shrink, merge, expand, emerge, and extinct. However, existing pattern-based approaches are limited in supporting quantitative analysis, and are potentially problematic for using the patterns in a mutually exclusive manner when describing community evolution. In this work, we propose that different patterns can occur simultaneously between every pair of communities during the evolution, just in different degrees. Four entropy-based indices are devised to measure the degree of community split, shrink, merge, and expand, respectively, which can provide a comprehensive and quantitative measure of community evolution in DSNs. The indices have properties desirable to quantify community evolution including monotonicity, and bounded maximum and minimum values that correspond to meaningful cases. They can also be combined to describe more patterns such as community emerge and extinct. We conduct studies with real-world OSS projects to evaluate the validity of the proposed indices. The results suggest the proposed indices can effectively capture community evolution, and are consistent with existing approaches in detecting evolution patterns in DSNs with an accuracy of 94.1%. The results also show that the indices are useful in predicting OSS team productivity with an accuracy of 0.718. In summary, the proposed approach is among the first to quantify the degree of community evolution with respect to different patterns, which is promising in supporting future research and applications about DSNs and OSS development.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"13 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79656765","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
Demystifying “removed reviews” in iOS app store 破解iOS应用商店中的“删除评论
Pub Date : 2022-11-07 DOI: 10.1145/3540250.3558966
Liu Wang, Haoyu Wang, Xiapu Luo, Tao Zhang, Shangguang Wang, Xuanzhe Liu
The app markets enable users to submit feedback for downloaded apps in the form of star ratings and text reviews, which are meant to be helpful and trustworthy for decision making to both developers and other users. App markets have released strict guidelines/policies for user review submissions. However, there has been growing evidence showing the untrustworthy and poor-quality of app reviews, making the app store review environment a shambles. Therefore, review removal is a common practice, and market maintainers have to remove undesired reviews from the market periodically in a reactive manner. Although some reports and news outlets have mentioned removed reviews, our research community still lacks the comprehensive understanding of the landscape of this kind of reviews. To fill the void, in this paper, we present a large-scale and longitudinal study of removed reviews in iOS App Store. We first collaborate with our industry partner to collect over 30 million removed reviews for 33,665 popular apps over the course of a full year in 2020. This comprehensive dataset enables us to characterize the overall landscape of removed reviews. We next investigate the practical reasons leading to the removal of policy-violating reviews, and summarize several interesting reasons, including fake reviews, offensive reviews, etc. More importantly, most of these mis-behaviors can be reflected on reviews’ basic information including the posters, narrative content, and posting time. It motivates us to design an automated approach to flag the policy-violation reviews, and our experiment result on the labelled benchmark can achieve a good performance (F1=97%). We further make an attempt to apply our approach to the large-scale industry setting, and the result suggests the promising industry usage scenario of our approach. Our approach can act as a gatekeeper to pinpoint policy-violation reviews beforehand, which will be quite effective in improving the maintenance process of app reviews in the industrial setting.
应用市场允许用户以星级和文字评论的形式提交下载应用的反馈,这对开发者和其他用户的决策都是有帮助和值得信赖的。应用市场针对用户评论发布了严格的指导方针/政策。然而,越来越多的证据表明应用评论不可信且质量低劣,这使得应用商店的评论环境变得一团糟。因此,删除评论是一种常见的做法,市场维护者必须以一种被动的方式定期地从市场中删除不需要的评论。虽然有一些报道和新闻媒体提到了删除评论,但我们的研究界仍然缺乏对这类评论的全面了解。为了填补这一空白,我们在本文中对iOS App Store中被删除的评论进行了大规模的纵向研究。我们首先与我们的行业合作伙伴合作,在2020年的一整年里,为33,665个流行应用收集了超过3000万条被删除的评论。这个全面的数据集使我们能够描述被删除评论的整体情况。接下来,我们调查了导致删除违反政策评论的实际原因,并总结了几个有趣的原因,包括虚假评论、冒犯性评论等。更重要的是,这些错误行为大多可以反映在评论的基本信息上,包括海报、叙述内容和发布时间。这促使我们设计一种自动化的方法来标记策略违规审查,我们在标记基准上的实验结果可以达到很好的性能(F1=97%)。我们进一步尝试将我们的方法应用到大型工业环境中,结果表明我们的方法具有良好的工业应用前景。我们的方法可以起到看门人的作用,提前找出违反政策的评论,这将非常有效地改善工业环境中应用评论的维护过程。
{"title":"Demystifying “removed reviews” in iOS app store","authors":"Liu Wang, Haoyu Wang, Xiapu Luo, Tao Zhang, Shangguang Wang, Xuanzhe Liu","doi":"10.1145/3540250.3558966","DOIUrl":"https://doi.org/10.1145/3540250.3558966","url":null,"abstract":"The app markets enable users to submit feedback for downloaded apps in the form of star ratings and text reviews, which are meant to be helpful and trustworthy for decision making to both developers and other users. App markets have released strict guidelines/policies for user review submissions. However, there has been growing evidence showing the untrustworthy and poor-quality of app reviews, making the app store review environment a shambles. Therefore, review removal is a common practice, and market maintainers have to remove undesired reviews from the market periodically in a reactive manner. Although some reports and news outlets have mentioned removed reviews, our research community still lacks the comprehensive understanding of the landscape of this kind of reviews. To fill the void, in this paper, we present a large-scale and longitudinal study of removed reviews in iOS App Store. We first collaborate with our industry partner to collect over 30 million removed reviews for 33,665 popular apps over the course of a full year in 2020. This comprehensive dataset enables us to characterize the overall landscape of removed reviews. We next investigate the practical reasons leading to the removal of policy-violating reviews, and summarize several interesting reasons, including fake reviews, offensive reviews, etc. More importantly, most of these mis-behaviors can be reflected on reviews’ basic information including the posters, narrative content, and posting time. It motivates us to design an automated approach to flag the policy-violation reviews, and our experiment result on the labelled benchmark can achieve a good performance (F1=97%). We further make an attempt to apply our approach to the large-scale industry setting, and the result suggests the promising industry usage scenario of our approach. Our approach can act as a gatekeeper to pinpoint policy-violation reviews beforehand, which will be quite effective in improving the maintenance process of app reviews in the industrial setting.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"219 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79800497","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
The best of both worlds: integrating semantic features with expert features for defect prediction and localization 两全其美:将语义特征与专家特征相结合,用于缺陷预测和定位
Pub Date : 2022-11-07 DOI: 10.1145/3540250.3549165
Chao Ni, Wei Wang, Kaiwen Yang, Xin Xia, Kui Liu, David Lo
To improve software quality, just-in-time defect prediction (JIT-DP) (identifying defect-inducing commits) and just-in-time defect localization (JIT-DL) (identifying defect-inducing code lines in commits) have been widely studied by learning semantic features or expert features respectively, and indeed achieved promising performance. Semantic features and expert features describe code change commits from different aspects, however, the best of the two features have not been fully explored together to boost the just-in-time defect prediction and localization in the literature yet. Additional, JIT-DP identifies defects at the coarse commit level, while as the consequent task of JIT-DP, JIT-DL cannot achieve the accurate localization of defect-inducing code lines in a commit without JIT-DP. We hypothesize that the two JIT tasks can be combined together to boost the accurate prediction and localization of defect-inducing commits by integrating semantic features with expert features. Therefore, we propose to build a unified model, JIT-Fine, for the just-in-time defect prediction and localization by leveraging the best of semantic features and expert features. To assess the feasibility of JIT-Fine, we first build a large-scale line-level manually labeled dataset, JIT-Defects4J. Then, we make a comprehensive comparison with six state-of-the-art baselines under various settings using ten performance measures grouped into two types: effort-agnostic and effort-aware. The experimental results indicate that JIT-Fine can outperform all state-of-the-art baselines on both JIT-DP and JITDL tasks in terms of ten performance measures with a substantial improvement (i.e., 10%-629% in terms of effort-agnostic measures on JIT-DP, 5%-54% in terms of effort-aware measures on JIT-DP, and 4%-117% in terms of effort-aware measures on JIT-DL).
为了提高软件质量,及时缺陷预测(JIT-DP)(识别导致缺陷的提交)和及时缺陷定位(JIT-DL)(识别提交中导致缺陷的代码行)分别通过学习语义特征或专家特征得到了广泛的研究,并且确实取得了令人满意的性能。语义特征和专家特征从不同的方面描述了代码变更提交,然而,在文献中,这两种特征的优点尚未被充分探讨,以促进及时缺陷预测和定位。另外,JIT-DP在粗提交级别识别缺陷,而作为JIT-DP的后续任务,JIT-DL不能在没有JIT-DP的提交中实现导致缺陷的代码行的精确定位。我们假设这两个JIT任务可以结合在一起,通过集成语义特征和专家特征来提高对缺陷提交的准确预测和定位。因此,我们建议建立一个统一的JIT-Fine模型,利用最好的语义特征和专家特征来进行实时缺陷预测和定位。为了评估JIT-Fine的可行性,我们首先构建了一个大规模的行级手动标记数据集jit -缺陷4j。然后,我们使用分为两种类型的十项绩效指标,在不同设置下与六个最先进的基线进行了全面比较:努力不可知论和努力意识。实验结果表明,JIT-Fine在JIT-DP和JITDL任务的10项性能指标上都优于所有最先进的基线,并有实质性的改进(即,在JIT-DP的努力不可知指标上,在JIT-DP的努力感知指标上,在JIT-DP的努力感知指标上,在10%-629%上,在JIT-DP的努力感知指标上,在5%-54%上,在JIT-DL的努力感知指标上,在4%-117%上)。
{"title":"The best of both worlds: integrating semantic features with expert features for defect prediction and localization","authors":"Chao Ni, Wei Wang, Kaiwen Yang, Xin Xia, Kui Liu, David Lo","doi":"10.1145/3540250.3549165","DOIUrl":"https://doi.org/10.1145/3540250.3549165","url":null,"abstract":"To improve software quality, just-in-time defect prediction (JIT-DP) (identifying defect-inducing commits) and just-in-time defect localization (JIT-DL) (identifying defect-inducing code lines in commits) have been widely studied by learning semantic features or expert features respectively, and indeed achieved promising performance. Semantic features and expert features describe code change commits from different aspects, however, the best of the two features have not been fully explored together to boost the just-in-time defect prediction and localization in the literature yet. Additional, JIT-DP identifies defects at the coarse commit level, while as the consequent task of JIT-DP, JIT-DL cannot achieve the accurate localization of defect-inducing code lines in a commit without JIT-DP. We hypothesize that the two JIT tasks can be combined together to boost the accurate prediction and localization of defect-inducing commits by integrating semantic features with expert features. Therefore, we propose to build a unified model, JIT-Fine, for the just-in-time defect prediction and localization by leveraging the best of semantic features and expert features. To assess the feasibility of JIT-Fine, we first build a large-scale line-level manually labeled dataset, JIT-Defects4J. Then, we make a comprehensive comparison with six state-of-the-art baselines under various settings using ten performance measures grouped into two types: effort-agnostic and effort-aware. The experimental results indicate that JIT-Fine can outperform all state-of-the-art baselines on both JIT-DP and JITDL tasks in terms of ten performance measures with a substantial improvement (i.e., 10%-629% in terms of effort-agnostic measures on JIT-DP, 5%-54% in terms of effort-aware measures on JIT-DP, and 4%-117% in terms of effort-aware measures on JIT-DL).","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"62 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84489014","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
Automated generation of test oracles for RESTful APIs 为RESTful api自动生成测试oracle
Pub Date : 2022-11-07 DOI: 10.1145/3540250.3559080
J. Alonso
Test case generation tools for RESTful APIs have proliferated in recent years. However, despite their promising results, they all share the same limitation: they can only detect crashes (i.e., server errors) and disconformities with the API specification. In this paper, we present a technique for the automated generation of test oracles for RESTful APIs through the detection of invariants. In practice, our approach aims to learn the expected properties of the output by analysing previous API requests and their corresponding responses. For this, we extended the popular tool Daikon for dynamic detection of likely invariants. A preliminary evaluation conducted on a set of 8 operations from 6 industrial APIs reveals a total precision of 66.5% (reaching 100% in 2 operations). Moreover, our approach revealed 6 reproducible bugs in APIs with millions of users: Amadeus, GitHub and OMDb.
用于RESTful api的测试用例生成工具近年来激增。然而,尽管它们的结果很有希望,但它们都有相同的限制:它们只能检测崩溃(即服务器错误)和与API规范的不一致。在本文中,我们提出了一种通过检测不变量来自动生成RESTful api测试oracle的技术。在实践中,我们的方法旨在通过分析以前的API请求及其相应的响应来学习输出的预期属性。为此,我们扩展了流行的工具Daikon,用于动态检测可能的不变量。对6个工业api的8个操作进行了初步评估,总精度为66.5%(2个操作达到100%)。此外,我们的方法揭示了有数百万用户的api中的6个可重复的错误:Amadeus, GitHub和OMDb。
{"title":"Automated generation of test oracles for RESTful APIs","authors":"J. Alonso","doi":"10.1145/3540250.3559080","DOIUrl":"https://doi.org/10.1145/3540250.3559080","url":null,"abstract":"Test case generation tools for RESTful APIs have proliferated in recent years. However, despite their promising results, they all share the same limitation: they can only detect crashes (i.e., server errors) and disconformities with the API specification. In this paper, we present a technique for the automated generation of test oracles for RESTful APIs through the detection of invariants. In practice, our approach aims to learn the expected properties of the output by analysing previous API requests and their corresponding responses. For this, we extended the popular tool Daikon for dynamic detection of likely invariants. A preliminary evaluation conducted on a set of 8 operations from 6 industrial APIs reveals a total precision of 66.5% (reaching 100% in 2 operations). Moreover, our approach revealed 6 reproducible bugs in APIs with millions of users: Amadeus, GitHub and OMDb.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"9 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85287134","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
CLIFuzzer: mining grammars for command-line invocations CLIFuzzer:为命令行调用挖掘语法
Pub Date : 2022-11-07 DOI: 10.1145/3540250.3558918
Abhilash Gupta, Rahul Gopinath, A. Zeller
The behavior of command-line utilities can be very much influenced by passing command-line options and arguments—configuration settings that enable, disable, or otherwise influence parts of the code to be executed. Hence, systematic testing of command-line utilities requires testing them with diverse configurations of supported command-line options. We introduce CLIFuzzer, a tool that takes an executable program and, using dynamic analysis to track input processing, automatically extract a full set of its options, arguments, and argument types. This set forms a grammar that represents the valid sequences of valid options and arguments. Producing invocations from this grammar, we can fuzz the program with an endless list of random configurations, covering the related code. This leads to increased coverage and new bugs over purely mutation based fuzzers.
通过传递命令行选项和参数——启用、禁用或以其他方式影响要执行的部分代码的配置设置——可以对命令行实用程序的行为产生很大影响。因此,对命令行实用程序的系统测试需要使用支持的命令行选项的不同配置对它们进行测试。我们介绍CLIFuzzer,这是一种工具,它采用可执行程序,并使用动态分析来跟踪输入处理,自动提取其全套选项、参数和参数类型。该集合形成一个语法,表示有效选项和参数的有效序列。从这个语法生成调用,我们可以用一个无限的随机配置列表模糊程序,覆盖相关代码。这将导致覆盖率的增加和新bug的出现,而不是纯粹基于变异的fuzzers。
{"title":"CLIFuzzer: mining grammars for command-line invocations","authors":"Abhilash Gupta, Rahul Gopinath, A. Zeller","doi":"10.1145/3540250.3558918","DOIUrl":"https://doi.org/10.1145/3540250.3558918","url":null,"abstract":"The behavior of command-line utilities can be very much influenced by passing command-line options and arguments—configuration settings that enable, disable, or otherwise influence parts of the code to be executed. Hence, systematic testing of command-line utilities requires testing them with diverse configurations of supported command-line options. We introduce CLIFuzzer, a tool that takes an executable program and, using dynamic analysis to track input processing, automatically extract a full set of its options, arguments, and argument types. This set forms a grammar that represents the valid sequences of valid options and arguments. Producing invocations from this grammar, we can fuzz the program with an endless list of random configurations, covering the related code. This leads to increased coverage and new bugs over purely mutation based fuzzers.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"57 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83356646","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
Language-agnostic dynamic analysis of multilingual code: promises, pitfalls, and prospects 多语言代码的语言不可知动态分析:承诺、陷阱和前景
Pub Date : 2022-11-07 DOI: 10.1145/3540250.3560880
Haoran Yang, Wen Li
Analyzing multilingual code holistically is key to systematic quality assurance of real-world software which is mostly developed in multiple computer languages. Toward such analyses, state-of-the-art approaches propose an almost-fully language-agnostic methodology and apply it to dynamic dependence analysis/slicing of multilingual code, showing great promises. We investigated this methodology through a technical analysis followed by a replication study applying it to 10 real-world multilingual projects of diverse language combinations. Our results revealed critical practicality (i.e., having the levels of efficiency/scalability, precision, and extensibility to various language combinations for practical use) challenges to the methodology. Based on the results, we reflect on the underlying pitfalls of the language-agnostic design that leads to such challenges. Finally, looking forward to the prospects of dynamic analysis for multilingual code, we identify a new research direction towards better practicality and precision while not sacrificing extensibility much, as supported by preliminary results. The key takeaway is that pursuing fully language-agnostic analysis may be both impractical and unnecessary, and striving for a better balance between language independence and practicality may be more fruitful.
对多语言代码进行整体分析是实现多语言软件系统质量保证的关键。对于这种分析,最先进的方法提出了一种几乎完全与语言无关的方法,并将其应用于多语言代码的动态依赖分析/切片,显示出很大的希望。我们通过技术分析对这种方法进行了调查,随后进行了一项复制研究,将其应用于10个真实世界的不同语言组合的多语言项目。我们的结果揭示了该方法面临的关键实用性挑战(即,在实际使用中具有各种语言组合的效率/可伸缩性、精度和可扩展性)。基于这些结果,我们反思了导致这些挑战的语言不可知论设计的潜在陷阱。最后,展望多语言代码动态分析的前景,我们确定了一个新的研究方向,即在不牺牲太多可扩展性的情况下,提高实用性和精度。关键的结论是,追求完全与语言无关的分析可能既不现实也没有必要,而努力在语言独立性和实用性之间取得更好的平衡可能会更有成效。
{"title":"Language-agnostic dynamic analysis of multilingual code: promises, pitfalls, and prospects","authors":"Haoran Yang, Wen Li","doi":"10.1145/3540250.3560880","DOIUrl":"https://doi.org/10.1145/3540250.3560880","url":null,"abstract":"Analyzing multilingual code holistically is key to systematic quality assurance of real-world software which is mostly developed in multiple computer languages. Toward such analyses, state-of-the-art approaches propose an almost-fully language-agnostic methodology and apply it to dynamic dependence analysis/slicing of multilingual code, showing great promises. We investigated this methodology through a technical analysis followed by a replication study applying it to 10 real-world multilingual projects of diverse language combinations. Our results revealed critical practicality (i.e., having the levels of efficiency/scalability, precision, and extensibility to various language combinations for practical use) challenges to the methodology. Based on the results, we reflect on the underlying pitfalls of the language-agnostic design that leads to such challenges. Finally, looking forward to the prospects of dynamic analysis for multilingual code, we identify a new research direction towards better practicality and precision while not sacrificing extensibility much, as supported by preliminary results. The key takeaway is that pursuing fully language-agnostic analysis may be both impractical and unnecessary, and striving for a better balance between language independence and practicality may be more fruitful.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"38 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90733880","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}
引用次数: 7
Infrastructure as code for dynamic deployments 作为动态部署代码的基础设施
Pub Date : 2022-11-07 DOI: 10.1145/3540250.3558912
Daniel Sokolowski
Modern DevOps organizations require a high degree of automation to achieve software stability at frequent changes. Further, there is a need for flexible, timely reconfiguration of the infrastructure, e.g., to use pay-per-use infrastructure efficiently based on application load. Infrastructure as Code (IaC) is the DevOps tool to automate infrastructure. However, modern static IaC solutions only support infrastructures that are deployed and do not change afterward. To implement infrastructures that change dynamically over time, static IaC programs have to be (updated and) re-run, e.g., in a CI/CD pipeline, or configure an external orchestrator that implements the dynamic behavior, e.g., an autoscaler or Kubernetes operator. Both do not capture the dynamic behavior in the IaC program and prevent analyzing and testing the infrastructure configuration jointly with its dynamic behavior. To fill this gap, we envision dynamic IaC, which augments static IaC with the ability to define dynamic behavior within the IaC program. In contrast to static IaC programs, dynamic IaC programs run continuously. They re-evaluate program parts that depend on external signals when these change and automatically adjust the infrastructure accordingly. We implement DIaC as the first dynamic IaC solution and demonstrate it in two realistic use cases of broader relevance. With dynamic IaC, ensuring the program’s correctness is even harder than for static IaC because programs may define many target configurations in contrast to only a few. However, for this reason, it is also more critical. To solve this issue, we propose automated, specialized property-based testing for IaC programs and implement it in ProTI.
现代DevOps组织需要高度的自动化来实现频繁变更时的软件稳定性。此外,还需要对基础设施进行灵活、及时的重新配置,例如,根据应用程序负载高效地使用按使用付费的基础设施。基础设施即代码(IaC)是实现基础设施自动化的DevOps工具。然而,现代静态IaC解决方案仅支持已部署且之后不会更改的基础设施。为了实现随时间动态变化的基础设施,静态IaC程序必须(更新并)重新运行,例如,在CI/CD管道中,或者配置一个实现动态行为的外部编排器,例如,自动缩放器或Kubernetes操作器。两者都不能捕获IaC程序中的动态行为,并阻止分析和测试基础结构配置及其动态行为。为了填补这一空白,我们设想了动态IaC,它通过在IaC程序中定义动态行为的能力来增强静态IaC。与静态IaC程序相比,动态IaC程序可以连续运行。它们重新评估依赖于外部信号的程序部分,并相应地自动调整基础结构。我们将DIaC作为第一个动态IaC解决方案来实现,并在两个具有更广泛相关性的实际用例中进行了演示。使用动态IaC,确保程序的正确性比使用静态IaC更难,因为程序可能定义许多目标配置,而不是只有几个。然而,正因为如此,它也更为关键。为了解决这个问题,我们提出了针对IaC程序的自动化、专门的基于属性的测试,并在ProTI中实现。
{"title":"Infrastructure as code for dynamic deployments","authors":"Daniel Sokolowski","doi":"10.1145/3540250.3558912","DOIUrl":"https://doi.org/10.1145/3540250.3558912","url":null,"abstract":"Modern DevOps organizations require a high degree of automation to achieve software stability at frequent changes. Further, there is a need for flexible, timely reconfiguration of the infrastructure, e.g., to use pay-per-use infrastructure efficiently based on application load. Infrastructure as Code (IaC) is the DevOps tool to automate infrastructure. However, modern static IaC solutions only support infrastructures that are deployed and do not change afterward. To implement infrastructures that change dynamically over time, static IaC programs have to be (updated and) re-run, e.g., in a CI/CD pipeline, or configure an external orchestrator that implements the dynamic behavior, e.g., an autoscaler or Kubernetes operator. Both do not capture the dynamic behavior in the IaC program and prevent analyzing and testing the infrastructure configuration jointly with its dynamic behavior. To fill this gap, we envision dynamic IaC, which augments static IaC with the ability to define dynamic behavior within the IaC program. In contrast to static IaC programs, dynamic IaC programs run continuously. They re-evaluate program parts that depend on external signals when these change and automatically adjust the infrastructure accordingly. We implement DIaC as the first dynamic IaC solution and demonstrate it in two realistic use cases of broader relevance. With dynamic IaC, ensuring the program’s correctness is even harder than for static IaC because programs may define many target configurations in contrast to only a few. However, for this reason, it is also more critical. To solve this issue, we propose automated, specialized property-based testing for IaC programs and implement it in ProTI.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"69 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89415984","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
期刊
软件产业与工程
全部 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