Deriving Test Suites with the Guaranteed Fault Coverage for Extended Finite State Machines
Extended finite state machines (EFSMs) are widely used when deriving tests for checking the functional requirements for software implementations. However, the fault coverage of EFSMbased tests covering appropriate paths, variables, etc., remains rather obscure. Furthermore, these tests are known be incapable of detecting many functional faults frequently occurring in EFSM-based implementations. In this paper, an approach is proposed for deriving complete tests with the help of a proper Java EFSM implementation. Since the software is based on a template, the faults turn directly into EFSM faults. The method proposed here makes it possible to derive test suites that can detect functional faults. In the first step, the EFSM-based test suite derived by a well-known method is checked for completeness with respect to the faults generated by the μJava tool. Then, each undetected fault is easily mapped into an EFSM mutant. In the next step, some FSM abstraction is used to derive a distinguishing sequence for two finite-state machines (if such a sequence exists), which is added to the current test suite. The test derived in this way is complete with respect to the faults generated by μJava. If the corresponding FSM derived by EFSM modeling is too complex or no such FSM can be derived, the resulting test suite can be incomplete. However, the experiments performed by us clearly show that the original test suite extended by distinguishing sequences can detect many functional faults in software implementations when the given EFSM is used as a specification for the system.
Keywordsmutation testing extended finite state machine (EFSM) FSM abstraction μJava
Unable to display preview. Download preview PDF.
- 1.Kaur, M. and Singh, R., A review of software testing techniques, Int. J. Electron. Electr. Eng., 2014, vol. 7, no. 5, pp. 463–474.Google Scholar
- 4.Nica, S., On the use of constraints in program mutations and its applicability to testing, PhD Thesis, Graz Technical University, 2013.Google Scholar
- 7.μJava Documentation. μJava home page, 2014. http://cs.gmu.edu/~offutt/mujava/. Accessed April 10, 2016.Google Scholar
- 9.Ermakov, A. and Yevtushenko, N., Increasing the fault coverage of tests derived against Extended Finite State Machines, Syst. Inf., 2016, vol. 7, 23–32.Google Scholar
- 10.Alcalde, B., et al., Network protocol system passive testing for fault management: A backward checking approach, Proc. of the 24th IFIP WG 6.1 Intern. Conf. on Formal Techniques for Networked and Distributed Systems, FORTE'2004, pp. 150–166.Google Scholar
- 11.Kushik, N., et al., Optimizing protocol passive testing through “Gedanken” experiments with finite state machines, Proc. Int. Conf. Software Quality and Reliability, QSR’2016, 2016.Google Scholar
- 13.Kolomeets, A.V., Algorithms for the synthesis of checking tests for control systems based on extended automata, Cand. Sci. (Eng.) Dissertation, 2010.Google Scholar
- 14.Kushik, N., Yevtushenko, N., and Cavalli, A., On testing against partial non-observable specifications, Proc. Int. Conf. Quality of Information and Communications Technology, 2014, pp. 230–233.Google Scholar
- 16.El-Fakih, K., et al., Distinguishing extended finite state machine configurations using predicate abstractions, J. Software Res. Dev., 2016.Google Scholar
- 17.Mikhailov, Yu.V. and Kolomeets, A.V., Checking the transitions in an extended automaton based on slices, Vestn. Tomsk. Gos. Univ., Ser. Upr. Vychisl. Tekh. Inf., 2008, vol. 3, no. 4.Google Scholar
- 18.JUnit 4, documentation. http://cs.gmu.edu/~offutt/mujava/. Accessed April 10, 2016.Google Scholar