首页 > 最新文献

International Workshop on Dynamic Analysis最新文献

英文 中文
A runtime environment for online processing of operating system kernel events 用于在线处理操作系统内核事件的运行时环境
Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134245
Michael Schöbel, A. Polze
Different approaches were proposed for the logging of operating system kernel events. In general, the resulting logfiles are huge and have to be analyzed by administrators, who try to identify problems and derive adequate actions. The idea of autonomic computing is to automate such tasks. As an important step towards this vision, computer systems have to be self-aware, i.e. they must be able to detect their runtime state and react if certain problems are detected. In contrast to control-theory based approaches for autonomic computing, the processing of discrete eventstreams offers the possibility of detecting singular events such as attacks or failing components directly. Our proposed runtime environment (1) processes event pattern descriptions, (2) combines events generated by usermode applications and the operating system kernel, (3) can be integrated into the operating system kernel to handle the events as close to their source as possible, (4) adaptively chooses relevant events to keep system disturbance low, and (5) provides an API for the implementation of ideas of autonomic computing in context of reactions to event patterns. In this paper, the event pattern specification language and the runtime environment are described. The described prototype implements the envisioned runtime environment in user-mode and is able to look for event patterns in prerecorded event logfiles. Additionally, an outlook on the planned operating system kernel integration is given.
对操作系统内核事件的日志记录提出了不同的方法。通常,生成的日志文件非常大,必须由管理员进行分析,管理员试图识别问题并采取适当的操作。自主计算的思想就是使这些任务自动化。作为实现这一愿景的重要一步,计算机系统必须具有自我意识,也就是说,它们必须能够检测到它们的运行状态,并在检测到某些问题时做出反应。与基于控制理论的自主计算方法相比,离散事件流的处理提供了直接检测单个事件(如攻击或故障组件)的可能性。我们提出的运行时环境(1)处理事件模式描述,(2)将用户模式应用程序和操作系统内核生成的事件结合起来,(3)可以集成到操作系统内核中,以尽可能接近事件的来源处理事件,(4)自适应地选择相关事件以保持低系统干扰,(5)为在对事件模式的反应上下文中实现自主计算思想提供API。本文描述了事件模式规范语言和运行环境。所描述的原型在用户模式下实现了所设想的运行时环境,并且能够在预先录制的事件日志文件中查找事件模式。此外,对计划中的操作系统内核集成进行了展望。
{"title":"A runtime environment for online processing of operating system kernel events","authors":"Michael Schöbel, A. Polze","doi":"10.1145/2134243.2134245","DOIUrl":"https://doi.org/10.1145/2134243.2134245","url":null,"abstract":"Different approaches were proposed for the logging of operating system kernel events. In general, the resulting logfiles are huge and have to be analyzed by administrators, who try to identify problems and derive adequate actions. The idea of autonomic computing is to automate such tasks.\u0000 As an important step towards this vision, computer systems have to be self-aware, i.e. they must be able to detect their runtime state and react if certain problems are detected. In contrast to control-theory based approaches for autonomic computing, the processing of discrete eventstreams offers the possibility of detecting singular events such as attacks or failing components directly.\u0000 Our proposed runtime environment (1) processes event pattern descriptions, (2) combines events generated by usermode applications and the operating system kernel, (3) can be integrated into the operating system kernel to handle the events as close to their source as possible, (4) adaptively chooses relevant events to keep system disturbance low, and (5) provides an API for the implementation of ideas of autonomic computing in context of reactions to event patterns.\u0000 In this paper, the event pattern specification language and the runtime environment are described. The described prototype implements the envisioned runtime environment in user-mode and is able to look for event patterns in prerecorded event logfiles. Additionally, an outlook on the planned operating system kernel integration is given.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132566397","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
Tiddle: a trace description language for generating concurrent benchmarks to test dynamic analyses tidle:一种跟踪描述语言,用于生成并发基准以测试动态分析
Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134248
Caitlin Sadowski, Jaeheon Yi
Dynamic analysis is a promising technique for finding concurrency bugs in multithreaded programs. However, testing a dynamic analysis tool can be difficult. Researchers end up writing large amounts of small benchmark programs. Since the benchmarks themselves are concurrent programs, they may execute nondeterministically, complicating testing of the analysis tool. We propose testing dynamic analyses by writing traces in a simple trace description language, Tiddle. Our implementation, written in Haskell, generates deterministic multithreaded Java programs for testing dynamic analyses. We report that it is substantially easier to write programs with incriminating bugs such as race conditions in Tiddle than the corresponding Java source code version, reducing the amount of source code to maintain and understand. Although our implementation is targeted towards Java, the ideas extend to any other languages which support mutable fields and multiple threads.
动态分析是在多线程程序中发现并发性错误的一种很有前途的技术。然而,测试动态分析工具可能很困难。研究人员最终编写了大量的小型基准程序。由于基准测试本身是并发程序,因此它们可能不确定地执行,从而使分析工具的测试复杂化。我们建议通过在简单的跟踪描述语言Tiddle中编写跟踪来测试动态分析。我们的实现是用Haskell编写的,它生成了用于测试动态分析的确定性多线程Java程序。我们报告说,与相应的Java源代码版本相比,在Tiddle中编写带有诸如竞争条件之类的错误的程序要容易得多,从而减少了需要维护和理解的源代码的数量。虽然我们的实现是针对Java的,但是这些想法可以扩展到任何其他支持可变字段和多线程的语言。
{"title":"<u>T</u>i<u>d</u>d<u>l</u>e: a <u>t</u>race <u>d</u>escription <u>l</u>anguage for generating concurrent benchmarks to test dynamic analyses","authors":"Caitlin Sadowski, Jaeheon Yi","doi":"10.1145/2134243.2134248","DOIUrl":"https://doi.org/10.1145/2134243.2134248","url":null,"abstract":"Dynamic analysis is a promising technique for finding concurrency bugs in multithreaded programs. However, testing a dynamic analysis tool can be difficult. Researchers end up writing large amounts of small benchmark programs. Since the benchmarks themselves are concurrent programs, they may execute nondeterministically, complicating testing of the analysis tool.\u0000 We propose testing dynamic analyses by writing traces in a simple trace description language, Tiddle. Our implementation, written in Haskell, generates deterministic multithreaded Java programs for testing dynamic analyses. We report that it is substantially easier to write programs with incriminating bugs such as race conditions in Tiddle than the corresponding Java source code version, reducing the amount of source code to maintain and understand. Although our implementation is targeted towards Java, the ideas extend to any other languages which support mutable fields and multiple threads.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114251913","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Using AOP for detailed runtime monitoring instrumentation 使用AOP进行详细的运行时监视工具
Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134246
Amjad Nusayr, J. Cook
Although AOP has long been used for monitoring purposes, the level of detail that virtually all AOP frameworks support is not enough to support broad classes of monitoring applications. Often the method or function call is the basic unit of code weaving, and if some data access weaving is supported it is usually very limited, e.g., to object field access. In this paper we demonstrate the need for AOP to be extended if it is to support broad runtime monitoring needs, and then present two new joinpoint types for AspectJ, the basic block and loop back edge types. These allow much more fine-grained weaving of advice, which in turn supports a much larger category of runtime monitoring applications. We demonstrate the feasibility of these extensions with example prototype implementations using the AspectBench Compiler (abc).
尽管AOP长期以来一直被用于监视目的,但是实际上所有AOP框架所支持的详细程度还不足以支持广泛的监视应用程序。通常,方法或函数调用是代码编织的基本单元,如果支持某些数据访问编织,则通常非常有限,例如,对象字段访问。在本文中,我们演示了如果AOP要支持广泛的运行时监视需求,就需要对其进行扩展,然后为AspectJ提供了两种新的连接点类型,基本的块和循环后缘类型。它们允许更细粒度的通知编织,从而支持更大类别的运行时监视应用程序。我们通过使用AspectBench编译器(abc)的示例原型实现来演示这些扩展的可行性。
{"title":"Using AOP for detailed runtime monitoring instrumentation","authors":"Amjad Nusayr, J. Cook","doi":"10.1145/2134243.2134246","DOIUrl":"https://doi.org/10.1145/2134243.2134246","url":null,"abstract":"Although AOP has long been used for monitoring purposes, the level of detail that virtually all AOP frameworks support is not enough to support broad classes of monitoring applications. Often the method or function call is the basic unit of code weaving, and if some data access weaving is supported it is usually very limited, e.g., to object field access. In this paper we demonstrate the need for AOP to be extended if it is to support broad runtime monitoring needs, and then present two new joinpoint types for AspectJ, the basic block and loop back edge types. These allow much more fine-grained weaving of advice, which in turn supports a much larger category of runtime monitoring applications. We demonstrate the feasibility of these extensions with example prototype implementations using the AspectBench Compiler (abc).","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122227049","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}
引用次数: 16
(Quickly) testing the tester via path coverage (快速地)通过路径覆盖测试测试人员
Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134249
Alex Groce
The configuration complexity and code size of an automated testing framework may grow to a point that the tester itself becomes a significant software artifact, prone to poor configuration and implementation errors. Unfortunately, testing the tester by using old versions of the software under test (SUT) may be impractical or impossible: test framework changes may have been motivated by interface changes in the tested system, or fault detection may become too expensive in terms of computing time to justify running until errors are detected on older versions of the software. We propose the use of path coverage measures as a "quick and dirty" method for detecting many faults in complex test frameworks. We also note the possibility of using techniques developed to diversify state-space searches in model checking to diversify test focus, and an associated classification of tester changes into focus-changing and non-focus-changing modifications.
自动化测试框架的配置复杂性和代码大小可能会增长到测试人员本身成为一个重要的软件工件的程度,容易出现糟糕的配置和实现错误。不幸的是,通过使用旧版本的被测软件(SUT)来测试测试人员可能是不切实际的或不可能的:测试框架的更改可能是由被测系统中的接口更改引起的,或者故障检测可能在计算时间方面变得过于昂贵,以至于无法证明运行,直到在旧版本的软件上检测到错误。我们建议使用路径覆盖度量作为一种“快速而肮脏”的方法来检测复杂测试框架中的许多故障。我们还注意到在模型检查中使用技术来分散状态空间搜索以分散测试焦点的可能性,以及将测试器更改分类为焦点更改和非焦点更改的可能性。
{"title":"(Quickly) testing the tester via path coverage","authors":"Alex Groce","doi":"10.1145/2134243.2134249","DOIUrl":"https://doi.org/10.1145/2134243.2134249","url":null,"abstract":"The configuration complexity and code size of an automated testing framework may grow to a point that the tester itself becomes a significant software artifact, prone to poor configuration and implementation errors. Unfortunately, testing the tester by using old versions of the software under test (SUT) may be impractical or impossible: test framework changes may have been motivated by interface changes in the tested system, or fault detection may become too expensive in terms of computing time to justify running until errors are detected on older versions of the software. We propose the use of path coverage measures as a \"quick and dirty\" method for detecting many faults in complex test frameworks. We also note the possibility of using techniques developed to diversify state-space searches in model checking to diversify test focus, and an associated classification of tester changes into focus-changing and non-focus-changing modifications.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133137826","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}
引用次数: 14
Cooperative crug isolation 协同药物隔离
Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134252
Aditya V. Thakur, Rathijit Sen, B. Liblit, Shan Lu
With the widespread deployment of multi-core hardware, writing concurrent programs has become inescapable. This has made fixing concurrency bugs (or crugs) critical in modern software systems. Static analysis techniques to find crugs such as data races and atomicity violations are not scalable, while dynamic approaches incur high run-time overheads. Crugs pose a greater challenge since they manifest only under specific execution interleavings that may not arise during in-house testing. Thus there is a pressing need for a low-overhead program monitoring technique that can be used post-deployment. We present Cooperative Crug Isolation (CCI), a low-overhead instrumentation technique to isolate the root causes of crugs. CCI inserts instrumentation that records occurrences of specific thread interleavings at run-time by tracking whether successive accesses to a memory location were by the same thread or by distinct threads. The overhead of this instrumentation is kept low by using a novel cross-thread random sampling strategy. We have implemented CCI on top of the Cooperative Bug Isolation framework. CCI correctly diagnoses bugs in several nontrivial concurrent applications while incurring only 2--7% run-time overhead.
随着多核硬件的广泛部署,编写并发程序已成为不可避免的问题。这使得修复并发错误(或药物)在现代软件系统中变得至关重要。用于查找诸如数据竞争和原子性冲突之类的问题的静态分析技术是不可扩展的,而动态方法则会导致高运行时开销。药物带来了更大的挑战,因为它们仅在内部测试期间可能不会出现的特定执行交错中显示。因此,迫切需要一种可以在部署后使用的低开销程序监视技术。我们提出合作药物分离(CCI),一种低开销的仪器技术,以分离药物的根本原因。CCI插入检测工具,通过跟踪对内存位置的连续访问是由同一个线程还是由不同的线程进行的,从而在运行时记录特定线程交错的发生情况。通过使用一种新颖的跨线程随机抽样策略,可以降低检测的开销。我们在协作Bug隔离框架之上实现了CCI。CCI正确地诊断了几个重要并发应用程序中的bug,同时只产生2- 7%的运行时开销。
{"title":"Cooperative crug isolation","authors":"Aditya V. Thakur, Rathijit Sen, B. Liblit, Shan Lu","doi":"10.1145/2134243.2134252","DOIUrl":"https://doi.org/10.1145/2134243.2134252","url":null,"abstract":"With the widespread deployment of multi-core hardware, writing concurrent programs has become inescapable. This has made fixing concurrency bugs (or crugs) critical in modern software systems. Static analysis techniques to find crugs such as data races and atomicity violations are not scalable, while dynamic approaches incur high run-time overheads. Crugs pose a greater challenge since they manifest only under specific execution interleavings that may not arise during in-house testing. Thus there is a pressing need for a low-overhead program monitoring technique that can be used post-deployment.\u0000 We present Cooperative Crug Isolation (CCI), a low-overhead instrumentation technique to isolate the root causes of crugs. CCI inserts instrumentation that records occurrences of specific thread interleavings at run-time by tracking whether successive accesses to a memory location were by the same thread or by distinct threads. The overhead of this instrumentation is kept low by using a novel cross-thread random sampling strategy. We have implemented CCI on top of the Cooperative Bug Isolation framework. CCI correctly diagnoses bugs in several nontrivial concurrent applications while incurring only 2--7% run-time overhead.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132424193","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}
引用次数: 14
Limits of parallelism using dynamic dependency graphs 使用动态依赖图的并行性限制
Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134253
Jonathan Chee Heng Mak, A. Mycroft
The advance of multi-core processors has led to renewed interest in extracting parallelism from programs. It is sometimes useful to know how much parallelism is exploitable in the limit for general programs, to put into perspective the speedups of various parallelisation techniques. Wall's study [19] was one of the first to examine limits of parallelism in detail. We present an extension of Wall's analysis of limits of parallelism, by constructing Dynamic Dependency Graphs from execution traces of a number of benchmark programs, allowing us better visualisation of the types of dependencies which limit parallelism, as well as flexibility in transforming graphs when exploring possible optimisations. Some of the results of Wall and subsequent studies are confirmed, including the fact that average available parallelism is often above 100, but requires effective measures to resolve control dependencies, as well as memory renaming. We also study how certain compiler artifacts affect the limits of parallelism. In particular we show that the use of a spaghetti stack, as a technique to implicitly rename stack memory and break chains on true dependencies on the stack pointer, can lead to a doubling of potential parallelism.
多核处理器的进步重新引起了人们对从程序中提取并行性的兴趣。有时了解在一般程序的极限下可以利用多少并行性是有用的,这样可以正确地看待各种并行化技术的加速。Wall的研究[19]是最早详细研究平行性极限的研究之一。我们通过从一些基准程序的执行轨迹构建动态依赖图,扩展了Wall对并行性限制的分析,使我们能够更好地可视化限制并行性的依赖类型,以及在探索可能的优化时转换图的灵活性。Wall和后续研究的一些结果得到了证实,包括平均可用并行度通常在100以上,但需要有效的措施来解决控制依赖关系,以及内存重命名。我们还研究了某些编译器构件如何影响并行性的限制。特别地,我们展示了意大利式堆栈的使用,作为一种隐式重命名堆栈内存和在堆栈指针上的真正依赖上断开链的技术,可以导致潜在并行性的加倍。
{"title":"Limits of parallelism using dynamic dependency graphs","authors":"Jonathan Chee Heng Mak, A. Mycroft","doi":"10.1145/2134243.2134253","DOIUrl":"https://doi.org/10.1145/2134243.2134253","url":null,"abstract":"The advance of multi-core processors has led to renewed interest in extracting parallelism from programs. It is sometimes useful to know how much parallelism is exploitable in the limit for general programs, to put into perspective the speedups of various parallelisation techniques. Wall's study [19] was one of the first to examine limits of parallelism in detail. We present an extension of Wall's analysis of limits of parallelism, by constructing Dynamic Dependency Graphs from execution traces of a number of benchmark programs, allowing us better visualisation of the types of dependencies which limit parallelism, as well as flexibility in transforming graphs when exploring possible optimisations. Some of the results of Wall and subsequent studies are confirmed, including the fact that average available parallelism is often above 100, but requires effective measures to resolve control dependencies, as well as memory renaming. We also study how certain compiler artifacts affect the limits of parallelism. In particular we show that the use of a spaghetti stack, as a technique to implicitly rename stack memory and break chains on true dependencies on the stack pointer, can lead to a doubling of potential parallelism.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"108 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114819809","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}
引用次数: 24
Test case filtering and prioritization based on coverage of combinations of program elements 测试用例过滤和优先级排序基于程序元素组合的覆盖率
Pub Date : 2009-07-20 DOI: 10.1145/2134243.2134250
Wes Masri, Marwa El-Ghali
Test case filtering is concerned with selecting from a test suite T a subset T' that is capable of revealing most of the defects revealed by T. A smaller T' is desirable since it translates to fewer test runs to be audited manually. Test case prioritization, a related technique, aims at scheduling the tests in T so that the defects are revealed as early as possible when T gets executed. We propose techniques that are based on coverage of combinations of program elements of different types. Clearly, exploring all possible combinations induced at runtime is infeasible, which calls for the use of an approximation algorithm. In this paper we investigate the use of a genetic algorithm to select a number of suitable combinations of program elements to be covered. We compared our technique to other coverage-based techniques that consider program elements of the same type and that do not take into account their combinations; our preliminary results were promising. For example, after filtering the original test suite T for JTidy, the resulting T' revealed all the defects in T and was only 14.1% its size.
测试用例过滤涉及到从测试套件T中选择一个子集T',它能够揭示T所揭示的大多数缺陷。较小的T'是可取的,因为它转换为更少的需要手工审核的测试运行。测试用例优先级排序是一种相关的技术,目的是在T中安排测试,以便在T执行时尽可能早地揭示缺陷。我们提出了基于不同类型的程序元素组合的覆盖范围的技术。显然,在运行时探索所有可能的组合是不可行的,这需要使用近似算法。在本文中,我们研究了使用遗传算法来选择要涵盖的一些合适的程序元素组合。我们将我们的技术与其他基于覆盖率的技术进行了比较,这些技术考虑了相同类型的程序元素,而不考虑它们的组合;我们的初步结果很有希望。例如,在为JTidy过滤原始测试套件T之后,得到的T'显示了T中的所有缺陷,并且只有其大小的14.1%。
{"title":"Test case filtering and prioritization based on coverage of combinations of program elements","authors":"Wes Masri, Marwa El-Ghali","doi":"10.1145/2134243.2134250","DOIUrl":"https://doi.org/10.1145/2134243.2134250","url":null,"abstract":"Test case filtering is concerned with selecting from a test suite T a subset T' that is capable of revealing most of the defects revealed by T. A smaller T' is desirable since it translates to fewer test runs to be audited manually. Test case prioritization, a related technique, aims at scheduling the tests in T so that the defects are revealed as early as possible when T gets executed. We propose techniques that are based on coverage of combinations of program elements of different types. Clearly, exploring all possible combinations induced at runtime is infeasible, which calls for the use of an approximation algorithm. In this paper we investigate the use of a genetic algorithm to select a number of suitable combinations of program elements to be covered. We compared our technique to other coverage-based techniques that consider program elements of the same type and that do not take into account their combinations; our preliminary results were promising. For example, after filtering the original test suite T for JTidy, the resulting T' revealed all the defects in T and was only 14.1% its size.","PeriodicalId":315305,"journal":{"name":"International Workshop on Dynamic Analysis","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126490797","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}
引用次数: 16
期刊
International Workshop on Dynamic Analysis
全部 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