首页 > 最新文献

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

英文 中文
Localizing Faults in SQL Predicates 定位SQL谓词中的错误
Yun Guo, Amihai Motro, Nan Li
Fault localization techniques have been applied to database and data-centric applications that use SQL or SQL-based languages. However, existing techniques can only identify the SQL statements that have faults, but not determine the precise location of the faults within SQL statements. Since SQL statements can be rather complex, programmers are still left with a difficult repair chore. We propose a novel fault localization method to localize multiple types of faults in SQL predicates, that is based on row-based dynamic slicing and delta debugging. Our method was implemented in a tool called ALTAR, and experiments were performed on two publicly available databases. Our method can be compared with existing fault localization techniques when these are applied to "drill-down" in SQL statements. The results showed that ALTAR can discover more types of faults. Moreover, for the type of faults discovered by current methods, ALTAR is more precise.
故障定位技术已应用于使用SQL或基于SQL的语言的数据库和以数据为中心的应用程序。但是,现有的技术只能识别有错误的SQL语句,而不能确定错误在SQL语句中的精确位置。由于SQL语句可能相当复杂,因此程序员仍然面临着困难的修复工作。提出了一种基于行动态切片和增量调试的SQL谓词多类型故障定位方法。我们的方法在一个名为ALTAR的工具中实现,并在两个公开可用的数据库上进行了实验。当现有的故障定位技术应用于SQL语句中的“向下钻取”时,我们的方法可以与这些技术进行比较。结果表明,该方法可以发现更多类型的断层。此外,对于现有方法发现的故障类型,ALTAR更为精确。
{"title":"Localizing Faults in SQL Predicates","authors":"Yun Guo, Amihai Motro, Nan Li","doi":"10.1109/ICST.2017.8","DOIUrl":"https://doi.org/10.1109/ICST.2017.8","url":null,"abstract":"Fault localization techniques have been applied to database and data-centric applications that use SQL or SQL-based languages. However, existing techniques can only identify the SQL statements that have faults, but not determine the precise location of the faults within SQL statements. Since SQL statements can be rather complex, programmers are still left with a difficult repair chore. We propose a novel fault localization method to localize multiple types of faults in SQL predicates, that is based on row-based dynamic slicing and delta debugging. Our method was implemented in a tool called ALTAR, and experiments were performed on two publicly available databases. Our method can be compared with existing fault localization techniques when these are applied to \"drill-down\" in SQL statements. The results showed that ALTAR can discover more types of faults. Moreover, for the type of faults discovered by current methods, ALTAR is more precise.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"118 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128179405","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Are There Any Unit Tests? An Empirical Study on Unit Testing in Open Source Python Projects 有单元测试吗?开源Python项目中单元测试的实证研究
Fabian Trautsch, J. Grabowski
Unit testing is an essential practice in Extreme Programming (XP) and Test-driven Development (TDD) and used in many software lifecycle models. Additionally, a lot of literature deals with this topic. Therefore, it can be expected that it is widely used among developers. Despite its importance, there is no empirical study which investigates, whether unit tests are used by developers in real life projects at all. This paper presents such a study, where we collected and analyzed data from over 70K revisions of 10 different Python projects. Based on two different definitions of unit testing, we calculated the actual number of unit tests and compared it with the expected number (as inferred from the intentions of the developers), had a look at the mocking behavior of developers, and at the evolution of the number of unit tests. Our main findings show, (i) that developers believe that they are developing more unit tests than they actually do, (ii) most projects have a very small amount of unit tests, (iii) developers make use of mocks, but these do not have a significant influence on the number of unit tests, (iv) four different patterns for the evolution of the number of unit tests could be detected, and (v) the used unit test definition has an influence on the results.
单元测试是极限编程(XP)和测试驱动开发(TDD)中的基本实践,并用于许多软件生命周期模型中。此外,很多文献都涉及这个话题。因此,可以预期它将在开发人员中得到广泛的应用。尽管单元测试很重要,但没有实证研究调查开发人员在实际项目中是否使用单元测试。本文介绍了这样一项研究,我们收集并分析了来自10个不同Python项目的70K多个版本的数据。基于单元测试的两种不同定义,我们计算了单元测试的实际数量,并将其与预期数量进行了比较(根据开发人员的意图推断),查看了开发人员的嘲弄行为,以及单元测试数量的演变。我们的主要发现表明,(i)开发人员认为他们开发的单元测试比实际开发的要多,(ii)大多数项目的单元测试数量非常少,(iii)开发人员使用模拟,但这些对单元测试的数量没有显著影响,(iv)可以检测到单元测试数量演变的四种不同模式,以及(v)使用的单元测试定义对结果有影响。
{"title":"Are There Any Unit Tests? An Empirical Study on Unit Testing in Open Source Python Projects","authors":"Fabian Trautsch, J. Grabowski","doi":"10.1109/ICST.2017.26","DOIUrl":"https://doi.org/10.1109/ICST.2017.26","url":null,"abstract":"Unit testing is an essential practice in Extreme Programming (XP) and Test-driven Development (TDD) and used in many software lifecycle models. Additionally, a lot of literature deals with this topic. Therefore, it can be expected that it is widely used among developers. Despite its importance, there is no empirical study which investigates, whether unit tests are used by developers in real life projects at all. This paper presents such a study, where we collected and analyzed data from over 70K revisions of 10 different Python projects. Based on two different definitions of unit testing, we calculated the actual number of unit tests and compared it with the expected number (as inferred from the intentions of the developers), had a look at the mocking behavior of developers, and at the evolution of the number of unit tests. Our main findings show, (i) that developers believe that they are developing more unit tests than they actually do, (ii) most projects have a very small amount of unit tests, (iii) developers make use of mocks, but these do not have a significant influence on the number of unit tests, (iv) four different patterns for the evolution of the number of unit tests could be detected, and (v) the used unit test definition has an influence on the results.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134250938","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
NuSeen: A Tool Framework for the NuSMV Model Checker NuSMV模型检查器的工具框架
Paolo Arcaini, A. Gargantini, E. Riccobene
NuSMV is a well-known tool for system verification that permits to verify both CTL and LTL properties. Although the tool is very powerful, it offers a minimal support for the editing and validation (e.g., by simulation) of models and of requirements specified as temporal properties. In this paper, we propose NuSeen, a framework that assists a designer during the modeling and V&V activities when using NuSMV. In addition to an editor furnished with syntax highlighting, autocompletion, and outline, NuSeen also provides some tools for visualizing the variable dependencies, and graphically visualizing the counterexamples. It helps the designer in validating the model by checking certain qualities like minimality and completeness. Moreover, the framework also provides facilities for model-based testing by means of a test suite generator that is able to generate tests achieving value and decision coverage for NuSMV models.
NuSMV是一个众所周知的系统验证工具,它允许验证CTL和LTL属性。尽管该工具非常强大,但它对模型和指定为时间属性的需求的编辑和验证(例如,通过模拟)提供了最小的支持。在本文中,我们提出了NuSeen,这是一个框架,在使用NuSMV时,在建模和V&V活动中帮助设计师。除了带有语法高亮显示、自动完成和大纲的编辑器之外,NuSeen还提供了一些工具来可视化变量依赖关系,并以图形方式可视化反例。它可以帮助设计师通过检查最小化和完整性等特性来验证模型。此外,该框架还通过测试套件生成器为基于模型的测试提供了便利,该测试套件生成器能够为NuSMV模型生成实现价值和决策覆盖的测试。
{"title":"NuSeen: A Tool Framework for the NuSMV Model Checker","authors":"Paolo Arcaini, A. Gargantini, E. Riccobene","doi":"10.1109/ICST.2017.54","DOIUrl":"https://doi.org/10.1109/ICST.2017.54","url":null,"abstract":"NuSMV is a well-known tool for system verification that permits to verify both CTL and LTL properties. Although the tool is very powerful, it offers a minimal support for the editing and validation (e.g., by simulation) of models and of requirements specified as temporal properties. In this paper, we propose NuSeen, a framework that assists a designer during the modeling and V&V activities when using NuSMV. In addition to an editor furnished with syntax highlighting, autocompletion, and outline, NuSeen also provides some tools for visualizing the variable dependencies, and graphically visualizing the counterexamples. It helps the designer in validating the model by checking certain qualities like minimality and completeness. Moreover, the framework also provides facilities for model-based testing by means of a test suite generator that is able to generate tests achieving value and decision coverage for NuSMV models.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"96 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124484124","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
ATOM: Automatic Maintenance of GUI Test Scripts for Evolving Mobile Applications ATOM:为不断发展的移动应用程序自动维护GUI测试脚本
Xiao Li, N. Chang, Yan Wang, Haohua Huang, Yu Pei, Linzhang Wang, Xuandong Li
The importance of regression testing in assuring the integrity of a program after changes is well recognized. One major obstacle in practicing regression testing is in maintaining tests that become obsolete due to evolved program behavior or specification. For mobile apps, the problem of maintaining obsolete GUI test scripts for regression testing is even more pressing. Mobile apps rely heavily on the correct functioning of their GUIs to compete on the market and provide good user experiences. But on the one hand, GUI tests break easily when changes happen to the GUI, On the other hand, mobile app developers often need to fight for a tight feedback loop and are left with limited time for test maintenance. In this paper, we propose a novel approach, called ATOM, to automatically maintain GUI test scripts of mobile apps for regression testing. ATOM uses an event sequence model to abstract possible event sequences on a GUI and a delta ESM to abstract the changes made to the GUI. Given both models as input, ATOM automatically updates the test scripts written for a base version app to reflect the changes. In an experiment with 22 versions from 11 production Android apps, ATOM updated all the test scripts affected by the version change, the updated scripts achieve over 80% of the coverage by the original scripts on the base version app, all except one set of updated scripts preserve over 60% of the actions in the original test scripts.
回归测试在保证程序变更后的完整性方面的重要性是公认的。实践回归测试的一个主要障碍是维护由于不断发展的程序行为或规范而过时的测试。对于移动应用来说,维护过时的GUI测试脚本以进行回归测试的问题更加紧迫。手机应用在很大程度上依赖于其gui的正确功能,以在市场上竞争并提供良好的用户体验。但一方面,当GUI发生变化时,GUI测试很容易中断,另一方面,手机应用开发者通常需要争取一个紧密的反馈循环,并且留给测试维护的时间有限。在本文中,我们提出了一种新的方法,称为ATOM,来自动维护移动应用程序的GUI测试脚本进行回归测试。ATOM使用事件序列模型抽象GUI上可能的事件序列,并使用增量ESM抽象对GUI所做的更改。给定两个模型作为输入,ATOM自动更新为基本版本应用程序编写的测试脚本,以反映更改。在对11个生产Android应用的22个版本进行的实验中,ATOM更新了所有受版本变更影响的测试脚本,更新后的脚本在基础版本应用上的覆盖率达到原始脚本的80%以上,除了一组更新后的脚本外,其余脚本保留了原始测试脚本中60%以上的动作。
{"title":"ATOM: Automatic Maintenance of GUI Test Scripts for Evolving Mobile Applications","authors":"Xiao Li, N. Chang, Yan Wang, Haohua Huang, Yu Pei, Linzhang Wang, Xuandong Li","doi":"10.1109/ICST.2017.22","DOIUrl":"https://doi.org/10.1109/ICST.2017.22","url":null,"abstract":"The importance of regression testing in assuring the integrity of a program after changes is well recognized. One major obstacle in practicing regression testing is in maintaining tests that become obsolete due to evolved program behavior or specification. For mobile apps, the problem of maintaining obsolete GUI test scripts for regression testing is even more pressing. Mobile apps rely heavily on the correct functioning of their GUIs to compete on the market and provide good user experiences. But on the one hand, GUI tests break easily when changes happen to the GUI, On the other hand, mobile app developers often need to fight for a tight feedback loop and are left with limited time for test maintenance. In this paper, we propose a novel approach, called ATOM, to automatically maintain GUI test scripts of mobile apps for regression testing. ATOM uses an event sequence model to abstract possible event sequences on a GUI and a delta ESM to abstract the changes made to the GUI. Given both models as input, ATOM automatically updates the test scripts written for a base version app to reflect the changes. In an experiment with 22 versions from 11 production Android apps, ATOM updated all the test scripts affected by the version change, the updated scripts achieve over 80% of the coverage by the original scripts on the base version app, all except one set of updated scripts preserve over 60% of the actions in the original test scripts.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"08 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130661436","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}
引用次数: 47
Prevalence of Single-Fault Fixes and Its Impact on Fault Localization 单故障修复的普遍性及其对故障定位的影响
Alexandre Perez, Rui Abreu, Marcelo d’Amorim
Several fault predictors were proposed in the context of Spectrum-based Fault Localization approaches to rank software components in order of suspiciousness of being the root-cause of observed failures. Previous work has also shown that some of the fault predictors (near-)optimally rank software components, provided that there is one fault in the system. Despite this, further work is being spent on creating more complex, computationally expensive, model-based techniques that can handle multiple-faulted scenarios accurately. However, our hypothesis is that when software is being developed, bugs arise one-at-a-time and therefore can be considered as single-faulted scenarios. We describe an approach to mine repositories, find bug-fixes, and catalog them according to the number of faults they fix, to assess the prevalence of single-fault fixes. Our empirical study using 279 open-source projects reveals that there is a prevalence of single-fault fixes, with over 82% of all fixes only eliminating one bug from the system, enabling the use of simpler, (near-)optimal, fault predictors. Moreover, we draw on the practical implications of our findings to influence and set direction for future research.
在基于频谱的故障定位方法的背景下,提出了几种故障预测器,将软件组件按照是否为观察到的故障的根本原因的怀疑程度进行排序。以前的工作也表明,如果系统中存在一个故障,则某些故障预测器(接近)对软件组件进行最佳排序。尽管如此,进一步的工作正在投入到创建更复杂、计算成本更高、基于模型的技术上,这些技术可以准确地处理多故障场景。然而,我们的假设是,在开发软件时,每次出现一个错误,因此可以将其视为单一错误场景。我们描述了一种方法来挖掘存储库,找到bug修复,并根据它们修复的错误数量对它们进行分类,以评估单错误修复的流行程度。我们对279个开源项目的实证研究表明,单故障修复很普遍,超过82%的修复只消除了系统中的一个错误,从而可以使用更简单、(接近)最优的故障预测器。此外,我们利用我们的研究结果的实际意义来影响和确定未来的研究方向。
{"title":"Prevalence of Single-Fault Fixes and Its Impact on Fault Localization","authors":"Alexandre Perez, Rui Abreu, Marcelo d’Amorim","doi":"10.1109/ICST.2017.9","DOIUrl":"https://doi.org/10.1109/ICST.2017.9","url":null,"abstract":"Several fault predictors were proposed in the context of Spectrum-based Fault Localization approaches to rank software components in order of suspiciousness of being the root-cause of observed failures. Previous work has also shown that some of the fault predictors (near-)optimally rank software components, provided that there is one fault in the system. Despite this, further work is being spent on creating more complex, computationally expensive, model-based techniques that can handle multiple-faulted scenarios accurately. However, our hypothesis is that when software is being developed, bugs arise one-at-a-time and therefore can be considered as single-faulted scenarios. We describe an approach to mine repositories, find bug-fixes, and catalog them according to the number of faults they fix, to assess the prevalence of single-fault fixes. Our empirical study using 279 open-source projects reveals that there is a prevalence of single-fault fixes, with over 82% of all fixes only eliminating one bug from the system, enabling the use of simpler, (near-)optimal, fault predictors. Moreover, we draw on the practical implications of our findings to influence and set direction for future research.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123659515","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}
引用次数: 37
System Testing of Timing Requirements Based on Use Cases and Timed Automata 基于用例和时间自动机的定时需求系统测试
Chunhui Wang, F. Pastore, L. Briand
In the context of use-case centric development and requirements-driven testing, this paper addresses the problem of automatically deriving system test cases to verify timing requirements. Inspired by engineering practice in an automotive software development context, we rely on an analyzable form of use case specifications and augment such functional descriptions with timed automata, capturing timing requirements, following a methodology aiming at minimizing modeling overhead. We automate the generation of executable test cases using a test strategy based on maximizing test suite diversity and building over the UPPAAL model checker. Initial empirical results based on an industrial case study provide evidence of the effectiveness of the approach.
在以用例为中心的开发和需求驱动测试的上下文中,本文讨论了自动派生系统测试用例来验证时序需求的问题。受到汽车软件开发环境中的工程实践的启发,我们依赖于用例规范的可分析形式,并使用定时自动机来扩展这样的功能描述,捕获定时需求,遵循旨在最小化建模开销的方法。我们使用基于最大化测试套件多样性和构建UPPAAL模型检查器的测试策略,自动生成可执行的测试用例。基于一个工业案例研究的初步实证结果证明了该方法的有效性。
{"title":"System Testing of Timing Requirements Based on Use Cases and Timed Automata","authors":"Chunhui Wang, F. Pastore, L. Briand","doi":"10.1109/ICST.2017.34","DOIUrl":"https://doi.org/10.1109/ICST.2017.34","url":null,"abstract":"In the context of use-case centric development and requirements-driven testing, this paper addresses the problem of automatically deriving system test cases to verify timing requirements. Inspired by engineering practice in an automotive software development context, we rely on an analyzable form of use case specifications and augment such functional descriptions with timed automata, capturing timing requirements, following a methodology aiming at minimizing modeling overhead. We automate the generation of executable test cases using a test strategy based on maximizing test suite diversity and building over the UPPAAL model checker. Initial empirical results based on an industrial case study provide evidence of the effectiveness of the approach.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"103 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125874317","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
Automated Testing of Definition-Use Data Flow for Multithreaded Programs 多线程程序中定义使用数据流的自动化测试
Xiaodong Zhang, Z. Yang, Q. Zheng, Pei Liu, Jialiang Chang, Yu Hao, Ting Liu
With the advent of multicore processors, there is a trend towards multithreading to take advantage of parallel computing resources. Due to greatly increased complexity, programmers need effective testing methodology that can thoroughly test multithreaded programs. There has been significant progress based on symbolic execution that attempts to exhaustively explore all the intra-thread paths and inter-thread interleavings. However, such testing approach faces two insuperable challenges. Firstly, exploring an astronomically large number of paths and interleavings limits its scalability. Secondly, a path itself does not directly help programmers understand program behavior. In this paper, we propose an alternate testing methodology that focuses on definition-use data flow instead of paths/interleavings. Such approach not only leads to orders of magnitude reduction in testing complexity, but also gives programmers direct help on examining the shared variable usage in a multithreaded program.
随着多核处理器的出现,为了利用并行计算资源,出现了多线程的趋势。由于复杂性的大大增加,程序员需要能够彻底测试多线程程序的有效测试方法。基于符号执行已经取得了重大进展,它试图详尽地探索所有线程内路径和线程间交错。然而,这种测试方法面临着两个不可克服的挑战。首先,探索大量的路径和交错限制了它的可扩展性。其次,路径本身并不能直接帮助程序员理解程序行为。在本文中,我们提出了一种替代测试方法,该方法侧重于定义使用数据流而不是路径/交错。这种方法不仅大大降低了测试的复杂性,而且还为程序员检查多线程程序中共享变量的使用提供了直接的帮助。
{"title":"Automated Testing of Definition-Use Data Flow for Multithreaded Programs","authors":"Xiaodong Zhang, Z. Yang, Q. Zheng, Pei Liu, Jialiang Chang, Yu Hao, Ting Liu","doi":"10.1109/ICST.2017.23","DOIUrl":"https://doi.org/10.1109/ICST.2017.23","url":null,"abstract":"With the advent of multicore processors, there is a trend towards multithreading to take advantage of parallel computing resources. Due to greatly increased complexity, programmers need effective testing methodology that can thoroughly test multithreaded programs. There has been significant progress based on symbolic execution that attempts to exhaustively explore all the intra-thread paths and inter-thread interleavings. However, such testing approach faces two insuperable challenges. Firstly, exploring an astronomically large number of paths and interleavings limits its scalability. Secondly, a path itself does not directly help programmers understand program behavior. In this paper, we propose an alternate testing methodology that focuses on definition-use data flow instead of paths/interleavings. Such approach not only leads to orders of magnitude reduction in testing complexity, but also gives programmers direct help on examining the shared variable usage in a multithreaded program.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"187 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121096166","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
Barista: A Technique for Recording, Encoding, and Running Platform Independent Android Tests Barista:记录、编码和运行独立于平台的Android测试的技术
M. Fazzini, E. N. D. A. Freitas, Shauvik Roy Choudhary, A. Orso
Because mobile apps are extremely popular and often mission critical nowadays, companies invest a great deal of resources in testing the apps they provide to their customers. Testing is particularly important for Android apps, which must run on a multitude of devices and operating system versions. Unfortunately, as we confirmed in many interviews with quality assurance professionals, app testing is today a very human intensive, and therefore tedious and error prone, activity. To address this problem, and better support testing of Android apps, we propose a new technique that allows testers to easily create platform independent test scripts for an app and automatically run the generated test scripts on multiple devices and operating system versions. The technique does so without modifying the app under test or the runtime system, by (1) intercepting the interactions of the tester with the app and (2) providing the tester with an intuitive way to specify expected results that it then encode as test oracles. We implemented our technique in a tool named Barista and used the tool to evaluate the practical usefulness and applicability of our approach. Our results show that Barista (1) can faithfully encode user defined test cases as test scripts with built-in oracles that can run on multiple platforms and (2) outperforms two popular tools with similar functionality. Barista and our experimental infrastructure are publicly available.
由于移动应用现在非常流行,而且往往是关键任务,公司投入了大量资源来测试他们提供给客户的应用。对于Android应用来说,测试尤其重要,因为它必须在多种设备和操作系统版本上运行。不幸的是,正如我们在许多质量保证专业人士的采访中所证实的那样,今天的应用测试是一项非常耗费人力的活动,因此非常乏味且容易出错。为了解决这个问题,并更好地支持Android应用程序的测试,我们提出了一种新技术,允许测试人员轻松地为应用程序创建独立于平台的测试脚本,并自动在多个设备和操作系统版本上运行生成的测试脚本。该技术无需修改被测应用程序或运行时系统,通过(1)拦截测试人员与应用程序的交互,(2)为测试人员提供一种直观的方式来指定预期结果,然后将其编码为测试预言。我们在一个名为Barista的工具中实现了我们的技术,并使用该工具来评估我们方法的实用性和适用性。我们的结果表明,Barista(1)可以忠实地将用户定义的测试用例编码为带有内置oracle的测试脚本,可以在多个平台上运行;(2)优于两种具有类似功能的流行工具。咖啡师和我们的实验基础设施是公开的。
{"title":"Barista: A Technique for Recording, Encoding, and Running Platform Independent Android Tests","authors":"M. Fazzini, E. N. D. A. Freitas, Shauvik Roy Choudhary, A. Orso","doi":"10.1109/ICST.2017.21","DOIUrl":"https://doi.org/10.1109/ICST.2017.21","url":null,"abstract":"Because mobile apps are extremely popular and often mission critical nowadays, companies invest a great deal of resources in testing the apps they provide to their customers. Testing is particularly important for Android apps, which must run on a multitude of devices and operating system versions. Unfortunately, as we confirmed in many interviews with quality assurance professionals, app testing is today a very human intensive, and therefore tedious and error prone, activity. To address this problem, and better support testing of Android apps, we propose a new technique that allows testers to easily create platform independent test scripts for an app and automatically run the generated test scripts on multiple devices and operating system versions. The technique does so without modifying the app under test or the runtime system, by (1) intercepting the interactions of the tester with the app and (2) providing the tester with an intuitive way to specify expected results that it then encode as test oracles. We implemented our technique in a tool named Barista and used the tool to evaluate the practical usefulness and applicability of our approach. Our results show that Barista (1) can faithfully encode user defined test cases as test scripts with built-in oracles that can run on multiple platforms and (2) outperforms two popular tools with similar functionality. Barista and our experimental infrastructure are publicly available.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128750806","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}
引用次数: 54
A Selection Method for Black Box Regression Testing with a Statistically Defined Quality Level 具有统计定义质量水平的黑盒回归测试的选择方法
Ibrahim Alagöz, T. Herpel, R. German
We consider regression testing of safety-critical systems consisting of black-box components. This scenario is common for automotive electronic systems where testing time is expensive and should be reduced without uncontrolled reduction of reliability. This requires a methodology to select test cases from a larger test suite for which a defined quality level of the resulting regression test cycle can be provided. With this in mind, we propose a method to select test cases based on a stochastic model. We are modeling test case failure probabilities as dependent random variables, therefore already observed test results have an influence on the estimation of further test case failure probabilities. Based on an information theoretical approach, we validate the mutual differential information degree between test case failure probabilities and compute a function which returns the risk for not selecting a test case, i.e., the probability of not selecting a failing test case. Depending on the mutual differential information significant reductions of testing time can be achieved while testing reliability is preserved at a quantifiable high level. We will validate theoretically our results and will show in an industrial case study the benefits of our method.
我们考虑由黑盒组件组成的安全关键系统的回归测试。这种情况在汽车电子系统中很常见,因为测试时间昂贵,应该在不失控地降低可靠性的情况下减少测试时间。这需要一种方法来从一个更大的测试套件中选择测试用例,从而为所得到的回归测试周期提供一个定义好的质量水平。考虑到这一点,我们提出了一种基于随机模型选择测试用例的方法。我们将测试用例失败概率建模为相关的随机变量,因此已经观察到的测试结果对进一步的测试用例失败概率的估计有影响。基于信息论的方法,我们验证了测试用例失败概率之间的互差信息程度,并计算了一个函数,该函数返回了未选择测试用例的风险,即未选择失败测试用例的概率。根据互差信息,可以在测试可靠性保持在可量化的高水平的同时显著减少测试时间。我们将从理论上验证我们的结果,并将在一个工业案例研究中展示我们的方法的好处。
{"title":"A Selection Method for Black Box Regression Testing with a Statistically Defined Quality Level","authors":"Ibrahim Alagöz, T. Herpel, R. German","doi":"10.1109/ICST.2017.18","DOIUrl":"https://doi.org/10.1109/ICST.2017.18","url":null,"abstract":"We consider regression testing of safety-critical systems consisting of black-box components. This scenario is common for automotive electronic systems where testing time is expensive and should be reduced without uncontrolled reduction of reliability. This requires a methodology to select test cases from a larger test suite for which a defined quality level of the resulting regression test cycle can be provided. With this in mind, we propose a method to select test cases based on a stochastic model. We are modeling test case failure probabilities as dependent random variables, therefore already observed test results have an influence on the estimation of further test case failure probabilities. Based on an information theoretical approach, we validate the mutual differential information degree between test case failure probabilities and compute a function which returns the risk for not selecting a test case, i.e., the probability of not selecting a failing test case. Depending on the mutual differential information significant reductions of testing time can be achieved while testing reliability is preserved at a quantifiable high level. We will validate theoretically our results and will show in an industrial case study the benefits of our method.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124022562","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
TITAN: Test Suite Optimization for Highly Configurable Software TITAN:高度可配置软件的测试套件优化
D. Marijan, Marius Liaaen, A. Gotlieb, S. Sen, Carlo Ieva
Exhaustive testing of highly configurable software developed in continuous integration is rarely feasible in practice due to the configuration space of exponential size on the one hand, and strict time constraints on the other. This entails using selective testing techniques to determine the most failure-inducing test cases, conforming to highly-constrained time budget. These challenges have been well recognized by researchers, such that many different techniques have been proposed. In practice, however, there is a lack of efficient tools able to reduce high testing effort, without compromising software quality. In this paper we propose a test suite optimization technology TITAN, which increases the time-and cost-efficiency of testing highly configurable software developed in continuous integration. The technology implements practical test prioritization and minimization techniques, and provides test traceability and visualization for improving the quality of testing. We present the TITAN tool and discuss a set of methodological and technological challenges we have faced during TITAN development. We evaluate TITAN in testing of Cisco's highly configurable software with frequent high quality releases, and demonstrate the benefit of the approach in such a complex industry domain.
对持续集成中开发的高可配置软件进行穷举测试在实践中很少可行,一方面是由于配置空间的指数大小,另一方面是由于严格的时间限制。这需要使用选择性测试技术来确定最容易导致失败的测试用例,并遵守高度受限的时间预算。研究人员已经充分认识到这些挑战,因此提出了许多不同的技术。然而,在实践中,缺乏有效的工具能够减少高测试工作,而不影响软件质量。在本文中,我们提出了一种测试套件优化技术TITAN,它增加了测试在持续集成中开发的高度可配置软件的时间和成本效率。该技术实现了实用的测试优先级和最小化技术,并为提高测试质量提供了测试可追溯性和可视化。我们介绍了TITAN工具,并讨论了我们在TITAN开发过程中面临的一系列方法和技术挑战。我们通过对思科高可配置软件的频繁高质量发布测试来评估TITAN,并在如此复杂的行业领域中展示了该方法的好处。
{"title":"TITAN: Test Suite Optimization for Highly Configurable Software","authors":"D. Marijan, Marius Liaaen, A. Gotlieb, S. Sen, Carlo Ieva","doi":"10.1109/ICST.2017.60","DOIUrl":"https://doi.org/10.1109/ICST.2017.60","url":null,"abstract":"Exhaustive testing of highly configurable software developed in continuous integration is rarely feasible in practice due to the configuration space of exponential size on the one hand, and strict time constraints on the other. This entails using selective testing techniques to determine the most failure-inducing test cases, conforming to highly-constrained time budget. These challenges have been well recognized by researchers, such that many different techniques have been proposed. In practice, however, there is a lack of efficient tools able to reduce high testing effort, without compromising software quality. In this paper we propose a test suite optimization technology TITAN, which increases the time-and cost-efficiency of testing highly configurable software developed in continuous integration. The technology implements practical test prioritization and minimization techniques, and provides test traceability and visualization for improving the quality of testing. We present the TITAN tool and discuss a set of methodological and technological challenges we have faced during TITAN development. We evaluate TITAN in testing of Cisco's highly configurable software with frequent high quality releases, and demonstrate the benefit of the approach in such a complex industry domain.","PeriodicalId":112258,"journal":{"name":"2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)","volume":"66 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128642741","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}
引用次数: 23
期刊
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