TL;DR: Results from a controlled experiment show that the use of mutation as a testing technique provides benefits to the fault localization process, and fault localization is significantly improved by using mutation‐based tests instead of block‐based or branch‐based test suites.
TL;DR: The effectiveness of this approach is shown and it is discussed how to gain a more expressive test suite by combining cheap but undirected random test case generation with the more expensive but directed mutation‐based technique.
TL;DR: Results of an empirical evaluation indicate the quantitative superiority of MODEP with respect to single‐objective predictors, and withrespect to trivial baseline ranking classes by size in ascending or descending order, and an alternative approach for cross‐project prediction, based on local prediction upon clusters of similar classes.
TL;DR: The total mutation analysis run time decreased by more than 20% by removing redundant mutants, and the inclusion of redundant mutants led to an overestimated mutation score for all analysed test suites.
TL;DR: The evaluation shows that UNICORN can effectively compute and rank the patterns that represent concurrency bugs, and perform computation and ranking with reasonable efficiency.
TL;DR: A formal execution model is presented, which can uniformly represent various views of race bug detection techniques on target programme execution and classify race bugs on whether or not a bug violates operation block specification and/or data association specification.
TL;DR: The BESTEST approach enables the use of machine learning algorithms to augment standard syntactic testing approaches and shows how search‐based testing techniques can be applied to generate test sets with respect to this criterion.
TL;DR: A possible solution to the problem of determining whether a mutant can be killed by a test case or it cannot be killed easily because the mutant is semantically equivalent to the original programme is proposed.
Abstract: Mutation testing is a fault-based software testing technique in which a large number of mutants are generated in order to assess the adequacy of test cases devised. One of the daunting problems in this area consists in determining whether a mutant can be killed by a test case or it cannot be killed easily because the mutant is semantically equivalent to the original programme. A possible solution, as proposed in this paper, is to measure the complexity of each mutant and prioritize them according to how easy or hard they are to be exposed. As a result, using a proper metric based on the mutants' complexity, the tester may decide whether to focus on killing easy or hard mutants first.
TL;DR: This work introduces a metric, naturally extended to mutation operators and may be used to reduce the number of mutants, particularly of equivalent mutants, and a firm mutation analysis tool for WS‐BPEL service compositions is presented.
TL;DR: This paper empirically analyzes the effect of covering mutants through the mutant schema improved with extra code (MUSIC) technique and concludes that analyzing the covered mutants reduces the execution cost of mutation testing and its application is therefore recommended.
TL;DR: This article presents a generic approach for the automated detection of faults in variability analysis tools overcoming the oracle problem, and enables the generation of random variability models together with the exact set of valid configurations represented by these models.
TL;DR: The results indicate that the metrics are moderate to strong predictors of testing effectiveness and effective at providing test generation targets, and highlight the need for additional work on concurrency coverage metrics.
TL;DR: A formal model of both stateless and stateful firewalls (packet filters), including NAT, is presented to which a specification‐based conformance test case generation approach is applied and a verified optimisation technique for this approach is presented.
TL;DR: A new composite approach that uses reachability testing to guide the selection of the synchronization sequences tests according to a specific structural testing criterion is presented and empirically evaluated in the context of message‐passing concurrent programs developed with MPI.
TL;DR: Multiple results achieved recently in the area of noise‐injection‐based testing by the authors are presented in a unified and extended way and a novel use of the genetic algorithm for finding suitable combinations of the many parameters of tests and noise techniques is presented.
TL;DR: A model‐based testing approach, relying on the mutation of HLPSL models to generate abstract test cases to introduce leaks in the security protocols and represent real‐world implementation errors, is presented.
TL;DR: A methodology and a supporting tool for evaluating the fault detection capability of a NuSMV model advisor are presented, which performs an automatic static model review of Nu SMV models based on the concept of equivalent Kripke structures.
TL;DR: An extensive empirical study of CHECK‐THEN‐ACT idioms of Java (Oracle Corporation, Redwood, CA, USA) concurrent collections is presented and 60 bugs that were confirmed and fixed by developers are discovered.
TL;DR: This work devised six reduction techniques and comparatively evaluated them by measuring the following: reduction rate; information loss; impact on two applications of dynamic program analysis, namely, cluster‐based test suite minimization (App‐I), and profile‐based online failure and intrusion detection ( App‐II).
TL;DR: This special issue of mutation testing contains nine papers, including four extended versions of papers presented at the 7th International Workshop on Mutation Analysis and five new submissions, which introduces novel techniques to optimize mutant execution, to reduce redundant mutants and to detect equivalent mutants.
Abstract: It is our pleasure to introduce this special issue on Mutation Testing. The special issue contains nine papers, including four extended versions of papers presented at the 7th International Workshop on Mutation Analysis and five new submissions. We have divided the special issue into three broad areas based on the topics covered. The first area focuses on the techniques for making mutation testing more efficient and practical; the second area revisits some fundamental questions about mutants, whilst the third area presents some advanced applications of mutation testing for model-based testing. Mutation Testing has been proven to be an effective way to measure the quality of a test suite in terms of its ability to detect faults [1]. The history of mutation testing can be traced back to 1971 in a publication by Richard Lipton [2] as well as in publications from the late 1970s by DeMillo et al. [3] and Hamlet [4]. In Mutation Testing, faults are deliberately seeded into the original program (by simple syntactic changes) to create a set of faulty programs called mutants, each containing a different syntactic change. The general principle underpinning Mutation Testing is that artificial faults can be used to represent common programming mistakes. By carefully choosing the location within the program and the types of faults, it is possible to simulate any test adequacy criteria whilst providing improved fault detection. A recent survey on mutation testing provides evidence to suggest that the approach is increasing in maturity and practical application [5]. One reason why mutation testing has become a popular testing approach is that it is a straightforward process to apply. To assess the quality of a given test set, the generated mutants are executed against the input test set. If the result of running a mutant is different from the result of running the original program for any test cases in the input test set, the seeded fault denoted by the mutant is detected. One outcome of the Mutation Testing process is the mutation score, which indicates the quality of the input test set. The mutation score is the ratio of the number of detected faults over the total number of seeded faults. Mutation Testing has been widely adopted in the academic community as a means to evaluate software testing techniques [6], as well as to generate tests and test oracles [7, 8]. However, it still suffers from a number of problems that prevent the wider industrial uptake of this effective testing approach. One problem that prevents Mutation Testing from becoming a practical testing technique is the high computational cost of executing a large number of mutants against a test set. Other problems are related to the amount of effort involved in identifying equivalent mutants. Each submission received three reviews from a board of 36 mutation testing experts. For all submissions extended from the mutation workshop, we have recruited at least one new reviewer to ensure wider accessibility to a non-mutation expert testing audience. The first area covers the topic of making mutation testing more efficient and practical. The three papers in this area introduce novel techniques to optimize mutant execution, to reduce redundant mutants and to detect equivalent mutants. In the first paper ‘Reducing Mutation Costs Through Uncovered Mutants’, Pedro Reales Mateo and Macario Polo Usaola propose an improved mutant schema, namely, ‘MUSIC’ to reduce the execution cost for mutation testing. The MUSIC approach records runtime information about structural and mutation coverage; it reduces the execution cost by removing mutant execution tasks, which are not covered by the test cases. The second paper ‘Higher Accuracy and Lower Run Time: Efficient Mutation Analysis using Non-redundant Mutation Operators’ by René Just and Franz Schweiggert attempts to reduce the number of mutants by applying only non-redundant mutation operators. The authors identified a set of operators that tend to not generate any redundant mutants, and their results show that 20% of the runtime cost could be saved using the selected operators. The third paper ‘Employing Second-order Mutation for
TL;DR: This issue presents two useful applications of formal modeling, which find that some models make testing and verification much easier than others, and give guidance for designing useful models.
Abstract: This issue presents two useful applications of formal modeling. The first paper, Specification guidelines to avoid the state space explosion problem, by Groote, Kouters, and Osaiweran, give a technique for security testing of firewalls. They formally model firewalls, and then combine testing with a proof technique to verify the correctness of the implemented firewall. (Recommended by Alan Hartman.) The second paper, Formal firewall conformance testing: An application of test and proof techniques, by Brucker, Brügger, and Wolff, is based on years of experience building statebased models. The authors have found that some models make testing and verification much easier than others, and give guidance for designing useful models. (Recommended by Ronald Olsson.)
TL;DR: This issue contains three papers that invent new ideas and evaluated them empirically, including a technique for solving the oracle problem when testing tools that analyze the variability of software.
Abstract: This issue contains three papers that invent new ideas and evaluated them empirically. The first paper, Directed test suite augmentation: An empirical investigation, by Xu, Kim, Kim, Cohen, and Rothermel, empirically investigates the effectiveness of strategies for augmenting test sets after changes to software. They compared two different test generation algorithms in two separate studies. (Recommended by Paul Ammann.) The second paper, Reducing execution profiles: Techniques and benefits, by Farjo, Assi, and Masri, presents results of analysis of execution profiles. They invented six ways to reduce the size of execution profiles and empirically measured the effect on the quality of analysis after reducing the profiles. (Recommended by T.Y. Chen.) The third paper, Automated metamorphic testing of variability analysis tools, by Segura, Durán, Sánchez, Le Berre, Lonca, and Ruiz-Cortés, invent a technique for solving the oracle problem when testing tools that analyze the variability of software. (Recommended by T.H. Tse.) Combined, these three papers have a whopping 14 co-authors, which leads in perfectly to the subject of this editorial: determining authorship.
TL;DR: The evaluation shows that UNICORN can effectively compute and rank the patterns that represent concurrency bugs, and perform computation and ranking with reasonable efficiency.
TL;DR: Overall, the study shows that I‐EQM substantially improves previous methods by retrieving a considerably higher number of killable mutants, thus, amplifying the quality of the testing process.
TL;DR: The results of two empirical studies reveal a potential opportunity for creating a more cost‐effective hybrid augmentation approach leveraging both concolic and genetic test case generation techniques, while appropriately utilizing the understanding of the factors that affect them.
TL;DR: This article presents a novel cost analysis framework for concurrent objects by means of a novel form of object‐sensitive recurrence equations that use cost centres in order to keep the resource usage assigned to the different components separate.
TL;DR: Model transformation traceability in conjunction with a model of mutation operators and a dedicated algorithm allow to automatically or semi‐automatically produce improved test models.
TL;DR: This paper presents a case study of coverage‐based regression testing techniques on a real world industrial system with real regression faults, and shows that prioritization techniques that are based on additional coverage with finer grained coverage criteria perform significantly better in fault detection rates.
TL;DR: This article summarizes the modelled behaviour of a large number of systems by providing seven specification guidelines to keep state spaces small, and provides an application, generally from the realm of traffic light controllers, for which the good and bad models are both suitable for their purpose but are not behaviourally equivalent.