首页 > 最新文献

IEEE Transactions on Software Engineering最新文献

英文 中文
Mitigating the Uncertainty and Imprecision of Log-Based Code Coverage Without Requiring Additional Logging Statements 减轻基于日志的代码覆盖的不确定性和不精确性,而无需额外的日志声明
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-29 DOI: 10.1109/TSE.2024.3435067
Xiaoyan Xu;Filipe R. Cogo;Shane McIntosh
Understanding code coverage is an important precursor to software maintenance activities (e.g., better testing). Although modern code coverage tools provide key insights, they typically rely on code instrumentation, resulting in significant performance overhead. An alternative approach to code instrumentation is to process an application's source code and the associated log traces in tandem. This so-called “log-based code coverage” approach does not impose the same performance overhead as code instrumentation. Chen et al. proposed LogCoCo — a tool that implements log-based code coverage for Java. While LogCoCo breaks important new ground, it has fundamental limitations, namely: uncertainty due to the lack of logging statements in conditional branches, and imprecision caused by dependency injection. In this study, we propose Log2Cov, a tool that generates log-based code coverage for programs written in Python and addresses uncertainty and imprecision issues. We evaluate Log2Cov on three large and active open-source systems. More specifically, we compare the performance of Log2Cov to that of Coverage.py, an instrumentation-based coverage tool for Python. Our results indicate that 1) Log2Cov achieves high precision without introducing runtime overhead; and 2) uncertainty and imprecision can be reduced by up to 11% by statically analyzing the program's source code and execution logs, without requiring additional logging instrumentation from developers. While our enhancements make substantial improvements, we find that future work is needed to handle conditional statements and exception handling blocks to achieve parity with instrumentation-based approaches. We conclude the paper by drawing attention to these promising directions for future work.
了解代码覆盖率是软件维护活动(如更好的测试)的重要前提。尽管现代代码覆盖率工具能提供关键的洞察力,但它们通常依赖于代码工具,从而造成巨大的性能开销。代码检测的另一种方法是同时处理应用程序的源代码和相关日志跟踪。这种所谓的 "基于日志的代码覆盖 "方法不会造成与代码工具相同的性能开销。Chen 等人提出了 LogCoCo--一种为 Java 实现基于日志的代码覆盖的工具。LogCoCo 虽然开辟了重要的新领域,但也存在一些基本限制,即:条件分支中缺乏日志语句导致的不确定性,以及依赖注入导致的不精确性。在本研究中,我们提出了 Log2Cov,这是一种为 Python 编写的程序生成基于日志的代码覆盖率的工具,可解决不确定性和不精确问题。我们在三个活跃的大型开源系统上对 Log2Cov 进行了评估。更具体地说,我们比较了 Log2Cov 和 Coverage.py 的性能,Coverage.py 是一款基于仪器的 Python 代码覆盖工具。我们的结果表明:1)Log2Cov 在不引入运行时开销的情况下实现了高精度;2)通过静态分析程序的源代码和执行日志,不确定性和不精确性最多可减少 11%,而无需开发人员进行额外的日志记录。虽然我们的改进取得了实质性的进步,但我们发现,未来还需要努力处理条件语句和异常处理块,以实现与基于工具的方法的同等效果。在本文的最后,我们提请大家注意这些前景广阔的未来工作方向。
{"title":"Mitigating the Uncertainty and Imprecision of Log-Based Code Coverage Without Requiring Additional Logging Statements","authors":"Xiaoyan Xu;Filipe R. Cogo;Shane McIntosh","doi":"10.1109/TSE.2024.3435067","DOIUrl":"10.1109/TSE.2024.3435067","url":null,"abstract":"Understanding code coverage is an important precursor to software maintenance activities (e.g., better testing). Although modern code coverage tools provide key insights, they typically rely on code instrumentation, resulting in significant performance overhead. An alternative approach to code instrumentation is to process an application's source code and the associated log traces in tandem. This so-called “log-based code coverage” approach does not impose the same performance overhead as code instrumentation. Chen et al. proposed \u0000<sc>LogCoCo</small>\u0000 — a tool that implements log-based code coverage for \u0000<sc>Java</small>\u0000. While \u0000<sc>LogCoCo</small>\u0000 breaks important new ground, it has fundamental limitations, namely: uncertainty due to the lack of logging statements in conditional branches, and imprecision caused by dependency injection. In this study, we propose \u0000<sc>Log2Cov</small>\u0000, a tool that generates log-based code coverage for programs written in \u0000<sc>Python</small>\u0000 and addresses uncertainty and imprecision issues. We evaluate \u0000<sc>Log2Cov</small>\u0000 on three large and active open-source systems. More specifically, we compare the performance of \u0000<sc>Log2Cov</small>\u0000 to that of \u0000<sc>Coverage.py</small>\u0000, an instrumentation-based coverage tool for \u0000<sc>Python</small>\u0000. Our results indicate that 1) \u0000<sc>Log2Cov</small>\u0000 achieves high precision without introducing runtime overhead; and 2) uncertainty and imprecision can be reduced by up to 11% by statically analyzing the program's source code and execution logs, without requiring additional logging instrumentation from developers. While our enhancements make substantial improvements, we find that future work is needed to handle conditional statements and exception handling blocks to achieve parity with instrumentation-based approaches. We conclude the paper by drawing attention to these promising directions for future work.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2350-2362"},"PeriodicalIF":6.5,"publicationDate":"2024-07-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141794547","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Assessing Evaluation Metrics for Neural Test Oracle Generation 评估神经测试 Oracle 生成的评价指标
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-25 DOI: 10.1109/TSE.2024.3433463
Jiho Shin;Hadi Hemmati;Moshi Wei;Song Wang
Recently, deep learning models have shown promising results in test oracle generation. Neural Oracle Generation (NOG) models are commonly evaluated using static (automatic) metrics which are mainly based on textual similarity of the output, e.g. BLEU, ROUGE-L, METEOR, and Accuracy. However, these textual similarity metrics may not reflect the testing effectiveness of the generated oracle within a test suite, which is often measured by dynamic (execution-based) test adequacy metrics such as code coverage and mutation score. In this work, we revisit existing oracle generation studies plus gpt-3.5 to empirically investigate the current standing of their performance in textual similarity and test adequacy metrics. Specifically, we train and run four state-of-the-art test oracle generation models on seven textual similarity and two test adequacy metrics for our analysis. We apply two different correlation analyses between these two different sets of metrics. Surprisingly, we found no significant correlation between the textual similarity metrics and test adequacy metrics. For instance, gpt-3.5 on the jackrabbit-oak project had the highest performance on all seven textual similarity metrics among the studied NOGs. However, it had the lowest test adequacy metrics compared to all the studied NOGs. We further conducted a qualitative analysis to explore the reasons behind our observations. We found that oracles with high textual similarity metrics but low test adequacy metrics tend to have complex or multiple chained method invocations within the oracle's parameters, making them hard for the model to generate completely, affecting the test adequacy metrics. On the other hand, oracles with low textual similarity metrics but high test adequacy metrics tend to have to call different assertion types or a different method that functions similarly to the ones in the ground truth. Overall, this work complements prior studies on test oracle generation with an extensive performance evaluation on textual similarity and test adequacy metrics and provides guidelines for better assessment of deep learning applications in software test generation in the future.
最近,深度学习模型在测试甲骨文生成方面取得了可喜的成果。神经甲骨文生成(NOG)模型通常使用静态(自动)指标进行评估,这些指标主要基于输出的文本相似性,如 BLEU、ROUGE-L、METEOR 和 Accuracy。然而,这些文本相似度指标可能无法反映测试套件中生成的甲骨文的测试效果,而测试效果通常是通过动态(基于执行)测试充分性指标(如代码覆盖率和突变分数)来衡量的。在这项工作中,我们重新审视了现有的甲骨文生成研究和 gpt-3.5,以实证研究它们在文本相似性和测试充分性指标方面的性能现状。具体来说,我们在七个文本相似性指标和两个测试充分性指标上训练并运行了四个最先进的测试甲骨文生成模型,以进行分析。我们对这两组不同的指标进行了两种不同的相关性分析。令人惊讶的是,我们发现文本相似度指标和测试充分性指标之间没有明显的相关性。例如,在所研究的 NOG 中,jackrabbit-oak 项目上的 gpt-3.5 在所有七个文本相似度指标上的表现都是最高的。但是,与所有研究的 NOG 相比,它的测试充分性指标最低。我们进一步进行了定性分析,以探索观察结果背后的原因。我们发现,文本相似度指标高但测试充分性指标低的神谕往往在神谕参数中具有复杂或多重链式方法调用,这使得模型难以完全生成,从而影响了测试充分性指标。另一方面,文本相似度指标较低但测试充分性指标较高的神谕往往需要调用不同的断言类型,或调用与基本事实中的断言类型功能类似的不同方法。总之,这项工作通过对文本相似性和测试充分性指标进行广泛的性能评估,对之前关于测试神谕生成的研究进行了补充,并为今后更好地评估深度学习在软件测试生成中的应用提供了指导。
{"title":"Assessing Evaluation Metrics for Neural Test Oracle Generation","authors":"Jiho Shin;Hadi Hemmati;Moshi Wei;Song Wang","doi":"10.1109/TSE.2024.3433463","DOIUrl":"10.1109/TSE.2024.3433463","url":null,"abstract":"Recently, deep learning models have shown promising results in test oracle generation. Neural Oracle Generation (NOG) models are commonly evaluated using static (automatic) metrics which are mainly based on textual similarity of the output, e.g. BLEU, ROUGE-L, METEOR, and Accuracy. However, these textual similarity metrics may not reflect the testing effectiveness of the generated oracle within a test suite, which is often measured by dynamic (execution-based) test adequacy metrics such as code coverage and mutation score. In this work, we revisit existing oracle generation studies plus \u0000<italic>gpt-3.5</i>\u0000 to empirically investigate the current standing of their performance in textual similarity and test adequacy metrics. Specifically, we train and run four state-of-the-art test oracle generation models on seven textual similarity and two test adequacy metrics for our analysis. We apply two different correlation analyses between these two different sets of metrics. Surprisingly, we found no significant correlation between the textual similarity metrics and test adequacy metrics. For instance, \u0000<italic>gpt-3.5</i>\u0000 on the \u0000<italic>jackrabbit-oak</i>\u0000 project had the highest performance on all seven textual similarity metrics among the studied NOGs. However, it had the lowest test adequacy metrics compared to all the studied NOGs. We further conducted a qualitative analysis to explore the reasons behind our observations. We found that oracles with high textual similarity metrics but low test adequacy metrics tend to have complex or multiple chained method invocations within the oracle's parameters, making them hard for the model to generate completely, affecting the test adequacy metrics. On the other hand, oracles with low textual similarity metrics but high test adequacy metrics tend to have to call different assertion types or a different method that functions similarly to the ones in the ground truth. Overall, this work complements prior studies on test oracle generation with an extensive performance evaluation on textual similarity and test adequacy metrics and provides guidelines for better assessment of deep learning applications in software test generation in the future.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2337-2349"},"PeriodicalIF":6.5,"publicationDate":"2024-07-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141764147","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Supersonic: Learning to Generate Source Code Optimizations in C/C++ 超级:学习用 C/C++ 生成优化源代码
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-22 DOI: 10.1109/TSE.2024.3423769
Zimin Chen;Sen Fang;Martin Monperrus
Software optimization refines programs for resource efficiency while preserving functionality. Traditionally, it is a process done by developers and compilers. This paper introduces a third option, automated optimization at the source code level. We present Supersonic, a neural approach targeting minor source code modifications for optimization. Using a seq2seq model, Supersonic is trained on C/C++ program pairs ($x_{t}$, $x_{t+1}$), where $x_{t+1}$ is an optimized version of $x_{t}$, and outputs a diff. Supersonic's performance is benchmarked against OpenAI's GPT-3.5-Turbo and GPT-4 on competitive programming tasks. The experiments show that Supersonic not only outperforms both models on the code optimization task but also minimizes the extent of the change with a model more than 600x smaller than GPT-3.5-Turbo and 3700x smaller than GPT-4.
软件优化是对程序进行改进,在保留功能的同时提高资源效率。传统上,这是一个由开发人员和编译器完成的过程。本文介绍了第三种选择,即源代码级的自动优化。我们提出的 Supersonic 是一种神经方法,针对源代码的细微修改进行优化。Supersonic 使用 seq2seq 模型,对 C/C++ 程序对($x_{t}$, $x_{t+1}$)进行训练,其中$x_{t+1}$ 是$x_{t}$ 的优化版本,并输出差异。在竞争性编程任务上,Supersonic 的性能以 OpenAI 的 GPT-3.5-Turbo 和 GPT-4 为基准。实验结果表明,Supersonic 不仅在代码优化任务中的表现优于这两种模型,而且还能最大限度地减少变化程度,其模型比 GPT-3.5-Turbo 小 600 多倍,比 GPT-4 小 3700 多倍。
{"title":"Supersonic: Learning to Generate Source Code Optimizations in C/C++","authors":"Zimin Chen;Sen Fang;Martin Monperrus","doi":"10.1109/TSE.2024.3423769","DOIUrl":"10.1109/TSE.2024.3423769","url":null,"abstract":"Software optimization refines programs for resource efficiency while preserving functionality. Traditionally, it is a process done by developers and compilers. This paper introduces a third option, automated optimization at the source code level. We present \u0000<small>Supersonic</small>\u0000, a neural approach targeting minor source code modifications for optimization. Using a seq2seq model, \u0000<small>Supersonic</small>\u0000 is trained on C/C++ program pairs (\u0000<inline-formula><tex-math>$x_{t}$</tex-math></inline-formula>\u0000, \u0000<inline-formula><tex-math>$x_{t+1}$</tex-math></inline-formula>\u0000), where \u0000<inline-formula><tex-math>$x_{t+1}$</tex-math></inline-formula>\u0000 is an optimized version of \u0000<inline-formula><tex-math>$x_{t}$</tex-math></inline-formula>\u0000, and outputs a diff. \u0000<small>Supersonic</small>\u0000's performance is benchmarked against OpenAI's GPT-3.5-Turbo and GPT-4 on competitive programming tasks. The experiments show that \u0000<small>Supersonic</small>\u0000 not only outperforms both models on the code optimization task but also minimizes the extent of the change with a model more than 600x smaller than GPT-3.5-Turbo and 3700x smaller than GPT-4.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 11","pages":"2849-2864"},"PeriodicalIF":6.5,"publicationDate":"2024-07-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10606318","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141754778","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Enforcing Correctness of Collaborative Business Processes Using Plans 使用计划确保协作业务流程的正确性
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-22 DOI: 10.1109/TSE.2024.3431585
Qi Mo;Jianeng Wang;Zhongwen Xie;Cong Liu;Fei Dai
Generally, a collaborative business process is a distributed process, in which a set of parallel business processes are involved. These business processes have complementary competencies and knowledge, and cooperate with each other to achieve their common business goals. To ensure the correctness of collaborative business processes, we propose a novel plan-based correctness enforcement approach in this article, which is privacy-preserving, available and efficient. This approach first requires participating organizations to define their business processes. Then, each participating organization employs a set of reduction rules to build the public process of its business process, in which all internal private activities and the flows formed by them are removed. Next, a set of correct plans is generated from these public processes. A plan is essentially a process fragment without alternative routings. From the external perspective (i.e., ignoring all internal private activities and the flows formed by them), a parallel execution of the business processes corresponding to these public processes follows only one such plan. Lastly, each participating organization independently refactors its business process using these resulting correct plans. Using the message places (corresponding to the actual communication interfaces), these refactored processes are composed in parallel. Thus, a correct and loosely coupled enforced process is constructed. This approach is evaluated on actual collaborative business processes, and the experimental results show that compared with state-of-the-art enforcement proposals, it can achieve correctness enforcement while protecting the business privacy of organizations and is available. Meanwhile, it is also more efficient and scalable, even a collaborative business process with tens of millions of states can be enforced within a few seconds.
一般来说,协同业务流程是一种分布式流程,其中涉及一组并行的业务流程。这些业务流程具有互补的能力和知识,它们相互合作以实现共同的业务目标。为了确保协同业务流程的正确性,我们在本文中提出了一种新颖的基于计划的正确性执行方法,它具有保护隐私、可用性和高效性的特点。这种方法首先要求参与组织定义其业务流程。然后,每个参与组织采用一组还原规则来构建其业务流程的公共流程,其中所有内部私人活动及其形成的流程都被删除。然后,从这些公共流程中生成一组正确的计划。计划本质上是一个没有替代路径的流程片段。从外部角度看(即忽略所有内部私人活动及其形成的流程),与这些公共流程相对应的业务流程的并行执行只遵循一个这样的计划。最后,每个参与组织利用这些正确的计划独立地重构其业务流程。这些重构后的流程使用消息位置(与实际通信接口相对应)并行组成。这样,一个正确且松散耦合的强制流程就构建完成了。实验结果表明,与最先进的强制执行建议相比,这种方法既能实现正确性强制执行,又能保护组织的业务隐私,而且是可用的。同时,它还具有更高的效率和可扩展性,即使是具有数千万个状态的协作业务流程,也能在几秒钟内完成强制执行。
{"title":"Enforcing Correctness of Collaborative Business Processes Using Plans","authors":"Qi Mo;Jianeng Wang;Zhongwen Xie;Cong Liu;Fei Dai","doi":"10.1109/TSE.2024.3431585","DOIUrl":"10.1109/TSE.2024.3431585","url":null,"abstract":"Generally, a collaborative business process is a distributed process, in which a set of parallel business processes are involved. These business processes have complementary competencies and knowledge, and cooperate with each other to achieve their common business goals. To ensure the correctness of collaborative business processes, we propose a novel plan-based correctness enforcement approach in this article, which is privacy-preserving, available and efficient. This approach first requires participating organizations to define their business processes. Then, each participating organization employs a set of reduction rules to build the public process of its business process, in which all internal private activities and the flows formed by them are removed. Next, a set of correct plans is generated from these public processes. A plan is essentially a process fragment without alternative routings. From the external perspective (i.e., ignoring all internal private activities and the flows formed by them), a parallel execution of the business processes corresponding to these public processes follows only one such plan. Lastly, each participating organization independently refactors its business process using these resulting correct plans. Using the message places (corresponding to the actual communication interfaces), these refactored processes are composed in parallel. Thus, a correct and loosely coupled enforced process is constructed. This approach is evaluated on actual collaborative business processes, and the experimental results show that compared with state-of-the-art enforcement proposals, it can achieve correctness enforcement while protecting the business privacy of organizations and is available. Meanwhile, it is also more efficient and scalable, even a collaborative business process with tens of millions of states can be enforced within a few seconds.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2313-2336"},"PeriodicalIF":6.5,"publicationDate":"2024-07-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141754780","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
LLM-Based Test-Driven Interactive Code Generation: User Study and Empirical Evaluation 基于 LLM 的测试驱动型交互代码生成:用户研究与经验评估
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-22 DOI: 10.1109/TSE.2024.3428972
Sarah Fakhoury;Aaditya Naik;Georgios Sakkas;Saikat Chakraborty;Shuvendu K. Lahiri
Large language models (LLMs) have shown great potential in automating significant aspects of coding by producing natural code from informal natural language (NL) intent. However, given NL is informal, it does not lend easily to checking that the generated code correctly satisfies the user intent. In this paper, we propose a novel interactive workflow TiCoder for guided intent clarification (i.e., partial formalization) through tests to support the generation of more accurate code suggestions. Through a mixed methods user study with 15 programmers, we present an empirical evaluation of the effectiveness of the workflow to improve code generation accuracy. We find that participants using the proposed workflow are significantly more likely to correctly evaluate AI generated code, and report significantly less task-induced cognitive load. Furthermore, we test the potential of the workflow at scale with four different state-of-the-art LLMs on two python datasets, using an idealized proxy for a user feedback. We observe an average absolute improvement of 45.97% in the pass@1 code generation accuracy for both datasets and across all LLMs within 5 user interactions, in addition to the automatic generation of accompanying unit tests.
大语言模型(LLM)通过根据非正式的自然语言(NL)意图生成自然代码,在编码自动化的重要方面显示出巨大的潜力。然而,由于 NL 是非正式的,因此不容易检查生成的代码是否正确地满足了用户的意图。在本文中,我们提出了一种新颖的交互式工作流程 TiCoder,通过测试引导用户澄清意图(即部分形式化),从而支持生成更准确的代码建议。通过对 15 名程序员进行的混合方法用户研究,我们对工作流程在提高代码生成准确性方面的有效性进行了实证评估。我们发现,使用所建议的工作流程的参与者更有可能正确评估人工智能生成的代码,并显著减少了任务引起的认知负荷。此外,我们还使用理想化的用户反馈代理,在两个 Python 数据集上使用四种不同的先进 LLM 测试了工作流程的潜力。我们观察到,在 5 次用户交互中,两个数据集和所有 LLM 的 pass@1 代码生成准确率平均绝对提高了 45.97%,此外还自动生成了相应的单元测试。
{"title":"LLM-Based Test-Driven Interactive Code Generation: User Study and Empirical Evaluation","authors":"Sarah Fakhoury;Aaditya Naik;Georgios Sakkas;Saikat Chakraborty;Shuvendu K. Lahiri","doi":"10.1109/TSE.2024.3428972","DOIUrl":"10.1109/TSE.2024.3428972","url":null,"abstract":"Large language models (LLMs) have shown great potential in automating significant aspects of coding by producing natural code from informal natural language (NL) intent. However, given NL is informal, it does not lend easily to checking that the generated code correctly satisfies the user intent. In this paper, we propose a novel interactive workflow \u0000<sc>TiCoder</small>\u0000 for guided intent clarification (i.e., partial formalization) through tests to support the generation of more accurate code suggestions. Through a mixed methods user study with 15 programmers, we present an empirical evaluation of the effectiveness of the workflow to improve code generation accuracy. We find that participants using the proposed workflow are significantly more likely to correctly evaluate AI generated code, and report significantly less task-induced cognitive load. Furthermore, we test the potential of the workflow at scale with four different state-of-the-art LLMs on two python datasets, using an idealized proxy for a user feedback. We observe an average absolute improvement of 45.97% in the pass@1 code generation accuracy for both datasets and across all LLMs within 5 user interactions, in addition to the automatic generation of accompanying unit tests.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2254-2268"},"PeriodicalIF":6.5,"publicationDate":"2024-07-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141754777","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
FairBalance: How to Achieve Equalized Odds With Data Pre-Processing 公平均衡:如何通过数据预处理实现胜负均等
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-22 DOI: 10.1109/TSE.2024.3431445
Zhe Yu;Joymallya Chakraborty;Tim Menzies
This research seeks to benefit the software engineering society by providing a simple yet effective pre-processing approach to achieve equalized odds fairness in machine learning software. Fairness issues have attracted increasing attention since machine learning software is increasingly used for high-stakes and high-risk decisions. It is the responsibility of all software developers to make their software accountable by ensuring that the machine learning software do not perform differently on different sensitive demographic groups—satisfying equalized odds. Different from prior works which either optimize for an equalized odds related metric during the learning process like a black-box, or manipulate the training data following some intuition; this work studies the root cause of the violation of equalized odds and how to tackle it. We found that equalizing the class distribution in each demographic group with sample weights is a necessary condition for achieving equalized odds without modifying the normal training process. In addition, an important partial condition for equalized odds (zero average odds difference) can be guaranteed when the class distributions are weighted to be not only equal but also balanced (1:1). Based on these analyses, we proposed FairBalance, a pre-processing algorithm which balances the class distribution in each demographic group by assigning calculated weights to the training data. On eight real-world datasets, our empirical results show that, at low computational overhead, the proposed pre-processing algorithm FairBalance can significantly improve equalized odds without much, if any damage to the utility. FairBalance also outperforms existing state-of-the-art approaches in terms of equalized odds. To facilitate reuse, reproduction, and validation, we made our scripts available at https://github.com/hil-se/FairBalance.
这项研究旨在通过提供一种简单而有效的预处理方法,在机器学习软件中实现均衡赔率公平性,从而造福软件工程社会。由于机器学习软件越来越多地用于高风险决策,公平性问题日益受到关注。所有软件开发人员都有责任确保机器学习软件不会对不同的敏感人群产生不同的表现--满足均衡赔率的要求。以往的研究要么像黑盒子一样在学习过程中优化与均衡赔率相关的指标,要么按照某种直觉处理训练数据;与此不同的是,这项工作研究的是违反均衡赔率的根本原因以及如何解决这个问题。我们发现,在不修改正常训练过程的情况下,利用样本权重均衡每个人口统计组的类别分布是实现均衡赔率的必要条件。此外,当类分布的权重不仅相等,而且均衡(1:1)时,均衡赔率的一个重要部分条件(平均赔率差为零)也能得到保证。基于这些分析,我们提出了公平平衡算法(FairBalance),这是一种预处理算法,通过为训练数据分配计算出的权重来平衡每个人口统计组的类别分布。在八个真实世界的数据集上,我们的实证结果表明,在计算开销较低的情况下,所提出的预处理算法 FairBalance 可以显著提高均衡赔率,而不会对效用造成任何损害。在均衡赔率方面,FairBalance 也优于现有的最先进方法。为了便于重复使用、复制和验证,我们在 https://github.com/hil-se/FairBalance 上提供了我们的脚本。
{"title":"FairBalance: How to Achieve Equalized Odds With Data Pre-Processing","authors":"Zhe Yu;Joymallya Chakraborty;Tim Menzies","doi":"10.1109/TSE.2024.3431445","DOIUrl":"10.1109/TSE.2024.3431445","url":null,"abstract":"This research seeks to benefit the software engineering society by providing a simple yet effective pre-processing approach to achieve equalized odds fairness in machine learning software. Fairness issues have attracted increasing attention since machine learning software is increasingly used for high-stakes and high-risk decisions. It is the responsibility of all software developers to make their software accountable by ensuring that the machine learning software do not perform differently on different sensitive demographic groups—satisfying equalized odds. Different from prior works which either optimize for an equalized odds related metric during the learning process like a black-box, or manipulate the training data following some intuition; this work studies the root cause of the violation of equalized odds and how to tackle it. We found that equalizing the class distribution in each demographic group with sample weights is a necessary condition for achieving equalized odds without modifying the normal training process. In addition, an important partial condition for equalized odds (zero average odds difference) can be guaranteed when the class distributions are weighted to be not only equal but also balanced (1:1). Based on these analyses, we proposed FairBalance, a pre-processing algorithm which balances the class distribution in each demographic group by assigning calculated weights to the training data. On eight real-world datasets, our empirical results show that, at low computational overhead, the proposed pre-processing algorithm FairBalance can significantly improve equalized odds without much, if any damage to the utility. FairBalance also outperforms existing state-of-the-art approaches in terms of equalized odds. To facilitate reuse, reproduction, and validation, we made our scripts available at \u0000<uri>https://github.com/hil-se/FairBalance</uri>\u0000.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2294-2312"},"PeriodicalIF":6.5,"publicationDate":"2024-07-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141754779","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A Systematic Literature Review of Model-Driven Engineering Using Machine Learning 使用机器学习的模型驱动工程系统文献综述
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-18 DOI: 10.1109/TSE.2024.3430514
Ana C. Marcén;Antonio Iglesias;Raúl Lapeña;Francisca Pérez;Carlos Cetina
Model-driven engineering (MDE) is a software engineering paradigm based on the systematic use of models. Over the past few years, engineers have significantly increased the use of MDE, which has been reported as a successful paradigm for developing industrial software. Recently, there have also been remarkable advancements in the Artificial Intelligence (AI) domain, with a significant increase in advanced Machine Learning (ML) techniques. The advances in both fields have led to a surge in works that dwell within the intersection of ML and MDE. This work places the focus on systematically reviewing works that leverage ML to solve MDE problems. We have reviewed a total of 9,194 papers, selecting 98 studies for further analysis. The results of our Systematic Literature Review (SLR) bring light to the current state of the art and trends in the field, discussing the drift in the usage of the different available ML techniques along with the remaining research gaps and open challenges. Our SLR has the potential to produce a positive impact in the research community by steering it towards ML techniques that have been successfully applied to solve MDE challenges.
模型驱动工程(MDE)是一种基于系统使用模型的软件工程范式。在过去几年中,工程师们大幅增加了对 MDE 的使用,据报道,MDE 已成为开发工业软件的成功范例。最近,人工智能(AI)领域也取得了显著进步,先进的机器学习(ML)技术大幅增加。这两个领域的进步导致了 ML 和 MDE 交叉领域作品的激增。这项工作的重点是系统回顾利用 ML 解决 MDE 问题的作品。我们总共查阅了 9,194 篇论文,从中挑选出 98 项研究进行进一步分析。我们的系统性文献综述(SLR)结果揭示了该领域的技术现状和发展趋势,讨论了不同可用 ML 技术的使用偏移以及剩余的研究空白和公开挑战。我们的系统文献综述有可能对研究界产生积极影响,引导他们转向已成功应用于解决 MDE 挑战的 ML 技术。
{"title":"A Systematic Literature Review of Model-Driven Engineering Using Machine Learning","authors":"Ana C. Marcén;Antonio Iglesias;Raúl Lapeña;Francisca Pérez;Carlos Cetina","doi":"10.1109/TSE.2024.3430514","DOIUrl":"10.1109/TSE.2024.3430514","url":null,"abstract":"Model-driven engineering (MDE) is a software engineering paradigm based on the systematic use of models. Over the past few years, engineers have significantly increased the use of MDE, which has been reported as a successful paradigm for developing industrial software. Recently, there have also been remarkable advancements in the Artificial Intelligence (AI) domain, with a significant increase in advanced Machine Learning (ML) techniques. The advances in both fields have led to a surge in works that dwell within the intersection of ML and MDE. This work places the focus on systematically reviewing works that leverage ML to solve MDE problems. We have reviewed a total of 9,194 papers, selecting 98 studies for further analysis. The results of our Systematic Literature Review (SLR) bring light to the current state of the art and trends in the field, discussing the drift in the usage of the different available ML techniques along with the remaining research gaps and open challenges. Our SLR has the potential to produce a positive impact in the research community by steering it towards ML techniques that have been successfully applied to solve MDE challenges.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2269-2293"},"PeriodicalIF":6.5,"publicationDate":"2024-07-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141725777","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
HSTCG: State-Aware Simulink Model Test Case Generation with Heuristic Strategy HSTCG:采用启发式策略生成状态感知 Simulink 模型测试用例
IF 7.4 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-15 DOI: 10.1109/tse.2024.3428528
Zhuo Su, Zehong Yu, Dongyan Wang, Yixiao Yang, Rui Wang, Wanli Chang, Aiguo Cui, Yu Jiang
{"title":"HSTCG: State-Aware Simulink Model Test Case Generation with Heuristic Strategy","authors":"Zhuo Su, Zehong Yu, Dongyan Wang, Yixiao Yang, Rui Wang, Wanli Chang, Aiguo Cui, Yu Jiang","doi":"10.1109/tse.2024.3428528","DOIUrl":"https://doi.org/10.1109/tse.2024.3428528","url":null,"abstract":"","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"9 1","pages":""},"PeriodicalIF":7.4,"publicationDate":"2024-07-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141624605","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Towards Efficient Fine-Tuning of Language Models With Organizational Data for Automated Software Review 利用组织数据高效微调语言模型,实现软件自动审查
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-15 DOI: 10.1109/TSE.2024.3428324
Mona Nashaat;James Miller
Large language models like BERT and GPT possess significant capabilities and potential impacts across various applications. Software engineers often use these models for code-related tasks, including generating, debugging, and summarizing code. Nevertheless, large language models still have several flaws, including model hallucination. (e.g., generating erroneous code and producing outdated and inaccurate programs) and the substantial computational resources and energy required for training and fine-tuning. To tackle these challenges, we propose CodeMentor, a framework for few-shot learning to train large language models with the data available within the organization. We employ the framework to train a language model for code review activities, such as code refinement and review generation. The framework utilizes heuristic rules and weak supervision techniques to leverage available data, such as previous review comments, issue reports, and related code updates. Then, the framework employs the constructed dataset to fine-tune LLMs for code review tasks. Additionally, the framework integrates domain expertise by employing reinforcement learning with human feedback. This allows domain experts to assess the generated code and enhance the model performance. Also, to assess the performance of the proposed model, we evaluate it with four state-of-the-art techniques in various code review tasks. The experimental results attest that CodeMentor enhances the performance in all tasks compared to the state-of-the-art approaches, with an improvement of up to 22.3%, 43.4%, and 24.3% in code quality estimation, review generation, and bug report summarization tasks, respectively.
像 BERT 和 GPT 这样的大型语言模型拥有强大的功能,并能对各种应用产生潜在影响。软件工程师经常将这些模型用于代码相关任务,包括生成、调试和总结代码。然而,大型语言模型仍然存在一些缺陷,包括模型幻觉。(例如,生成错误的代码,生成过时和不准确的程序),以及训练和微调所需的大量计算资源和能源。为了应对这些挑战,我们提出了 CodeMentor,一个利用组织内部可用数据训练大型语言模型的少量学习框架。我们利用该框架为代码审查活动(如代码完善和审查生成)训练语言模型。该框架利用启发式规则和弱监督技术来利用可用数据,如以前的审查意见、问题报告和相关代码更新。然后,该框架利用构建的数据集对代码审查任务的 LLM 进行微调。此外,该框架还通过采用强化学习和人工反馈来整合领域专业知识。这样,领域专家就可以对生成的代码进行评估,并提高模型的性能。此外,为了评估所提出模型的性能,我们在各种代码审查任务中用四种最先进的技术对其进行了评估。实验结果证明,与最先进的方法相比,CodeMentor 提高了所有任务的性能,在代码质量评估、审查生成和错误报告汇总任务中分别提高了 22.3%、43.4% 和 24.3%。
{"title":"Towards Efficient Fine-Tuning of Language Models With Organizational Data for Automated Software Review","authors":"Mona Nashaat;James Miller","doi":"10.1109/TSE.2024.3428324","DOIUrl":"10.1109/TSE.2024.3428324","url":null,"abstract":"Large language models like BERT and GPT possess significant capabilities and potential impacts across various applications. Software engineers often use these models for code-related tasks, including generating, debugging, and summarizing code. Nevertheless, large language models still have several flaws, including model hallucination. (e.g., generating erroneous code and producing outdated and inaccurate programs) and the substantial computational resources and energy required for training and fine-tuning. To tackle these challenges, we propose CodeMentor, a framework for few-shot learning to train large language models with the data available within the organization. We employ the framework to train a language model for code review activities, such as code refinement and review generation. The framework utilizes heuristic rules and weak supervision techniques to leverage available data, such as previous review comments, issue reports, and related code updates. Then, the framework employs the constructed dataset to fine-tune LLMs for code review tasks. Additionally, the framework integrates domain expertise by employing reinforcement learning with human feedback. This allows domain experts to assess the generated code and enhance the model performance. Also, to assess the performance of the proposed model, we evaluate it with four state-of-the-art techniques in various code review tasks. The experimental results attest that CodeMentor enhances the performance in all tasks compared to the state-of-the-art approaches, with an improvement of up to 22.3%, 43.4%, and 24.3% in code quality estimation, review generation, and bug report summarization tasks, respectively.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2240-2253"},"PeriodicalIF":6.5,"publicationDate":"2024-07-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141625007","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Mole: Efficient Crash Reproduction in Android Applications With Enforcing Necessary UI Events 鼹鼠通过强制执行必要的用户界面事件在 Android 应用程序中高效重现崩溃现象
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-15 DOI: 10.1109/TSE.2024.3428543
Maryam Masoudian;Heqing Huang;Morteza Amini;Charles Zhang
To improve the quality of Android apps, developers use automated debugging and testing solutions to determine whether the previously found crashes are reproducible. However, existing GUI fuzzing solutions for Android apps struggle to reproduce crashes efficiently based solely on a crash stack trace. This trace provides the location in the app where the crash occurs. GUI fuzzing solutions currently in use rely on heuristics to generate UI events. Unfortunately, these events often do not align with the investigation of an app's UI event space to reach a specific location of code. Hence, they generate numerous events unrelated to the crash, leading to an event explosion. To address this issue, a precise static UI model of widgets and screens can greatly enhance the efficiency of a fuzzing tool in its search. Building such a model requires considering all possible combinations of event sequences on widgets since the execution order of events is not statically determined. However, this approach presents scalability challenges in complex apps with several widgets. In this paper, we propose a directed-based fuzzing solution to reduce an app's event domain to the necessary ones to trigger a crash. Our insight is that the dependencies between widgets in their visual presentation and attribute states provide valuable information in precisely identifying events that trigger a crash. We propose an attribute-sensitive reachability analysis (ASRA) to track dependent widgets in reachable paths to the crash point and distinguish between events in terms of their relevancy to be generated in the crash reproduction process. With instrumentation, we inject code to prune irrelevant events, reducing the event domain to search at run time. We used four famous fuzzing tools, Monkey, Ape, Stoat, and FastBot2, to assess the impact of our solution in decreasing the crash reproduction time and increasing the possibility of reproducing a crash. Our results show that the success ratio of reproducing a crash has increased for one-fourth of crashes. In addition, the average reproduction time of a crash becomes at least 2x faster. Wilcoxon Mann-Whitney test shows this enhancement is significant when our tool is used compared to baseline and insensitive reachability analysis.
为了提高 Android 应用程序的质量,开发人员使用自动调试和测试解决方案来确定之前发现的崩溃是否可以重现。然而,现有的安卓应用程序图形用户界面模糊解决方案很难仅凭崩溃堆栈跟踪来有效重现崩溃。这种跟踪提供了应用程序中发生崩溃的位置。目前使用的图形用户界面模糊解决方案依赖于启发式方法来生成用户界面事件。遗憾的是,这些事件往往与应用程序用户界面事件空间的调查不一致,无法到达代码的特定位置。因此,它们会生成大量与崩溃无关的事件,导致事件爆炸。为了解决这个问题,精确的部件和屏幕静态用户界面模型可以大大提高模糊工具的搜索效率。建立这样的模型需要考虑部件上所有可能的事件序列组合,因为事件的执行顺序不是静态确定的。然而,这种方法在使用多个小部件的复杂应用程序中存在可扩展性方面的挑战。在本文中,我们提出了一种基于定向的模糊处理解决方案,可将应用程序的事件域缩小到触发崩溃的必要事件域。我们的见解是,部件之间在视觉呈现和属性状态上的依赖关系为精确识别触发崩溃的事件提供了宝贵的信息。我们提出了一种对属性敏感的可达性分析(ASRA),用于跟踪通往崩溃点的可达路径中的依赖部件,并根据其在崩溃重现过程中产生的相关性对事件进行区分。通过仪器分析,我们注入代码以剪切无关事件,从而减少运行时需要搜索的事件域。我们使用了四种著名的模糊工具:Monkey、Ape、Stoat 和 FastBot2,以评估我们的解决方案在缩短崩溃重现时间和提高崩溃重现可能性方面的影响。结果表明,四分之一的崩溃重现成功率有所提高。此外,碰撞的平均复制时间至少缩短了 2 倍。Wilcoxon Mann-Whitney 检验表明,与基线和不敏感的可达性分析相比,使用我们的工具时,这种改进是显著的。
{"title":"Mole: Efficient Crash Reproduction in Android Applications With Enforcing Necessary UI Events","authors":"Maryam Masoudian;Heqing Huang;Morteza Amini;Charles Zhang","doi":"10.1109/TSE.2024.3428543","DOIUrl":"10.1109/TSE.2024.3428543","url":null,"abstract":"To improve the quality of Android apps, developers use automated debugging and testing solutions to determine whether the previously found crashes are reproducible. However, existing GUI fuzzing solutions for Android apps struggle to reproduce crashes efficiently based solely on a crash stack trace. This trace provides the location in the app where the crash occurs. GUI fuzzing solutions currently in use rely on heuristics to generate UI events. Unfortunately, these events often do not align with the investigation of an app's UI event space to reach a specific location of code. Hence, they generate numerous events unrelated to the crash, leading to an event explosion. To address this issue, a precise static UI model of widgets and screens can greatly enhance the efficiency of a fuzzing tool in its search. Building such a model requires considering all possible combinations of event sequences on widgets since the execution order of events is not statically determined. However, this approach presents scalability challenges in complex apps with several widgets. In this paper, we propose a directed-based fuzzing solution to reduce an app's event domain to the necessary ones to trigger a crash. Our insight is that the dependencies between widgets in their visual presentation and attribute states provide valuable information in precisely identifying events that trigger a crash. We propose an attribute-sensitive reachability analysis (ASRA) to track dependent widgets in reachable paths to the crash point and distinguish between events in terms of their relevancy to be generated in the crash reproduction process. With instrumentation, we inject code to prune irrelevant events, reducing the event domain to search at run time. We used four famous fuzzing tools, Monkey, Ape, Stoat, and FastBot2, to assess the impact of our solution in decreasing the crash reproduction time and increasing the possibility of reproducing a crash. Our results show that the success ratio of reproducing a crash has increased for \u0000<italic>one-fourth</i>\u0000 of crashes. In addition, the average reproduction time of a crash becomes at least 2x faster. Wilcoxon Mann-Whitney test shows this enhancement is significant when our tool is used compared to baseline and insensitive reachability analysis.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 8","pages":"2200-2218"},"PeriodicalIF":6.5,"publicationDate":"2024-07-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141625080","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
IEEE Transactions on Software Engineering
全部 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