Búsqueda avanzada

Performance mutation testing: hypothesis and open questions

Performance bugs are common, costly, and elusive. Performance tests aim to detect performance bugs by running the program with specific inputs and determining whether the observed behaviour is acceptable. There not exist mechanisms, however, to assess the effectiveness of performance tests. Mutation testing is a technique to evaluate and enhance functional test suites by seeding artificial faults in the program under test. In this new idea paper, we explore the applicability of mutation testing to assess and improve performance tests. This novel approach is motivated with examples and open questions.Ana B. Sánchez, Pedro Delgado-Pérez, Sergio Segura, Inmaculada Medina-Bulo. Performance Mutation Testing: Hypothesis and open questions. Information and Software Technology Journal, 103, 159-161, November 2018. Disponible online:ÍNDICES DE CALIDADFactor de impacto: 2,694Categoría de la revista: Q1Posición en su categoría: 16Número de autores: 4

Towards a model-driven engineering solution for language independent mutation testing

Mutation testing is a technique to assess test suite adequacy to distinguish between correct and incorrect programs. Mutation testing applies one or more small changes to a program to obtain variants called mutants. The adequacy of a test suite is measured by determining how many of the mutants it distinguishes from the original program. There are many works about mutation testing, but the existing approaches focus on a specific programming language, and usually, it is not easy to customize the set of mutation operators. In this paper, we present Wodel-Test, an extension of the Wodel tool that implements a language-independent mutation testing framework based on model-driven engineering principles.

Towards Mutation Testing of Configurable Simulink Models: a Product Line Engineering Perspective

Mutation testing has been found to be an efficient technique in order to assess the quality of a test suite. The use of Simulink models is increasing in both industry and academia to model and simulate complex systems such as Cyber-Physical Systems (CPSs). An advantage of Simulink is its ease to integrate software and control algorithms with complex mathematical models that typically represent continuous dynamic behaviors. In addition to that, the increasing trend of industry in adopting product line engineering methods to efficiently support the variability that their products demand is resulting in configurable Simulink models. Consequently, many configurations can be employed to test the configurable system. Each of these configurations will have a set of mutants, which will be in accordance with the configuration characteristics (i.e., features). However, manually generating and configuring mutants for each of the configurations is a time-consuming and non-systematic process. To deal with this problem, we propose a methodology supported by a tool that automatically generates mutants for configurable Simulink models.

Assessment of class mutation operators for C++ with the MuCPP mutation system

Context: Mutation testing has been mainly analyzed regarding traditional mutation operators involving structured programming constructs common in mainstream languages, but mutations at the class level have not been assessed to the same extent. This fact is noteworthy in the case of C++ , despite being one of the most relevant languages including object-oriented features. Objective: This paper provides a complete evaluation of class operators for the C++ programming language. MuCPP, a new system devoted to the application of mutation testing to this language, was developed to this end. This mutation system implements class mutation operators in a robust way, dealing with the inherent complexity of the language. Method: MuCPP generates the mutants by traversing the abstract syntax tree of each translation unit with the Clang API, and stores mutants as branches in the Git version control system. The tool is able to detect duplicate mutants, avoid system headers, and drive the compilation process. Then, MuCPP is used to conduct experiments with several open-source C++ programs. Results: The improvement rules listed in this paper to reduce unproductive class mutants have a significant impact in the computational cost of the technique. We also calculate the quantity and distribution of mutants generated with class operators, which generate far fewer mutants than their traditional counterparts. Conclusions: We show that the tests accompanying these programs cannot detect faults related to particular object-oriented features of C++ . In order to increase the mutation score, we create new test scenarios to kill the surviving class mutants for all the applications. The results confirm that, while traditional mutation operators are still needed, class operators can complement them and help testers further improve the test suite. Autores: Pedro Delgado-Pérez, Inmaculada Medina-Bulo, Francisco Palomo-Lozano, Antonio García-Domínguez, Juan José Domínguez-Jiménez Revista: Information and Software Technology, Volume 81, January 2017, Pages 169-184, Factor de impacto: 1.569 – Q1 (listado JCR 2015)