Results 1 -
9 of
9
Using genetic improvement & code transplants to specialise a C++ program to a problem class
- In 17th European Conference on Genetic Programming (EuroGP
, 2014
"... Abstract. Genetic Improvement (GI) is a form of Genetic Program-ming that improves an existing program. We use GI to evolve a faster version of a C++ program, a Boolean satisfiability (SAT) solver called MiniSAT, specialising it for a particular problem class, namely Combi-natorial Interaction Testi ..."
Abstract
-
Cited by 16 (10 self)
- Add to MetaCart
(Show Context)
Abstract. Genetic Improvement (GI) is a form of Genetic Program-ming that improves an existing program. We use GI to evolve a faster version of a C++ program, a Boolean satisfiability (SAT) solver called MiniSAT, specialising it for a particular problem class, namely Combi-natorial Interaction Testing (CIT), using automated code transplanta-tion. Our GI-evolved solver achieves overall 17 % improvement, making it comparable with average expert human performance. Additionally, this automatically evolved solver is faster than any of the human-improved solvers for the CIT problem.
Exploring Variability-Aware Execution for Testing Plugin-Based Web Applications
- In Proc. Int’l Conf. Software Engineering (ICSE). ACM
, 2014
"... In plugin-based systems, plugin conflicts may occur when two or more plugins interfere with one another, changing their expected behaviors. It is highly challenging to detect plugin conflicts due to the exponential explosion of the combinations of plugins (i.e., configurations). In this paper, we ad ..."
Abstract
-
Cited by 12 (5 self)
- Add to MetaCart
(Show Context)
In plugin-based systems, plugin conflicts may occur when two or more plugins interfere with one another, changing their expected behaviors. It is highly challenging to detect plugin conflicts due to the exponential explosion of the combinations of plugins (i.e., configurations). In this paper, we address the challenge of executing a test case over many configurations. Leveraging the fact that many executions of a test are similar, our variability-aware execution runs common code once. Only when encountering values that are different depending on specific configurations will the execution split to run for each of them. To evaluate the scalability of variability-aware execution on a large real-world setting, we built a prototype PHP interpreter called Varex and ran it on the popular WordPress blogging Web application. The results show that while plugin interactions exist, there is a significant amount of sharing that allows variabilityaware execution to scale to 2 50 configurations within seven minutes of running time. During our study, with Varex, we were able to detect two plugin conflicts: one was recently reported on WordPress forum and another one was not previously discovered.
Search based software engineering for software product line engineering: a survey and directions for future work
"... This paper1 presents a survey of work on Search Based Software Engineering (SBSE) for Software Product Lines (SPLs). We have attempted to be comprehensive, in the sense that we have sought to include all papers that ap-ply computational search techniques to problems in software product line engineer ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
(Show Context)
This paper1 presents a survey of work on Search Based Software Engineering (SBSE) for Software Product Lines (SPLs). We have attempted to be comprehensive, in the sense that we have sought to include all papers that ap-ply computational search techniques to problems in software product line engineering. Having surveyed the recent explo-sion in SBSE for SPL research activity, we highlight some di-rections for future work. We focus on suggestions for the de-velopment of recent advances in genetic improvement, show-ing how these might be exploited by SPL researchers and practitioners: Genetic improvement may grow new prod-ucts with new functional and non-functional features and graft these into SPLs. It may also merge and parameterise multiple branches to cope with SPL branchmania.
Achievements, open problems and challenges for search based software testing
"... testing as an optimisation problem, which can be attacked using computational search techniques from the field of Search Based Software Engineering (SBSE). We present an analysis of the SBST research agenda1, focusing on the open problems and chal-lenges of testing non-functional properties, in part ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
(Show Context)
testing as an optimisation problem, which can be attacked using computational search techniques from the field of Search Based Software Engineering (SBSE). We present an analysis of the SBST research agenda1, focusing on the open problems and chal-lenges of testing non-functional properties, in particular a topic we call ‘Search Based Energy Testing ’ (SBET), Multi-objective SBST and SBST for Test Strategy Identification. We conclude with a vision of FIFIVERIFY tools, which would automatically find faults, fix them and verify the fixes. We explain why we think such FIFIVERIFY tools constitute an exciting challenge for the SBSE community that already could be within its reach. I.
Learning Combinatorial . . . using Hyperheuristic Search
, 2013
"... Two decades of bespoke Combinatorial Interaction Testing (CIT) algorithm development have left software engineers with a bewildering choice of configurable system testing techniques. This paper introduces a single hyperheuristic algorithm that earns CIT strategies, providing a single generalist appr ..."
Abstract
- Add to MetaCart
Two decades of bespoke Combinatorial Interaction Testing (CIT) algorithm development have left software engineers with a bewildering choice of configurable system testing techniques. This paper introduces a single hyperheuristic algorithm that earns CIT strategies, providing a single generalist approach. We report experiments that show that our algorithm competes with known best solutions across constrained and unconstrained problems. For all 26 real world subjects and 29 of the 30 constrained benchmark problems studied, it equals or improves upon the best known result. We also present evidence that our algorithm's strong generic performance is caused by its effective unsupervised learning. Hyperheuristic search
TCA: An Efficient Two-Mode Meta-Heuristic Algorithm for Combinatorial Test Generation
"... Covering arrays (CAs) are often used as test suites for combinatorial interaction testing to discover interaction faults of real-world systems. Most real-world systems involve con-straints, so improving algorithms for covering array generation (CAG) with constraints is beneficial. Two popular metho ..."
Abstract
- Add to MetaCart
Covering arrays (CAs) are often used as test suites for combinatorial interaction testing to discover interaction faults of real-world systems. Most real-world systems involve con-straints, so improving algorithms for covering array generation (CAG) with constraints is beneficial. Two popular methods for constrained CAG are greedy construction and meta-heuristic search. Recently, a meta-heuristic framework called two-mode local search has shown great success in solving classic NP-hard problems. We are interested whether this method is also powerful in solving the constrained CAG problem. This work proposes a two-mode meta-heuristic framework for constrained CAG efficiently and presents a new meta-heuristic algorithm called TCA. Experiments show that TCA significantly outperforms state-of-the-art solvers on 3-way constrained CAG. Further ex-periments demonstrate that TCA also performs much better than its competitors on 2-way constrained CAG.
Constructing Test Cases for N-wise Testing from Tree-based Test Models
"... In our previous work [17], we proposed a model-based combi-natorial testing method, called FOT. It provides a technique to design test-models for combinatorial testing based on ex-tended logic trees. In this paper, we introduce pair-wise testing (and by extension, n-wise testing, where n = 1,2,..) t ..."
Abstract
- Add to MetaCart
In our previous work [17], we proposed a model-based combi-natorial testing method, called FOT. It provides a technique to design test-models for combinatorial testing based on ex-tended logic trees. In this paper, we introduce pair-wise testing (and by extension, n-wise testing, where n = 1,2,..) to FOT, by developing a technique to construct a test-suite of n-wise strategies from the test models in FOT. We take a “transformation approach ” to realize this technique. To construct test suites, this approach first transforms test-models in FOT, represented as extended logic trees, to those in the formats which the existing n-wise testing tools (such as PICT [9], ACTS [30], CIT-BACH [31], etc.) accept to input, and then applies transformed test-models to any of these tools. In this transformation approach, an algorithm, called “flattening algorithm”, plays a key role. We prove the correctness of the algorithm, and implement the algorithm to automate such test-suite constructions, providing a tool called FOT-nw (FOT with n-wise). Further, to show the ef-fectiveness of the technique, we conduct a case study, where we apply FOT-nw to design test models and automatically construct test suites of n-wise strategies for an embedded system of stationary services for real-use in industry.
Automating Test Case Design within the Classification Tree Editor
"... Abstract—This paper describes how the proven test design technique of the classification tree method is extended within the classification tree editor in order to contribute to current test design matters. The classification tree editor not only provides the tooling to use the method but also to app ..."
Abstract
- Add to MetaCart
(Show Context)
Abstract—This paper describes how the proven test design technique of the classification tree method is extended within the classification tree editor in order to contribute to current test design matters. The classification tree editor not only provides the tooling to use the method but also to apply new and helpful features in the test design process. This includes the automatic generation of test cases and test sequences according to desired test depth and focus, automated boundary value analysis, various tool couplings to integrate in each individual test process and supporting features like test evaluation or test coverage analysis amongst others. Keywords-classification tree method; classification tree editor; combinatorial interaction testing; I.
Attack Pattern-Based Combinatorial Testing
"... Abstract—The number of potential security threats rises with the increasing number of web applications, which cause tremendous financial and existential implications for developers and users as well. The biggest challenge for security testing is to specify and implement ways in order to detect poten ..."
Abstract
- Add to MetaCart
(Show Context)
Abstract—The number of potential security threats rises with the increasing number of web applications, which cause tremendous financial and existential implications for developers and users as well. The biggest challenge for security testing is to specify and implement ways in order to detect potential vulnerabilities of the developed system in a never ending quest against new security threats but also to cover already known ones so that a program is suited against typical attack vectors. For these purposes many approaches have been developed in the area of model-based security testing in order to come up with solutions for real-world application problems. These approaches provide theoretical background as well as practical solutions for certain security issues. In this paper we partially rely on previous work but focus on the representation of attack patterns using UML state diagrams. We extend previous work in combining the attack pattern models with combinatorial testing in order to provide concrete test input, which is submitted to the system under test. With combinatorial testing we capture different combinations of inputs and thus increasing the likelihood to find weaknesses in the implementation under test that can be exploited. Besides the foundations of our approach we further report on first experiments that indicate its practical use. Index Terms—Combinatorial testing, model-based testing, se-curity testing, attack patterns. I.