首页 > 最新文献

2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)最新文献

英文 中文
Lazy-CSeq: A Context-Bounded Model Checking Tool for Multi-threaded C-Programs Lazy-CSeq:一个多线程c程序的上下文边界模型检查工具
Omar Inverso, Truc L. Nguyen, B. Fischer, S. L. Torre, G. Parlato
Lazy-CSeq is a context-bounded verification tool for sequentially consistent C programs using POSIX threads. It first translates a multi-threaded C program into a bounded nondeterministic sequential C program that preserves bounded reachability for all round-robin schedules up to a given number of rounds. It then reuses existing high-performance bounded model checkers as sequential verification backends. Lazy-CSeq handles the full C language and the main parts of the POSIX thread API, such as dynamic thread creation and deletion, and synchronization via thread join, locks, and condition variables. It supports assertion checking and deadlock detection, and returns counterexamples in case of errors. Lazy-CSeq outperforms other concurrency verification tools and has won the concurrency category of the last two SV-COMP verification competitions.
Lazy-CSeq是一个上下文绑定的验证工具,用于使用POSIX线程的顺序一致的C程序。它首先将多线程C程序转换为有界的不确定性顺序C程序,该程序在给定的轮数内为所有循环调度保留有界的可达性。然后重用现有的高性能有界模型检查器作为顺序验证后端。Lazy-CSeq处理完整的C语言和POSIX线程API的主要部分,例如动态线程创建和删除,以及通过线程连接、锁和条件变量进行同步。它支持断言检查和死锁检测,并在出现错误时返回反例。Lazy-CSeq优于其他并发验证工具,并在最近两届SV-COMP验证竞赛的并发类别中获胜。
{"title":"Lazy-CSeq: A Context-Bounded Model Checking Tool for Multi-threaded C-Programs","authors":"Omar Inverso, Truc L. Nguyen, B. Fischer, S. L. Torre, G. Parlato","doi":"10.1109/ASE.2015.108","DOIUrl":"https://doi.org/10.1109/ASE.2015.108","url":null,"abstract":"Lazy-CSeq is a context-bounded verification tool for sequentially consistent C programs using POSIX threads. It first translates a multi-threaded C program into a bounded nondeterministic sequential C program that preserves bounded reachability for all round-robin schedules up to a given number of rounds. It then reuses existing high-performance bounded model checkers as sequential verification backends. Lazy-CSeq handles the full C language and the main parts of the POSIX thread API, such as dynamic thread creation and deletion, and synchronization via thread join, locks, and condition variables. It supports assertion checking and deadlock detection, and returns counterexamples in case of errors. Lazy-CSeq outperforms other concurrency verification tools and has won the concurrency category of the last two SV-COMP verification competitions.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"807-812"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87362129","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}
引用次数: 50
Development Emails Content Analyzer: Intention Mining in Developer Discussions (T) 开发邮件内容分析器:开发者讨论中的意图挖掘(T)
Andrea Di Sorbo, Sebastiano Panichella, C. A. Visaggio, M. D. Penta, G. Canfora, H. Gall
Written development communication (e.g. mailing lists, issue trackers) constitutes a precious source of information to build recommenders for software engineers, for example aimed at suggesting experts, or at redocumenting existing source code. In this paper we propose a novel, semi-supervised approach named DECA (Development Emails Content Analyzer) that uses Natural Language Parsing to classify the content of development emails according to their purpose (e.g. feature request, opinion asking, problem discovery, solution proposal, information giving etc), identifying email elements that can be used for specific tasks. A study based on data from Qt and Ubuntu, highlights a high precision (90%) and recall (70%) of DECA in classifying email content, outperforming traditional machine learning strategies. Moreover, we successfully used DECA for re-documenting source code of Eclipse and Lucene, improving the recall, while keeping high precision, of a previous approach based on ad-hoc heuristics.
书面的开发沟通(例如邮件列表,问题跟踪器)构成了为软件工程师构建推荐的宝贵信息来源,例如旨在推荐专家,或重新记录现有源代码。在本文中,我们提出了一种新颖的、半监督的方法,称为DECA(开发电子邮件内容分析器),它使用自然语言解析根据开发电子邮件的目的(例如,功能请求、意见询问、问题发现、解决方案建议、信息提供等)对其内容进行分类,识别可用于特定任务的电子邮件元素。一项基于Qt和Ubuntu数据的研究强调了DECA在分类电子邮件内容方面的高精度(90%)和召回率(70%),优于传统的机器学习策略。此外,我们成功地使用DECA重新记录Eclipse和Lucene的源代码,提高了召回率,同时保持了以前基于特别启发式方法的高精度。
{"title":"Development Emails Content Analyzer: Intention Mining in Developer Discussions (T)","authors":"Andrea Di Sorbo, Sebastiano Panichella, C. A. Visaggio, M. D. Penta, G. Canfora, H. Gall","doi":"10.1109/ASE.2015.12","DOIUrl":"https://doi.org/10.1109/ASE.2015.12","url":null,"abstract":"Written development communication (e.g. mailing lists, issue trackers) constitutes a precious source of information to build recommenders for software engineers, for example aimed at suggesting experts, or at redocumenting existing source code. In this paper we propose a novel, semi-supervised approach named DECA (Development Emails Content Analyzer) that uses Natural Language Parsing to classify the content of development emails according to their purpose (e.g. feature request, opinion asking, problem discovery, solution proposal, information giving etc), identifying email elements that can be used for specific tasks. A study based on data from Qt and Ubuntu, highlights a high precision (90%) and recall (70%) of DECA in classifying email content, outperforming traditional machine learning strategies. Moreover, we successfully used DECA for re-documenting source code of Eclipse and Lucene, improving the recall, while keeping high precision, of a previous approach based on ad-hoc heuristics.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"28 1","pages":"12-23"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74605901","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}
引用次数: 86
Stability of Self-Adaptive Software Architectures 自适应软件架构的稳定性
M. Salama
Stakeholders and organisations are increasingly looking for long-lived software. As architectures have a profound effect on the operational life-time of the software and the quality of the service provision, architectural stability could be considered a primary criterion towards achieving the long-livety of the software. Architectural stability is envisioned as the next step in quality attributes, combining many inter-related qualities. This research suggests the notion of behavioural stability as a primary criterion for evaluating whether the architecture maintains achieving the expected quality attributes, maintaining architecture robustness, and evaluating how well the architecture accommodates run-time evolutionary changes. The research investigates the notion of architecture stability at run-time in the context of self-adaptive software architectures. We expect to define, characterise and analyse this intuitive concept, as well as identify the consequent trade-offs to be dynamically managed and enhance the self-adaptation process for a long-lived software.
利益相关者和组织越来越多地寻求长期使用的软件。由于体系结构对软件的运行寿命和服务提供的质量有深远的影响,因此体系结构的稳定性可以被认为是实现软件长期寿命的主要标准。架构稳定性被设想为质量属性的下一个步骤,结合了许多相互关联的质量。这项研究建议将行为稳定性的概念作为评估体系结构是否保持实现预期质量属性、保持体系结构健壮性以及评估体系结构如何很好地适应运行时演化变化的主要标准。在自适应软件体系结构的背景下,研究了运行时体系结构稳定性的概念。我们期望定义、描述和分析这个直观的概念,以及确定要动态管理的相应权衡,并增强长期软件的自适应过程。
{"title":"Stability of Self-Adaptive Software Architectures","authors":"M. Salama","doi":"10.1109/ASE.2015.93","DOIUrl":"https://doi.org/10.1109/ASE.2015.93","url":null,"abstract":"Stakeholders and organisations are increasingly looking for long-lived software. As architectures have a profound effect on the operational life-time of the software and the quality of the service provision, architectural stability could be considered a primary criterion towards achieving the long-livety of the software. Architectural stability is envisioned as the next step in quality attributes, combining many inter-related qualities. This research suggests the notion of behavioural stability as a primary criterion for evaluating whether the architecture maintains achieving the expected quality attributes, maintaining architecture robustness, and evaluating how well the architecture accommodates run-time evolutionary changes. The research investigates the notion of architecture stability at run-time in the context of self-adaptive software architectures. We expect to define, characterise and analyse this intuitive concept, as well as identify the consequent trade-offs to be dynamically managed and enhance the self-adaptation process for a long-lived software.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"27 1","pages":"886-889"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83221268","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
Generating Fixtures for JavaScript Unit Testing (T) 为JavaScript单元测试生成fixture (T)
A. M. Fard, A. Mesbah, Eric Wohlstadter
In today's web applications, JavaScript code interacts with the Document Object Model (DOM) at runtime. This runtime interaction between JavaScript and the DOM is error-prone and challenging to test. In order to unit test a JavaScript function that has read/write DOM operations, a DOM instance has to be provided as a test fixture. This DOM fixture needs to be in the exact structure expected by the function under test. Otherwise, the test case can terminate prematurely due to a null exception. Generating these fixtures is challenging due to the dynamic nature of JavaScript and the hierarchical structure of the DOM. We present an automated technique, based on dynamic symbolic execution, which generates test fixtures for unit testing JavaScript functions. Our approach is implemented in a tool called ConFix. Our empirical evaluation shows that ConFix can effectively generate tests that cover DOM-dependent paths. We also find that ConFix yields considerably higher coverage compared to an existing JavaScript input generation technique.
在今天的web应用程序中,JavaScript代码在运行时与文档对象模型(DOM)交互。JavaScript和DOM之间的这种运行时交互很容易出错,而且很难测试。为了对具有读/写DOM操作的JavaScript函数进行单元测试,必须提供一个DOM实例作为测试装置。这个DOM fixture需要与被测函数所期望的结构完全一致。否则,测试用例可能由于空异常而过早终止。由于JavaScript的动态特性和DOM的层次结构,生成这些固定装置具有挑战性。我们提出了一种基于动态符号执行的自动化技术,它为单元测试JavaScript函数生成测试fixture。我们的方法在一个名为ConFix的工具中实现。我们的经验评估表明,ConFix可以有效地生成覆盖dom相关路径的测试。我们还发现,与现有的JavaScript输入生成技术相比,ConFix的覆盖率要高得多。
{"title":"Generating Fixtures for JavaScript Unit Testing (T)","authors":"A. M. Fard, A. Mesbah, Eric Wohlstadter","doi":"10.1109/ASE.2015.26","DOIUrl":"https://doi.org/10.1109/ASE.2015.26","url":null,"abstract":"In today's web applications, JavaScript code interacts with the Document Object Model (DOM) at runtime. This runtime interaction between JavaScript and the DOM is error-prone and challenging to test. In order to unit test a JavaScript function that has read/write DOM operations, a DOM instance has to be provided as a test fixture. This DOM fixture needs to be in the exact structure expected by the function under test. Otherwise, the test case can terminate prematurely due to a null exception. Generating these fixtures is challenging due to the dynamic nature of JavaScript and the hierarchical structure of the DOM. We present an automated technique, based on dynamic symbolic execution, which generates test fixtures for unit testing JavaScript functions. Our approach is implemented in a tool called ConFix. Our empirical evaluation shows that ConFix can effectively generate tests that cover DOM-dependent paths. We also find that ConFix yields considerably higher coverage compared to an existing JavaScript input generation technique.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"21 1","pages":"190-200"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85113352","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
Generating Qualifiable Avionics Software: An Experience Report (E) 生成合格的航空电子软件:经验报告(E)
A. Wölfl, Norbert Siegmund, S. Apel, H. Kosch, Johann Krautlager, Guillermo Weber-Urbina
We report on our experience with enhancing the data-management component in the avionics software of the NH90 helicopter at Airbus Helicopters. We describe challenges regarding the evolution of avionics software by means of real-world evolution scenarios that arise in industrial practice. A key role plays a legally-binding certification process, called qualification, which is responsible for most of the development effort and cost. To reduce effort and cost, we propose a novel generative approach to develop qualifiable avionics software by combining model-based and product-line technology. Using this approach, we have already generated code that is running on the NH90 helicopter and that is in the process of replacing the current system code. Based on an interview with two professional developers at Airbus and an analysis of the software repository of the NH90, we systematically compare our approach with established development approaches in the avionics domain, in terms of implementation and qualification effort.
我们报告了我们在空中客车直升机NH90直升机航空电子软件中增强数据管理组件的经验。我们通过工业实践中出现的真实世界的发展场景来描述有关航空电子软件发展的挑战。一个关键的角色是具有法律约束力的认证过程,称为资格认证,它负责大部分的开发工作和成本。为了减少工作量和成本,我们提出了一种新的生成方法,将基于模型的技术与生产线技术相结合来开发合格的航空电子软件。使用这种方法,我们已经生成了在NH90直升机上运行的代码,并且正在替换当前的系统代码。基于对空中客车公司两位专业开发人员的采访和对NH90软件库的分析,我们系统地比较了我们的方法与航空电子领域现有的开发方法,在实施和认证方面的努力。
{"title":"Generating Qualifiable Avionics Software: An Experience Report (E)","authors":"A. Wölfl, Norbert Siegmund, S. Apel, H. Kosch, Johann Krautlager, Guillermo Weber-Urbina","doi":"10.1109/ASE.2015.35","DOIUrl":"https://doi.org/10.1109/ASE.2015.35","url":null,"abstract":"We report on our experience with enhancing the data-management component in the avionics software of the NH90 helicopter at Airbus Helicopters. We describe challenges regarding the evolution of avionics software by means of real-world evolution scenarios that arise in industrial practice. A key role plays a legally-binding certification process, called qualification, which is responsible for most of the development effort and cost. To reduce effort and cost, we propose a novel generative approach to develop qualifiable avionics software by combining model-based and product-line technology. Using this approach, we have already generated code that is running on the NH90 helicopter and that is in the process of replacing the current system code. Based on an interview with two professional developers at Airbus and an analysis of the software repository of the NH90, we systematically compare our approach with established development approaches in the avionics domain, in terms of implementation and qualification effort.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"42 1","pages":"726-736"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84620081","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Automatic Detection of Potential Layout Faults Following Changes to Responsive Web Pages (N) 响应式网页更改后的潜在布局错误自动检测(N)
Thomas A. Walsh, Phil McMinn, G. M. Kapfhammer
Due to the exponential increase in the number ofmobile devices being used to access the World Wide Web, it iscrucial that Web sites are functional and user-friendly across awide range of Web-enabled devices. This necessity has resulted in the introduction of responsive Web design (RWD), which usescomplex cascading style sheets (CSS) to fluidly modify a Web site's appearance depending on the viewport width of the device in use. Although existing tools may support the testing of responsive Web sites, they are time consuming and error-prone to use because theyrequire manual screenshot inspection at specified viewport widths. Addressing these concerns, this paper presents a method thatcan automatically detect potential layout faults in responsively designed Web sites. To experimentally evaluate this approach, weimplemented it as a tool, called ReDeCheck, and applied itto 5 real-world web sites that vary in both their approach toresponsive design and their complexity. The experiments revealthat ReDeCheck finds 91% of the inserted layout faults.
由于用于访问万维网的移动设备数量呈指数级增长,因此至关重要的是,Web站点在各种支持Web的设备上都具有功能性和用户友好性。这种必要性导致了响应式Web设计(RWD)的引入,它使用复杂的层叠样式表(CSS)根据所使用设备的视口宽度流畅地修改网站的外观。尽管现有的工具可能支持响应式Web站点的测试,但它们使用起来既耗时又容易出错,因为它们需要在指定的视口宽度上手动检查屏幕截图。针对这些问题,本文提出了一种可以自动检测响应式设计网站中潜在布局错误的方法。为了实验性地评估这种方法,我们将其作为一个工具实现,称为ReDeCheck,并将其应用于5个现实世界的网站,这些网站在响应式设计的方法和复杂性方面都有所不同。实验表明,ReDeCheck发现了91%的插入式布局故障。
{"title":"Automatic Detection of Potential Layout Faults Following Changes to Responsive Web Pages (N)","authors":"Thomas A. Walsh, Phil McMinn, G. M. Kapfhammer","doi":"10.1109/ASE.2015.31","DOIUrl":"https://doi.org/10.1109/ASE.2015.31","url":null,"abstract":"Due to the exponential increase in the number ofmobile devices being used to access the World Wide Web, it iscrucial that Web sites are functional and user-friendly across awide range of Web-enabled devices. This necessity has resulted in the introduction of responsive Web design (RWD), which usescomplex cascading style sheets (CSS) to fluidly modify a Web site's appearance depending on the viewport width of the device in use. Although existing tools may support the testing of responsive Web sites, they are time consuming and error-prone to use because theyrequire manual screenshot inspection at specified viewport widths. Addressing these concerns, this paper presents a method thatcan automatically detect potential layout faults in responsively designed Web sites. To experimentally evaluate this approach, weimplemented it as a tool, called ReDeCheck, and applied itto 5 real-world web sites that vary in both their approach toresponsive design and their complexity. The experiments revealthat ReDeCheck finds 91% of the inserted layout faults.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"73 1","pages":"709-714"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88330689","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}
引用次数: 42
Fuzzing the Rust Typechecker Using CLP (T) 使用CLP (T)模糊Rust类型检查器
Kyle Dewey, Jared Roesch, B. Hardekopf
Language fuzzing is a bug-finding technique for testing compilers and interpreters, its effectiveness depends upon the ability to automatically generate valid programs in the language under test. Despite the proven success of language fuzzing, there is a severe lack of tool support for fuzzing statically-typed languages with advanced type systems because existing fuzzing techniques cannot effectively and automatically generate well-typed programs that use sophisticated types. In this work we describe how to automatically generate well-typed programs that use sophisticated type systems by phrasing the problem of well-typed program generation in terms of Constraint Logic Programming (CLP). In addition, we describe how to specifically target the typechecker implementation for testing, unlike all existing work which ignores the typechecker. We focus on typechecker precision bugs, soundness bugs, and consistency bugs. We apply our techniques to Rust, a complex, industrial-strength language with a sophisticated type system.
语言模糊测试是一种用于测试编译器和解释器的bug发现技术,其有效性取决于在被测语言中自动生成有效程序的能力。尽管语言模糊测试已被证明是成功的,但由于现有的模糊测试技术不能有效地自动生成使用复杂类型的类型良好的程序,因此严重缺乏使用高级类型系统对静态类型语言进行模糊测试的工具支持。在这项工作中,我们描述了如何自动生成使用复杂类型系统的良好类型程序,方法是根据约束逻辑编程(CLP)来描述良好类型程序生成的问题。此外,我们还描述了如何专门针对类型检查器实现进行测试,这与所有忽略类型检查器的现有工作不同。我们主要关注类型检查器精度错误、可靠性错误和一致性错误。我们将我们的技术应用于Rust,这是一种复杂的、工业强度的语言,具有复杂的类型系统。
{"title":"Fuzzing the Rust Typechecker Using CLP (T)","authors":"Kyle Dewey, Jared Roesch, B. Hardekopf","doi":"10.1109/ASE.2015.65","DOIUrl":"https://doi.org/10.1109/ASE.2015.65","url":null,"abstract":"Language fuzzing is a bug-finding technique for testing compilers and interpreters, its effectiveness depends upon the ability to automatically generate valid programs in the language under test. Despite the proven success of language fuzzing, there is a severe lack of tool support for fuzzing statically-typed languages with advanced type systems because existing fuzzing techniques cannot effectively and automatically generate well-typed programs that use sophisticated types. In this work we describe how to automatically generate well-typed programs that use sophisticated type systems by phrasing the problem of well-typed program generation in terms of Constraint Logic Programming (CLP). In addition, we describe how to specifically target the typechecker implementation for testing, unlike all existing work which ignores the typechecker. We focus on typechecker precision bugs, soundness bugs, and consistency bugs. We apply our techniques to Rust, a complex, industrial-strength language with a sophisticated type system.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"61 1","pages":"482-493"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80587377","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}
引用次数: 39
Variable Feature Usage Patterns in PHP (T) PHP (T)中的可变特性使用模式
M. Hills
PHP allows the names of variables, classes, functions, methods, and properties to be given dynamically, as expressions that, when evaluated, return an identifier as a string. While this provides greater flexibility for programmers, it also makes PHP programs harder to precisely analyze and understand. In this paper we present a number of patterns designed to recognize idiomatic uses of these features that can be statically resolved to a precise set of possible names. We then evaluate these patterns across a corpus of 20 open-source systems totaling more than 3.7 million lines of PHP, showing how often these patterns occur in actual PHP code, demonstrating their effectiveness at statically determining the names that can be used at runtime, and exploring anti-patterns that indicate when the identifier computation is truly dynamic.
PHP允许以表达式的形式动态地给出变量、类、函数、方法和属性的名称,这些表达式在求值时返回字符串形式的标识符。虽然这为程序员提供了更大的灵活性,但也使PHP程序更难精确地分析和理解。在本文中,我们提出了一些模式,旨在识别这些特性的惯用用法,这些特性可以静态解析为一组精确的可能名称。然后,我们在20个开源系统的语库中评估这些模式,总共超过370万行PHP代码,展示这些模式在实际PHP代码中出现的频率,展示它们在静态确定可在运行时使用的名称方面的有效性,并探索指示标识符计算何时真正是动态的反模式。
{"title":"Variable Feature Usage Patterns in PHP (T)","authors":"M. Hills","doi":"10.1109/ASE.2015.72","DOIUrl":"https://doi.org/10.1109/ASE.2015.72","url":null,"abstract":"PHP allows the names of variables, classes, functions, methods, and properties to be given dynamically, as expressions that, when evaluated, return an identifier as a string. While this provides greater flexibility for programmers, it also makes PHP programs harder to precisely analyze and understand. In this paper we present a number of patterns designed to recognize idiomatic uses of these features that can be statically resolved to a precise set of possible names. We then evaluate these patterns across a corpus of 20 open-source systems totaling more than 3.7 million lines of PHP, showing how often these patterns occur in actual PHP code, demonstrating their effectiveness at statically determining the names that can be used at runtime, and exploring anti-patterns that indicate when the identifier computation is truly dynamic.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"40 1","pages":"563-573"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91346944","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Synthesizing Web Element Locators (T) 综合Web元素定位器(T)
Kartik Bajaj, K. Pattabiraman, A. Mesbah
To programmatically interact with the user interface of a web application, element locators are used to select and retrieve elements from the Document Object Model (DOM). Element locators are used in JavaScript code, Cascading stylesheets, and test cases to interact with the runtime DOM of the webpage. Constructing these element locators is, however, challenging due to the dynamic nature of the DOM. We find that locators written by web developers can be quite complex, and involve selecting multiple DOM elements. We present an automated technique for synthesizing DOM element locators using examples provided interactively by the developer. The main insight in our approach is that the problem of synthesizing complex multi-element locators can be expressed as a constraint solving problem over the domain of valid DOM states in a web application. We implemented our synthesis technique in a tool called LED, which provides an interactive drag and drop support inside the browser for selecting positive and negative examples. We find that LED supports at least 86% of the locators used in the JavaScript code of deployed web applications, and that the locators synthesized by LED have a recall of 98% and a precision of 63%. LED is fast, taking only 0.23 seconds on average to synthesize a locator.
为了与web应用程序的用户界面进行编程交互,元素定位器用于从文档对象模型(DOM)中选择和检索元素。元素定位器用于JavaScript代码、层叠样式表和测试用例中,以与网页的运行时DOM交互。然而,由于DOM的动态性,构造这些元素定位器是一项挑战。我们发现由web开发人员编写的定位器可能相当复杂,并且涉及到选择多个DOM元素。我们提出了一种自动合成DOM元素定位器的技术,使用开发人员交互式提供的示例。我们方法的主要见解是,综合复杂的多元素定位器的问题可以表示为web应用程序中有效DOM状态域的约束解决问题。我们在一个名为LED的工具中实现了我们的合成技术,该工具在浏览器中提供了交互式拖放支持,用于选择正面和负面示例。我们发现,在部署的web应用程序的JavaScript代码中,LED至少支持86%的定位器,并且由LED合成的定位器具有98%的召回率和63%的精度。LED的速度很快,合成一个定位器平均只需要0.23秒。
{"title":"Synthesizing Web Element Locators (T)","authors":"Kartik Bajaj, K. Pattabiraman, A. Mesbah","doi":"10.1109/ASE.2015.23","DOIUrl":"https://doi.org/10.1109/ASE.2015.23","url":null,"abstract":"To programmatically interact with the user interface of a web application, element locators are used to select and retrieve elements from the Document Object Model (DOM). Element locators are used in JavaScript code, Cascading stylesheets, and test cases to interact with the runtime DOM of the webpage. Constructing these element locators is, however, challenging due to the dynamic nature of the DOM. We find that locators written by web developers can be quite complex, and involve selecting multiple DOM elements. We present an automated technique for synthesizing DOM element locators using examples provided interactively by the developer. The main insight in our approach is that the problem of synthesizing complex multi-element locators can be expressed as a constraint solving problem over the domain of valid DOM states in a web application. We implemented our synthesis technique in a tool called LED, which provides an interactive drag and drop support inside the browser for selecting positive and negative examples. We find that LED supports at least 86% of the locators used in the JavaScript code of deployed web applications, and that the locators synthesized by LED have a recall of 98% and a precision of 63%. LED is fast, taking only 0.23 seconds on average to synthesize a locator.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"60 1","pages":"331-341"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88325049","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 12
LED: Tool for Synthesizing Web Element Locators LED:合成Web元素定位器的工具
Kartik Bajaj, K. Pattabiraman, A. Mesbah
Web applications are growing fast in popularity and complexity. One of the major problems faced by web developers is writing JavaScript code that can retrieve Document Object Model (DOM) tree elements, and is consistent among multiple DOM states. We attempt to solve this problem by automatically synthesizing JavaScript code that interacts with the DOM. We present an automated tool called LED, to analyze the DOM elements, and synthesize code to select the DOM elements based on the DOM hierarchy as well as the nature of task that the user wants to perform. LED provides an interactive drag and drop support inside the browser for selecting positive and negative examples of DOM elements. We find that LED supports at least 86% of the locators used in the JavaScript code of deployed web applications, and that the locators synthesized by LED have a recall of 98% and a precision of 63%. LED is fast, taking only 0.23 seconds on average to synthesize a locator.
Web应用程序的流行程度和复杂性都在快速增长。web开发人员面临的主要问题之一是编写能够检索文档对象模型(DOM)树元素的JavaScript代码,并在多个DOM状态之间保持一致。我们试图通过自动合成与DOM交互的JavaScript代码来解决这个问题。我们提供了一个名为LED的自动化工具,用于分析DOM元素,并根据DOM层次结构和用户想要执行的任务的性质合成代码来选择DOM元素。LED在浏览器中提供交互式拖放支持,用于选择DOM元素的正面和负面示例。我们发现,在部署的web应用程序的JavaScript代码中,LED至少支持86%的定位器,并且由LED合成的定位器具有98%的召回率和63%的精度。LED的速度很快,合成一个定位器平均只需要0.23秒。
{"title":"LED: Tool for Synthesizing Web Element Locators","authors":"Kartik Bajaj, K. Pattabiraman, A. Mesbah","doi":"10.1109/ASE.2015.110","DOIUrl":"https://doi.org/10.1109/ASE.2015.110","url":null,"abstract":"Web applications are growing fast in popularity and complexity. One of the major problems faced by web developers is writing JavaScript code that can retrieve Document Object Model (DOM) tree elements, and is consistent among multiple DOM states. We attempt to solve this problem by automatically synthesizing JavaScript code that interacts with the DOM. We present an automated tool called LED, to analyze the DOM elements, and synthesize code to select the DOM elements based on the DOM hierarchy as well as the nature of task that the user wants to perform. LED provides an interactive drag and drop support inside the browser for selecting positive and negative examples of DOM elements. We find that LED supports at least 86% of the locators used in the JavaScript code of deployed web applications, and that the locators synthesized by LED have a recall of 98% and a precision of 63%. LED is fast, taking only 0.23 seconds on average to synthesize a locator.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"70 5","pages":"848-851"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91444030","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
期刊
2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)
全部 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