A Master of Science thesis in Computer Engineering by Emad Mohammad Badawi entitled, "Parallel Implementations for Eliminating Finite State Machine Mutants," submitted in May 2017. Thesis advisor is Dr. Khaled El-Fakih and thesis co-advisor Dr. Gerassimos Barlas. Soft and hard copy available.
In this thesis, the mutants’ elimination problem considered in finite state machine (FSM) based mutation testing, fault diagnosis, and in the assessment of the effectiveness of test suites is targeted. Given a test suite of some test cases usually derived from a specification FSM and a set of mutants (or fault domain), derived from the specification with respect to some assumed types of faults, mutants’ elimination deals with deleting/killing each mutant of the fault domain that has an output behavior different than that of the specification FSM in respect to some test case of the test suite. However, this process is time consuming, especially when the number of considered mutants is huge. Accordingly, three parallel implementations for the considered problem based on the Open Multi-Processing (OpenMP), Message Passing interface (MPI) and the Compute Unified Device Architecture (CUDA) parallel technologies are presented. Comprehensive experiments are conducted to assess the speedup and execution time of the proposed implementations. On average, over all conducted experiments with both randomly generated and real application FSMs, the speedup of OpenMp, MPI, and GPU against sequential implementation equals 6.4, 22.9, and 569.7 times, respectively. The relative speedup of MPI and CUDA with respect to OpenMp equals 3.5 and 121.5 times, respectively; and the relative speedup of CUDA with respect to MPI equals 96.12 times. In addition, the results obtained using real machines are compared with random machines with the same attributes. CUDA implementation is shown to be scalable in terms of considered number of mutants and FSM size. For instance, limited by the used hardware architecture, CUDA easily handled experiments with 500 Million mutants and operated on machines with 9.5 Million transitions. Experiments are also conducted to determine the experimental setup attributes such as test suite length, number of test cases, and attributes related to the parallel implementations such as threads number in OpenMP, processes number in MPI and number of inputs of a test case that will be applied to the mutants in each GPU invocation.