6 research outputs found
Instance Space Analysis of Search-Based Software Testing
Search-based software testing (SBST) is now a mature area, with numerous
techniques developed to tackle the challenging task of software testing. SBST
techniques have shown promising results and have been successfully applied in
the industry to automatically generate test cases for large and complex
software systems. Their effectiveness, however, is problem-dependent. In this
paper, we revisit the problem of objective performance evaluation of SBST
techniques considering recent methodological advances -- in the form of
Instance Space Analysis (ISA) -- enabling the strengths and weaknesses of SBST
techniques to be visualized and assessed across the broadest possible space of
problem instances (software classes) from common benchmark datasets. We
identify features of SBST problems that explain why a particular instance is
hard for an SBST technique, reveal areas of hard and easy problems in the
instance space of existing benchmark datasets, and identify the strengths and
weaknesses of state-of-the-art SBST techniques. In addition, we examine the
diversity and quality of common benchmark datasets used in experimental
evaluations
Testing Container Classes: Random or Systematic?
Container classes such as lists, sets, or maps are elementary data struc-tures common to many programming languages. Since they are a part of stan-dard libraries, they are important to test, which led to research on advanced testing techniques targeting such containers and research on comparing testing techniques using such containers. However, these techniques have not been thor-oughly compared to simpler techniques such as random testing. We present the results of a larger case study in which we compare random testing with shape ab-straction, a systematic technique that showed the best results in a previous study. Our experiments show that random testing is about as effective as shape abstrac-tion for testing these containers, which raises the question whether containers are well suited as a benchmark for comparing advanced testing techniques
The robust optimization of non-linear requirements models
Solutions to non-linear requirements engineering problems may be brittle ; i.e. small changes may dramatically alter solution effectiveness. Hence, it is not enough to just generate solutions to requirements problems---we must also assess solution robustness. This thesis aims to address two concerns: (a) Is demonstrating robustness a time consuming task? and (b) Is it necessary that solution quality be traded off against solution robustness?;Using a Bayesian ranking heuristic, the KEYS2 algorithm fixes a small number of important variables, rapidly pushing the search into a stable, optimal plateau. By design, KEYS2 generates decision ordering diagrams (in time experimentally shown to be O(N2)). Once generated, these diagrams can confirm solution robustness in linear time. When assessed in terms of reducing inference times, increasing solution quality, and decreasing the variance of the generated solution, KEYS2 out-performs other search algorithms (simulated annealing, A*, MaxWalkSat)
Automatic software generation and improvement through search based techniques
Writing software is a difficult and expensive task. Its automation is hence very valuable. Search algorithms have been successfully used to tackle many software engineering problems. Unfortunately, for some problems the traditional techniques have been of only limited scope, and search algorithms have not been used yet. We hence propose a novel framework that is based on a co-evolution of programs and test cases to tackle these difficult problems. This framework can be used to tackle software engineering tasks such as Automatic Refinement, Fault Correction and Improving Non-functional Criteria. These tasks are very difficult, and their automation in literature has been limited. To get a better understanding of how search algorithms work, there is the need of a theoretical foundation. That would help to get better insight of search based software engineering. We provide first theoretical analyses for search based software testing, which is one of the main components of our co-evolutionary framework. This thesis gives the important contribution of presenting a novel framework, and we then study its application to three difficult software engineering problems. In this thesis we also give the important contribution of defining a first theoretical foundation.EThOS - Electronic Theses Online ServiceGBUnited Kingdo
Insight knowledge in search based software testing
ABSTRACT Software testing can be re-formulated as a search problem, hence search algorithms (e.g., Genetic Algorithms) can be used to tackle it. Most of the research so far has been of empirical nature, in which novel proposed techniques have been validated on software testing benchmarks. However, only little attention has been spent to understand why metaheuristics can be effective in software testing. This insight knowledge could be used to design novel more successful techniques. Recent theoretical work has tried to fill this gap, but it is very complex to carry out. This has limited its scope so far to only small problems. In this paper, we want to get insight knowledge on a difficult software testing problem. We combine together an empirical and theoretical analysis, and we exploit the benefits of both