100 research outputs found
Empirical Evaluation of Test Coverage for Functional Programs
The correlation between test coverage and test effectiveness is important to justify the use of coverage in practice. Existing results on imperative programs mostly show that test coverage predicates effectiveness. However, since functional programs are usually structurally different from imperative ones, it is unclear whether the same result may be derived and coverage can be used as a prediction of effectiveness on functional programs. In this paper we report the first empirical study on the correlation between test coverage and test effectiveness on functional programs. We consider four types of coverage: as input coverages, statement/branch coverage and expression coverage, and as oracle coverages, count of assertions and checked coverage. We also consider two types of effectiveness: raw effectiveness and normalized effectiveness. Our results are twofold. (1) In general the findings on imperative programs still hold on functional programs, warranting the use of coverage in practice. (2) On specific coverage criteria, the results may be unexpected or different from the imperative ones, calling for further studies on functional programs
Transferring Interactive Search-Based Software Testing to Industry
Search-Based Software Testing (SBST) is the application of optimization
algorithms to problems in software testing. In previous work, we have
implemented and evaluated Interactive Search-Based Software Testing (ISBST)
tool prototypes, with a goal to successfully transfer the technique to
industry. While SBSE solutions are often validated on benchmark problems, there
is a need to validate them in an operational setting. The present paper
discusses the development and deployment of SBST tools for use in industry and
reflects on the transfer of these techniques to industry. In addition to
previous work discussing the development and validation of an ISBST prototype,
a new version of the prototype ISBST system was evaluated in the laboratory and
in industry. This evaluation is based on an industrial System under Test (SUT)
and was carried out with industrial practitioners. The Technology Transfer
Model is used as a framework to describe the progression of the development and
evaluation of the ISBST system. The paper presents a synthesis of previous work
developing and evaluating the ISBST prototype, as well as presenting an
evaluation, in both academia and industry, of that prototype's latest version.
This paper presents an overview of the development and deployment of the ISBST
system in an industrial setting, using the framework of the Technology Transfer
Model. We conclude that the ISBST system is capable of evolving useful test
cases for that setting, though improvements in the means the system uses to
communicate that information to the user are still required. In addition, a set
of lessons learned from the project are listed and discussed. Our objective is
to help other researchers that wish to validate search-based systems in
industry and provide more information about the benefits and drawbacks of these
systems.Comment: 40 pages, 5 figure
Evaluating Software Testing Techniques: A Systematic Mapping Study
Software testing techniques are crucial for detecting faults in software and reducing the risk of using it. As such, it is important that we have a good understanding of how to evaluate these techniques for their efficiency, scalability, applicability, and effectiveness at finding faults. This thesis enhances our understanding of testing technique evaluations by providing an overview of the state of the art in research. To accomplish this we utilize a systematic mapping study; structuring the field and identifying research gaps and publication trends. We then present a small case study demonstrating how our mapping study can be used to assist researchers in evaluating their own software testing techniques. We find that a majority of evaluations are empirical evaluations in the form of case studies and experiments, most of these evaluations are of low quality based on proper methodology guidelines, and that relatively few papers in the field discuss how testing techniques should be evaluated
Mutation testing in the wild: findings from GitHub
Mutation testing exploits artificial faults to measure the adequacy of test suites and guide
their improvement. It has become an extremely popular testing technique as evidenced by
the vast literature, numerous tools, and research events on the topic. Previous survey papers
have successfully compiled the state of research, its evolution, problems, and challenges.
However, the use of mutation testing in practice is still largely unexplored. In this paper,
we report the results of a thorough study on the use of mutation testing in GitHub projects.
Specifically, we first performed a search for mutation testing tools, 127 in total, and we
automatically searched the GitHub repositories including evidence of their use. Then, we
focused on the top ten most widely used tools, based on the previous results, and manually
revised and classified over 3.5K GitHub active repositories importing them. Among other
findings, we observed a recent upturn in interest and activity, with Infection (PHP), PIT
(Java) and Humbug (PHP) being the most widely used mutation tools in recent years. The
predominant use of mutation testing is development, followed by teaching and learning,
and research projects, although with significant differences among mutation tools found in
the literature—less adopted and largely used in teaching and research—and those found in
GitHub only—more popular and more widely used in development. Our work provides a
new and encouraging perspective on the state of practice of mutation testing.Junta de Andalucía US-1264651 (APOLO)Junta de Andalucía P18-FR-2895 (EKIPMENT-PLUS)Ministerio de Ciencia, Innovación y Universidades RTI2018-101204-B-C21 (HORATIO)Ministerio de Ciencia, Innovación y Universidades RTI2018-093608-BC33 (FAME
- …