首页 > 最新文献

2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)最新文献

英文 中文
Taming Coverage Criteria Heterogeneity with LTest 用LTest驯服覆盖标准的异质性
M. Marcozzi, Sébastien Bardin, Mickaël Delahaye, N. Kosmatov, V. Prevosto
Automated white-box testing is a major issue in software engineering. In previous work, we introduced LTest, a generic and integrated toolkit for automated white-box testing of C programs. LTest supports a broad class of coverage criteria in a unified way (through the label specification mechanism) and covers most major parts of the testing process – including coverage measurement, test generation and detection of infeasible test objectives. However, the original version of LTest was unable to handle several major classes of coverage criteria, such as MCDC or dataflow criteria. Moreover, its practical applicability remained barely assessed. In this work, we present a significantly extended version of LTest that supports almost all existing testing criteria, including MCDC and some software security properties, through a native support of recently proposed hyperlabels. We also provide a more realistic view on the practical applicability of the extended tool, with experiments assessing its efficiency and scalability on real-world programs.
自动化白盒测试是软件工程中的一个主要问题。在之前的工作中,我们介绍了LTest,这是一个通用的集成工具包,用于C程序的自动白盒测试。LTest以统一的方式(通过标签规范机制)支持广泛的覆盖标准,并涵盖测试过程的大多数主要部分——包括覆盖度量、测试生成和不可行的测试目标的检测。然而,LTest的原始版本无法处理几种主要的覆盖标准,例如MCDC或数据流标准。此外,它的实际适用性几乎没有得到评估。在这项工作中,我们提出了一个显著扩展的LTest版本,它支持几乎所有现有的测试标准,包括MCDC和一些软件安全属性,通过对最近提出的超标签的本地支持。我们还提供了一个关于扩展工具的实际适用性的更现实的观点,通过实验评估其在现实世界程序中的效率和可扩展性。
{"title":"Taming Coverage Criteria Heterogeneity with LTest","authors":"M. Marcozzi, Sébastien Bardin, Mickaël Delahaye, N. Kosmatov, V. Prevosto","doi":"10.1109/ICST.2017.57","DOIUrl":"https://doi.org/10.1109/ICST.2017.57","url":null,"abstract":"Automated white-box testing is a major issue in software engineering. In previous work, we introduced LTest, a generic and integrated toolkit for automated white-box testing of C programs. LTest supports a broad class of coverage criteria in a unified way (through the label specification mechanism) and covers most major parts of the testing process – including coverage measurement, test generation and detection of infeasible test objectives. However, the original version of LTest was unable to handle several major classes of coverage criteria, such as MCDC or dataflow criteria. Moreover, its practical applicability remained barely assessed. In this work, we present a significantly extended version of LTest that supports almost all existing testing criteria, including MCDC and some software security properties, through a native support of recently proposed hyperlabels. We also provide a more realistic view on the practical applicability of the extended tool, with experiments assessing its efficiency and scalability on real-world programs.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129065459","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Mining Sandboxes for Linux Containers 为Linux容器挖掘沙箱
Zhiyuan Wan, D. Lo, Xin Xia, Liang Cai, Shanping Li
A container is a group of processes isolated from other groups via distinct kernel namespaces and resource allocation quota. Attacks against containers often leverage kernel exploits through system call interface. In this paper, we present an approach that mines sandboxes for containers. We first explore the behaviors of a container by leveraging automatic testing, and extract the set of system calls accessed during testing. The set of system calls then results as a sandbox of the container. The mined sandbox restricts the container's access to system calls which are not seen during testing and thus reduces the attack surface. In the experiment, our approach requires less than eleven minutes to mine sandbox for each of the containers. The enforcement of mined sandboxes does not impact the regular functionality of a container and incurs low performance overhead.
容器是一组通过不同的内核名称空间和资源分配配额与其他组隔离的进程。对容器的攻击通常通过系统调用接口利用内核漏洞。在本文中,我们提出了一种挖掘容器沙箱的方法。我们首先通过利用自动测试来探索容器的行为,并提取在测试期间访问的系统调用集。然后,系统调用集作为容器的沙箱产生。挖掘的沙箱限制了容器对测试期间未看到的系统调用的访问,从而减少了攻击面。在实验中,我们的方法需要不到11分钟的时间来挖掘每个容器的沙盒。挖掘沙箱的实施不会影响容器的常规功能,并且产生较低的性能开销。
{"title":"Mining Sandboxes for Linux Containers","authors":"Zhiyuan Wan, D. Lo, Xin Xia, Liang Cai, Shanping Li","doi":"10.1109/ICST.2017.16","DOIUrl":"https://doi.org/10.1109/ICST.2017.16","url":null,"abstract":"A container is a group of processes isolated from other groups via distinct kernel namespaces and resource allocation quota. Attacks against containers often leverage kernel exploits through system call interface. In this paper, we present an approach that mines sandboxes for containers. We first explore the behaviors of a container by leveraging automatic testing, and extract the set of system calls accessed during testing. The set of system calls then results as a sandbox of the container. The mined sandbox restricts the container's access to system calls which are not seen during testing and thus reduces the attack surface. In the experiment, our approach requires less than eleven minutes to mine sandbox for each of the containers. The enforcement of mined sandboxes does not impact the regular functionality of a container and incurs low performance overhead.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116768658","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}
引用次数: 31
Overview of the ICST International Software Testing Contest ICST国际软件测试大赛概述
Emil Alégroth, Shinsuke Matsuki, T. Vos, Kinji Akemine
In the software testing contest, practitioners and researcher's are invited to test their test approaches against similar approaches to evaluate pros and cons and which is perceivably the best. The 2017 iteration of the contest focused on Graphical User Interface-driven testing, which was evaluated on the testing tool TESTONA. The winner of the competition was announced at the closing ceremony of the international conference on software testing (ICST), 2017.
在软件测试竞赛中,实践者和研究人员被邀请将他们的测试方法与类似的方法进行比较,以评估优缺点,并确定哪一个是最好的。2017年的比赛侧重于图形用户界面驱动的测试,并在测试工具TESTONA上进行了评估。在2017年国际软件测试会议(ICST)的闭幕式上宣布了比赛的获胜者。
{"title":"Overview of the ICST International Software Testing Contest","authors":"Emil Alégroth, Shinsuke Matsuki, T. Vos, Kinji Akemine","doi":"10.1109/ICST.2017.67","DOIUrl":"https://doi.org/10.1109/ICST.2017.67","url":null,"abstract":"In the software testing contest, practitioners and researcher's are invited to test their test approaches against similar approaches to evaluate pros and cons and which is perceivably the best. The 2017 iteration of the contest focused on Graphical User Interface-driven testing, which was evaluated on the testing tool TESTONA. The winner of the competition was announced at the closing ceremony of the international conference on software testing (ICST), 2017.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117152614","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
Information Needs for Validating Evolving Software Systems: An Exploratory Study at Google 验证不断发展的软件系统的信息需求:在谷歌的探索性研究
A. Al-Nayeem, Krzysztof Ostrowski, Sebastian Pueblas, Christophe Restif, Sai Zhang
Software evolves continuously. Its behavior must be validated by engineers who perform daily development and maintenance tasks. However, despite its high importance, information needs for validating evolving software has not been systematically studied in an industrial setting. Such lack of empirical knowledge hinders attempts to understand this fundamental practice and improve the corresponding tool support. This paper presents a study on 194 Site Reliability Engineers (SREs) at Google to explore their information needs. The results suggest several directions where software engineering researchers may consider putting effort to develop new techniques and tool support that matter to practitioners.
软件不断发展。它的行为必须由执行日常开发和维护任务的工程师验证。然而,尽管它非常重要,验证不断发展的软件的信息需求还没有在工业环境中系统地研究过。这种经验知识的缺乏阻碍了理解这一基本实践和改进相应工具支持的尝试。本文对Google的194名站点可靠性工程师(SREs)进行了一项研究,以探讨他们的信息需求。结果提出了几个方向,软件工程研究人员可以考虑投入精力开发对实践者重要的新技术和工具支持。
{"title":"Information Needs for Validating Evolving Software Systems: An Exploratory Study at Google","authors":"A. Al-Nayeem, Krzysztof Ostrowski, Sebastian Pueblas, Christophe Restif, Sai Zhang","doi":"10.1109/ICST.2017.64","DOIUrl":"https://doi.org/10.1109/ICST.2017.64","url":null,"abstract":"Software evolves continuously. Its behavior must be validated by engineers who perform daily development and maintenance tasks. However, despite its high importance, information needs for validating evolving software has not been systematically studied in an industrial setting. Such lack of empirical knowledge hinders attempts to understand this fundamental practice and improve the corresponding tool support. This paper presents a study on 194 Site Reliability Engineers (SREs) at Google to explore their information needs. The results suggest several directions where software engineering researchers may consider putting effort to develop new techniques and tool support that matter to practitioners.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116263428","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
JavaScript: The (Un)Covered Parts JavaScript:(未)覆盖部分
A. M. Fard, A. Mesbah
Testing JavaScript code is important. JavaScript has grown to be among the most popular programming languages and it is extensively used to create web applications both on the client and server. We present the first empirical study of JavaScript tests to characterize their prevalence, quality metrics (e.g. code coverage), and shortcomings. We perform our study across a representative corpus of 373 JavaScript projects, with over 5.4 million lines of JavaScript code. Our results show that 22% of the studied subjects do not have test code. About 40% of projects with JavaScript at client-side do not have a test, while this is only about 3% for the purely server-side JavaScript projects. Also tests for server-side code have high quality (in terms of code coverage, test code ratio, test commit ratio, and average number of assertions per test), while tests for client-side code have moderate to low quality. In general, tests written in Mocha, Tape, Tap, and Nodeunit frameworks have high quality and those written without using any framework have low quality. We scrutinize the (un)covered parts of the code under test to find out root causes for the uncovered code. Our results show that JavaScript tests lack proper coverage for event-dependent callbacks (36%), asynchronous callbacks (53%), and DOM-related code (63%). We believe that it is worthwhile for the developer and research community to focus on testing techniques and tools to achieve better coverage for difficult to cover JavaScript code.
测试JavaScript代码很重要。JavaScript已经成长为最流行的编程语言之一,它被广泛用于在客户端和服务器端创建web应用程序。我们提出了第一个JavaScript测试的实证研究,以描述它们的流行程度、质量指标(例如代码覆盖率)和缺点。我们对373个JavaScript项目的代表性语料库进行了研究,其中包含超过540万行JavaScript代码。我们的结果显示22%的研究对象没有测试代码。在客户端使用JavaScript的项目中,大约40%没有测试,而在纯服务器端JavaScript项目中,这一比例仅为3%。此外,服务器端代码的测试具有高质量(在代码覆盖率、测试代码比率、测试提交比率和每个测试的平均断言数量方面),而客户端代码的测试具有中等到低质量。一般来说,用Mocha、Tape、Tap和Nodeunit框架编写的测试质量高,而不使用任何框架编写的测试质量低。我们仔细检查被测试代码的(未)覆盖部分,以找出未覆盖代码的根本原因。我们的结果表明,JavaScript测试缺乏对事件相关回调(36%)、异步回调(53%)和dom相关代码(63%)的适当覆盖。我们相信开发人员和研究社区将重点放在测试技术和工具上,以更好地覆盖难以覆盖的JavaScript代码,这是值得的。
{"title":"JavaScript: The (Un)Covered Parts","authors":"A. M. Fard, A. Mesbah","doi":"10.1109/ICST.2017.28","DOIUrl":"https://doi.org/10.1109/ICST.2017.28","url":null,"abstract":"Testing JavaScript code is important. JavaScript has grown to be among the most popular programming languages and it is extensively used to create web applications both on the client and server. We present the first empirical study of JavaScript tests to characterize their prevalence, quality metrics (e.g. code coverage), and shortcomings. We perform our study across a representative corpus of 373 JavaScript projects, with over 5.4 million lines of JavaScript code. Our results show that 22% of the studied subjects do not have test code. About 40% of projects with JavaScript at client-side do not have a test, while this is only about 3% for the purely server-side JavaScript projects. Also tests for server-side code have high quality (in terms of code coverage, test code ratio, test commit ratio, and average number of assertions per test), while tests for client-side code have moderate to low quality. In general, tests written in Mocha, Tape, Tap, and Nodeunit frameworks have high quality and those written without using any framework have low quality. We scrutinize the (un)covered parts of the code under test to find out root causes for the uncovered code. Our results show that JavaScript tests lack proper coverage for event-dependent callbacks (36%), asynchronous callbacks (53%), and DOM-related code (63%). We believe that it is worthwhile for the developer and research community to focus on testing techniques and tools to achieve better coverage for difficult to cover JavaScript code.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"61 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114648229","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}
引用次数: 25
IPA: Error Propagation Analysis of Multi-Threaded Programs Using Likely Invariants 使用可能不变量的多线程程序的错误传播分析
Abraham Chan, Stefan Winter, Habib Saissi, K. Pattabiraman, N. Suri
Error Propagation Analysis (EPA) is a technique forunderstanding how errors affect a program's execution and resultin program failures. For this purpose, EPA usually compares thetraces of a fault-free (golden) run with those from a faulty run ofthe program. This makes existing EPA approaches brittle for multithreadedprograms, which do not typically have a deterministicgolden run. In this paper, we study the use of likely invariantsgenerated by automated approaches as alternatives for goldenrun based EPA in multithreaded programs. We present InvariantPropagation Analysis (IPA), an approach and a framework forautomatically deriving invariants for multithreaded programs, and using the invariants for EPA. We evaluate the invariantsderived by IPA in terms of their coverage for different faulttypes across six representative programs through fault injectionexperiments. We find that stable invariants can be inferred in allsix programs, although their coverage of faults depends on theapplication and the fault type.
错误传播分析(EPA)是一种了解错误如何影响程序执行并导致程序失败的技术。为此,EPA通常会将无故障(黄金)运行的痕迹与程序故障运行的痕迹进行比较。这使得现有的EPA方法对于多线程程序来说很脆弱,因为多线程程序通常没有确定的黄金运行期。在本文中,我们研究了在多线程程序中使用由自动化方法生成的可能不变量作为基于金运行的EPA的替代方案。我们提出了不变量传播分析(IPA),这是一种自动推导多线程程序的不变量的方法和框架,并将不变量用于EPA。通过断层注入实验,我们评估了IPA导出的不变量在6个代表性方案中对不同断层类型的覆盖范围。我们发现在所有六个程序中都可以推断出稳定不变量,尽管它们的错误覆盖范围取决于应用程序和错误类型。
{"title":"IPA: Error Propagation Analysis of Multi-Threaded Programs Using Likely Invariants","authors":"Abraham Chan, Stefan Winter, Habib Saissi, K. Pattabiraman, N. Suri","doi":"10.1109/ICST.2017.24","DOIUrl":"https://doi.org/10.1109/ICST.2017.24","url":null,"abstract":"Error Propagation Analysis (EPA) is a technique forunderstanding how errors affect a program's execution and resultin program failures. For this purpose, EPA usually compares thetraces of a fault-free (golden) run with those from a faulty run ofthe program. This makes existing EPA approaches brittle for multithreadedprograms, which do not typically have a deterministicgolden run. In this paper, we study the use of likely invariantsgenerated by automated approaches as alternatives for goldenrun based EPA in multithreaded programs. We present InvariantPropagation Analysis (IPA), an approach and a framework forautomatically deriving invariants for multithreaded programs, and using the invariants for EPA. We evaluate the invariantsderived by IPA in terms of their coverage for different faulttypes across six representative programs through fault injectionexperiments. We find that stable invariants can be inferred in allsix programs, although their coverage of faults depends on theapplication and the fault type.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117096141","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Model-Based API Testing of Apache ZooKeeper 基于模型的Apache ZooKeeper API测试
Cyrille Artho, Quentin Gros, Guillaume Rousset, Kazuaki Banzai, Lei Ma, Takashi Kitamura, M. Hagiya, Yoshinori Tanabe, M. Yamamoto
Apache ZooKeeper is a distributed data storage that is highly concurrent and asynchronous due to network communication, testing such a system is very challenging. Our solution using the tool "Modbat" generates test cases for concurrent client sessions, and processes results from synchronous and asynchronous callbacks. We use an embedded model checker to compute the test oracle for non-deterministic outcomes, the oracle model evolves dynamically with each new test step. Our work has detected multiple previously unknown defects in ZooKeeper. Finally, a thorough coverage evaluation of the core classes show how code and branch coverage strongly relate to feature coverage in the model, and hence modeling effort.
Apache ZooKeeper是一种分布式数据存储,由于网络通信,它是高度并发和异步的,测试这样的系统是非常具有挑战性的。我们的解决方案使用工具“Modbat”为并发客户端会话生成测试用例,并处理来自同步和异步回调的结果。我们使用嵌入式模型检查器来计算不确定结果的测试oracle, oracle模型随着每个新的测试步骤动态发展。我们的工作已经在ZooKeeper中发现了多个以前未知的缺陷。最后,对核心类进行全面的覆盖率评估,显示代码和分支覆盖率如何与模型中的特性覆盖率紧密相关,从而与建模工作密切相关。
{"title":"Model-Based API Testing of Apache ZooKeeper","authors":"Cyrille Artho, Quentin Gros, Guillaume Rousset, Kazuaki Banzai, Lei Ma, Takashi Kitamura, M. Hagiya, Yoshinori Tanabe, M. Yamamoto","doi":"10.1109/ICST.2017.33","DOIUrl":"https://doi.org/10.1109/ICST.2017.33","url":null,"abstract":"Apache ZooKeeper is a distributed data storage that is highly concurrent and asynchronous due to network communication, testing such a system is very challenging. Our solution using the tool \"Modbat\" generates test cases for concurrent client sessions, and processes results from synchronous and asynchronous callbacks. We use an embedded model checker to compute the test oracle for non-deterministic outcomes, the oracle model evolves dynamically with each new test step. Our work has detected multiple previously unknown defects in ZooKeeper. Finally, a thorough coverage evaluation of the core classes show how code and branch coverage strongly relate to feature coverage in the model, and hence modeling effort.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126825071","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}
引用次数: 29
Accelerating Test Automation through a Domain Specific Language 通过领域特定语言加速测试自动化
Anurag Dwarakanath, Dipin Era, A. Priyadarshi, Neville Dubash, Sanjay Podder
Test automation involves the automatic execution of test scripts instead of being manually run. This significantly reduces the amount of manual effort needed and thus is of great interest to the software testing industry. There are two key problems in the existing tools & methods for test automation - a) Creating an automation test script is essentially a code development task, which most testers are not trained on, and b) the automation test script is seldom readable, making the task of maintenance an effort intensive process. We present the Accelerating Test Automation Platform (ATAP) which is aimed at making test automation accessible to non-programmers. ATAP allows the creation of an automation test script through a domain specific language based on English. The English-like test scripts are automatically converted to machine executable code using Selenium WebDriver. ATAP's English-like test script makes it easy for non-programmers to author. The functional flow of an ATAP script is easy to understand as well thus making maintenance simpler (you can understand the flow of the test script when you revisit it many months later). ATAP has been built around the Eclipse ecosystem and has been used in a real-life testing project. We present the details of the implementation of ATAP and the results from its usage in practice.
测试自动化包括测试脚本的自动执行,而不是手工运行。这大大减少了所需的手工工作量,因此对软件测试行业来说是非常有趣的。在现有的自动化测试工具和方法中存在两个关键问题——a)创建自动化测试脚本本质上是一个代码开发任务,大多数测试人员都没有接受过培训;b)自动化测试脚本很少可读,使得维护任务成为一个工作量密集的过程。我们提出了加速测试自动化平台(ATAP),它旨在使非程序员也能访问测试自动化。ATAP允许通过基于英语的领域特定语言创建自动化测试脚本。使用Selenium WebDriver将类似英语的测试脚本自动转换为机器可执行代码。ATAP的类似英语的测试脚本使得非程序员也可以轻松编写。ATAP脚本的功能流也很容易理解,从而使维护变得更简单(几个月后重新访问测试脚本时,您可以理解测试脚本的流程)。ATAP是围绕Eclipse生态系统构建的,并已在实际测试项目中使用。我们详细介绍了ATAP的实现和在实践中使用的结果。
{"title":"Accelerating Test Automation through a Domain Specific Language","authors":"Anurag Dwarakanath, Dipin Era, A. Priyadarshi, Neville Dubash, Sanjay Podder","doi":"10.1109/ICST.2017.52","DOIUrl":"https://doi.org/10.1109/ICST.2017.52","url":null,"abstract":"Test automation involves the automatic execution of test scripts instead of being manually run. This significantly reduces the amount of manual effort needed and thus is of great interest to the software testing industry. There are two key problems in the existing tools & methods for test automation - a) Creating an automation test script is essentially a code development task, which most testers are not trained on, and b) the automation test script is seldom readable, making the task of maintenance an effort intensive process. We present the Accelerating Test Automation Platform (ATAP) which is aimed at making test automation accessible to non-programmers. ATAP allows the creation of an automation test script through a domain specific language based on English. The English-like test scripts are automatically converted to machine executable code using Selenium WebDriver. ATAP's English-like test script makes it easy for non-programmers to author. The functional flow of an ATAP script is easy to understand as well thus making maintenance simpler (you can understand the flow of the test script when you revisit it many months later). ATAP has been built around the Eclipse ecosystem and has been used in a real-life testing project. We present the details of the implementation of ATAP and the results from its usage in practice.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"207 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123222680","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
Verifying Concurrent Programs Using Contracts 使用契约验证并发程序
Ricardo J. Dias, Carla Ferreira, Jan Fiedor, João M. Lourenço, A. Smrčka, Diogo Sousa, Tomáš Vojnar
The central notion of this paper is that of contracts for concurrency, allowing one to capture the expected atomicity of sequences of method or service calls in a concurrent program. The contracts may be either extracted automatically from the source code, or provided by developers of libraries or software modules to reflect their expected usage in a concurrent setting. We start by extending the so-far considered notion of contracts for concurrency in several ways, improving their expressiveness and enhancing their applicability in practice. Then, we propose two complementary analyses—a static and a dynamic one—to verify programs against the extended contracts. We have implemented both approaches and present promising experimental results from their application on various programs, including real-world ones where our approach unveiled previously unknown errors.
本文的中心概念是并发性的契约,允许捕获并发程序中方法或服务调用序列的预期原子性。契约可以从源代码中自动提取,也可以由库或软件模块的开发人员提供,以反映它们在并发设置中的预期使用情况。首先,我们将以几种方式扩展迄今为止考虑过的用于并发性的契约概念,改进它们的表达性并增强它们在实践中的适用性。然后,我们提出了两种互补分析——静态分析和动态分析——来根据扩展契约验证程序。我们已经实现了这两种方法,并从它们在各种程序中的应用中展示了有希望的实验结果,包括我们的方法揭示了以前未知的错误的现实世界。
{"title":"Verifying Concurrent Programs Using Contracts","authors":"Ricardo J. Dias, Carla Ferreira, Jan Fiedor, João M. Lourenço, A. Smrčka, Diogo Sousa, Tomáš Vojnar","doi":"10.1109/ICST.2017.25","DOIUrl":"https://doi.org/10.1109/ICST.2017.25","url":null,"abstract":"The central notion of this paper is that of contracts for concurrency, allowing one to capture the expected atomicity of sequences of method or service calls in a concurrent program. The contracts may be either extracted automatically from the source code, or provided by developers of libraries or software modules to reflect their expected usage in a concurrent setting. We start by extending the so-far considered notion of contracts for concurrency in several ways, improving their expressiveness and enhancing their applicability in practice. Then, we propose two complementary analyses—a static and a dynamic one—to verify programs against the extended contracts. We have implemented both approaches and present promising experimental results from their application on various programs, including real-world ones where our approach unveiled previously unknown errors.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129053746","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Ariadne: Hybridizing Directed Model Checking and Static Analysis 阿里阿德涅:杂交定向模型检验和静态分析
Reed Milewicz, P. Pirkelbauer
While directed model checking has proven to be a powerful tool in the fight against concurrency bugs, scalability remains a concern due to the combinatorial explosion in size of the state space. Overcoming that combinatorial explosion requires the selection and/or parameterization of meta*-heuristics, but we are left with a persistent problem of having to provide or compute specialized knowledge of the program under consideration, and this limits the practical value of the technique. To circumvent that, this paper investigates directed model checking as a platform for the synthesis of results from other analyses. We introduce an open-source tool, Ariadne, which translates reports of suspected race conditions of a static analyzer (Petablox) to instrumentation using a source-to-source compiler (ROSE) that can be exploited by a model checker (Java Pathfinder). We detail the algorithm used, present experimental results, and outline directions for future research.
虽然定向模型检查已被证明是对抗并发错误的强大工具,但由于状态空间大小的组合爆炸,可伸缩性仍然是一个问题。克服这种组合爆炸需要元启发式的选择和/或参数化,但是我们留下了必须提供或计算所考虑的程序的专业知识的持久问题,这限制了该技术的实用价值。为了避免这种情况,本文研究了定向模型检查作为综合其他分析结果的平台。我们介绍了一个开源工具Ariadne,它使用一个可以被模型检查器(Java Pathfinder)利用的源到源编译器(ROSE)将静态分析器(Petablox)的可疑竞争条件报告转换为检测工具。我们详细介绍了所使用的算法,给出了实验结果,并概述了未来的研究方向。
{"title":"Ariadne: Hybridizing Directed Model Checking and Static Analysis","authors":"Reed Milewicz, P. Pirkelbauer","doi":"10.1109/ICST.2017.49","DOIUrl":"https://doi.org/10.1109/ICST.2017.49","url":null,"abstract":"While directed model checking has proven to be a powerful tool in the fight against concurrency bugs, scalability remains a concern due to the combinatorial explosion in size of the state space. Overcoming that combinatorial explosion requires the selection and/or parameterization of meta*-heuristics, but we are left with a persistent problem of having to provide or compute specialized knowledge of the program under consideration, and this limits the practical value of the technique. To circumvent that, this paper investigates directed model checking as a platform for the synthesis of results from other analyses. We introduce an open-source tool, Ariadne, which translates reports of suspected race conditions of a static analyzer (Petablox) to instrumentation using a source-to-source compiler (ROSE) that can be exploited by a model checker (Java Pathfinder). We detail the algorithm used, present experimental results, and outline directions for future research.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"54 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127096497","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
期刊
2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)
全部 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