Cyber-Physical Systems (CPSs) are heterogeneous systems encompassing digital technologies and physical parallel processes. These systems are continuously interacting with the physical world, what means that they are highly exposed to its unpredictability. Due to this unpredictability, when testing CPSs the test cases must monitor different states of the system. One of the solution for testing these systems is thus employing reactive test cases, which are a set of state-based test cases that observe the system and react on them based on the system state. In order to efficiently execute these kinds of test cases in the context of CPSs, test case selection and prioritization strategies were previously proposed by the author. These strategies obtained information of previously generated test cases. However, these contributions did not specify how the test cases were generated. In this talk, the focus is on the search-based strategy proposed for generating test cases for the context of reactive test cases. Mutation and crossover functions in the context of reactive test cases are proposed, as well as the corresponding objectives (requirements coverage, test execution time and similarity). The goal is to employ several multi-objective algorithms to see which is the best algorithm for generating these test cases and employ industrial, as well as synthetic, case studies based on simulation to assess the performance of our algorithms. Finally, there are plans to adapt the approach for configurable CPSs, which would require to take the variability of the CPSs into account.
Mutation testing is a powerful testing technique to assess and refine the fault-revealing ability of a test suite, but it involves a high cost. Evolutionary Mutation Testing proposes the generation of a subset of the mutants by means of an evolutionary algorithm in order to reduce the cost. This algorithm favours that the subset contains mutants with great potential to assist the tester in improving the test suite with new test cases. This technique had been successfully applied to WS-BPEL compositions. In this talk, we present the results when using class mutation operators in C++ object-oriented systems.
In the last years web services have proven to be very important in the world of business processes. Because of this, it's essential to have a wide enough test case support in order to detect failures in these services. Test suite automatic generation is key in this context because it will allow to reduce the cost related to testing tasks. In this work Automatic Seeding is applied for the first time to WS-BPEL 2.0 compositions. This technique combines test suite random generation with additional information of the composition constants. In addition an optimization of this technique is defined to avoid the generation of big test suites.
Functional testing of Big Data programs using a combinatorial algorithm
Programs that process a large volume of data generally run in a distributed and parallel architecture, such as the programs implemented in the processing model MapReduce. In these programs, developers can abstract the infrastructure where the program will run and focus on the functional issues. However, the infrastructure configuration and its state cause different parallel executions of the program and some could derive in functional faults which are hard to reveal. In general, the infrastructure that executes the program is not considered during the testing, because the tests usually contain few input data and then the parallelization is not necessary. This talk presents a search based testing technique to generate different infrastructure configurations for a given test input data, and then the program is executed in these configurations in order to reveal functional faults.
Since the appearance of Search Based Software Engineering (SBSE), diverse search and optimisation techniques have been successfully applied to the resolution of a great diversity of software engineering (SE) tasks. Traditionally, these tasks could be addressed by considering a small number of metrics or properties to be simultaneously optimised. Nevertheless, as the complexity of these SE tasks increases, using such a short number of properties becomes unrealistic and their formulation as optimisation problems is demanding the definition of a larger number of conflicting measures. In this sense, the original idea of establishing trade-offs among objectives has been conveniently adopted according to the techniques and methods provided by the multi-objective optimisation (MOO) field. For those problems requiring the trade-off among more objectives, evaluating their quality requires applying advanced techniques like many-objective optimisation, which is demonstrating to be more suitable than traditional MOO by providing efficient mechanisms to explore the search space and preserve diversity. This short talk focuses on the application of many-objective optimisation in SBSE, with a special emphasis on recent proposals emerged in the context of search-based software design like the discovery of software architectures and the composition of web services. Further, some strengths and drawbacks related to the use of many-objective optimisation approaches will be briefly discussed.