1,396 research outputs found
Semantics-based Automated Web Testing
We present TAO, a software testing tool performing automated test and oracle
generation based on a semantic approach. TAO entangles grammar-based test
generation with automated semantics evaluation using a denotational semantics
framework. We show how TAO can be incorporated with the Selenium automation
tool for automated web testing, and how TAO can be further extended to support
automated delta debugging, where a failing web test script can be
systematically reduced based on grammar-directed strategies. A real-life
parking website is adopted throughout the paper to demonstrate the effectivity
of our semantics-based web testing approach.Comment: In Proceedings WWV 2015, arXiv:1508.0338
Spectrum-based fault localization in software product lines
Context: Software Product Line (SPL) testing is challenging mainly due to the potentially huge number of products under test.
Most of the research on this field focuses on making testing affordable by selecting a representative subset of products to be
tested. However, once the tests are executed and some failures revealed, debugging is a cumbersome and time consuming task
due to difficulty to localize and isolate the faulty features in the SPL.
Objective: This paper presents a debugging approach for the localization of bugs in SPLs.
Method: The proposed approach works in two steps. First, the features of the SPL are ranked according to their suspiciousness
(i.e., likelihood of being faulty) using spectrum-based localization techniques. Then, a novel fault isolation approach is used to
generate valid products of minimum size containing the most suspicious features, helping to isolate the cause of failures.
Results: For the evaluation of our approach, we compared ten suspiciousness techniques on nine SPLs of different sizes. The
results reveal that three of the techniques (Tarantula, Kulcynski2 and Ample2) stand out over the rest, showing a stable
performance with different types of faults and product suite sizes. By using these metrics, faults were localized by examining
between 0.1% and 14.4% of the feature sets.
Conclusion: Our results show that the proposed approach is effective at locating bugs in SPLs, serving as a helpful complement for
the numerous approaches for testing SPLs.Ministerio de EconomÃa y Competitividad TIN2015-70560-R (BELI)Junta de AndalucÃa P12-TIC-1867 (COPAS
Dagstuhl Reports : Volume 1, Issue 2, February 2011
Online Privacy: Towards Informational Self-Determination on the Internet (Dagstuhl Perspectives Workshop 11061) : Simone Fischer-Hübner, Chris Hoofnagle, Kai Rannenberg, Michael Waidner, Ioannis Krontiris and Michael Marhöfer Self-Repairing Programs (Dagstuhl Seminar 11062) : Mauro Pezzé, Martin C. Rinard, Westley Weimer and Andreas Zeller Theory and Applications of Graph Searching Problems (Dagstuhl Seminar 11071) : Fedor V. Fomin, Pierre Fraigniaud, Stephan Kreutzer and Dimitrios M. Thilikos Combinatorial and Algorithmic Aspects of Sequence Processing (Dagstuhl Seminar 11081) : Maxime Crochemore, Lila Kari, Mehryar Mohri and Dirk Nowotka Packing and Scheduling Algorithms for Information and Communication Services (Dagstuhl Seminar 11091) Klaus Jansen, Claire Mathieu, Hadas Shachnai and Neal E. Youn
Cause reduction for quick testing
pre-printAbstract-In random testing, it is often desirable to produce a "quick test" - an extremely inexpensive test suite that can serve as a frequently applied regression and allow the benefits of random testing to be obtained even in very slow or oversubscribed test environments. Delta debugging is an algorithm that, given a failing test case, produces a smaller test case that also fails, and typically executes much more quickly. Delta debugging of random tests can produce effective regression suites for previously detected faults, but such suites often have little power for detecting new faults, and in some cases provide poor code coverage. This paper proposes extending delta debugging by simplifying tests with respect to code coverage, an instance of a generalization of delta debugging we call cause reduction. We show that test suites reduced in this fashion can provide very effective quick tests for real-world programs. For Mozilla's SpiderMonkey JavaScript engine, the reduced suite is more effective for finding software faults, even if its reduced runtime is not considered. The effectiveness of a reduction-based quick test persists through major changes to the software under test
A survey on test suite reduction frameworks and tools
Software testing is a widely accepted practice that ensures the quality of a System under Test (SUT). However, the gradual increase of the test suite size demands high portion of testing budget and time. Test Suite Reduction (TSR) is considered a potential approach to deal with the test suite size problem. Moreover, a complete automation support is highly recommended for software testing to adequately meet the challenges of a resource constrained testing environment. Several TSR frameworks and tools have been proposed to efficiently address the test-suite size problem. The main objective of the paper is to comprehensively review the state-of-the-art TSR frameworks to highlights their strengths and weaknesses. Furthermore, the paper focuses on devising a detailed thematic taxonomy to classify existing literature that helps in understanding the underlying issues and proof of concept. Moreover, the paper investigates critical aspects and related features of TSR frameworks and tools based on a set of defined parameters. We also rigorously elaborated various testing domains and approaches followed by the extant TSR frameworks. The results reveal that majority of TSR frameworks focused on randomized unit testing, and a considerable number of frameworks lacks in supporting multi-objective optimization problems. Moreover, there is no generalized framework, effective for testing applications developed in any programming domain. Conversely, Integer Linear Programming (ILP) based TSR frameworks provide an optimal solution for multi-objective optimization problems and improve execution time by running multiple ILP in parallel. The study concludes with new insights and provides an unbiased view of the state-of-the-art TSR frameworks. Finally, we present potential research issues for further investigation to anticipate efficient TSR frameworks
Swarm testing
ManuscriptSwarm testing is a novel and inexpensive way to improve the diversity of test cases generated during random testing. Increased diversity leads to improved coverage and fault detection. In swarm testing, the usual practice of potentially including all features in every test case is abandoned. Rather, a large "swarm" of randomly generated configurations, each of which omits some features, is used, with configurations receiving equal resources. We have identified two mechanisms by which feature omission leads to better exploration of a system's state space. First, some features actively prevent the system from executing interesting behaviors; e.g., "pop" calls may prevent a stack data structure from executing a bug in its overflow detection logic. Second, even when there is no active suppression of behaviors, test features compete for space in each test, limiting the depth to which logic driven by features can be explored. Experimental results show that swarm testing increases coverage and can improve fault detection dramatically; for example, in a week of testing it found 42% more distinct ways to crash a collection of C compilers than did the heavily hand-tuned default configuration of a random tester
- …