Automatic Control and Computer Sciences

, Volume 51, Issue 7, pp 516–522 | Cite as

Deriving Test Suites with the Guaranteed Fault Coverage for Extended Finite State Machines

  • A. D. Ermakov
  • N. V. Yevtushenko


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.


mutation testing extended finite state machine (EFSM) FSM abstraction μJava 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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
  2. 2.
    Jorgensen, P.C., Software Testing: A Craftsman’s Approach, Auerbach Publications, 2008, 3rd ed.MATHGoogle Scholar
  3. 3.
    Nica, M., Nica, S., and Wotawa, F., On the use of mutations and testing for debugging, Software Pract. Exp., 2013, vol. 43, no. 9, pp. 1121–1142.CrossRefGoogle Scholar
  4. 4.
    Nica, S., On the use of constraints in program mutations and its applicability to testing, PhD Thesis, Graz Technical University, 2013.Google Scholar
  5. 5.
    Petrenko, A., Boroday, S., and Groz, R., Confirming configurations in EFSM testing, IEEE Trans. Software Eng., 2004, vol. 30, no. 1, pp. 29–42.CrossRefMATHGoogle Scholar
  6. 6.
    El-Fakih, K., Salameh, T., and Yevtushenko, N., On code coverage of extended FSM based test suites: An initial assessment, Lect. Notes Comput. Sci., 2014, vol. 8763, pp. 198–204.CrossRefGoogle Scholar
  7. 7.
    μJava Documentation. μJava home page, 2014. Accessed April 10, 2016.Google Scholar
  8. 8.
    Villa, T., et al., The Unknown Component Problem: Theory and Applications, Springer, 2012.CrossRefMATHGoogle Scholar
  9. 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. 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. 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
  12. 12.
    Kushik, N. and Yenigün, H., Heuristics for deriving adaptive homing and distinguishing sequences for nondeterministic finite state machines, Lect. Notes Comput. Sci., 2015, vol. 9447, pp. 243–248.CrossRefGoogle Scholar
  13. 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. 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
  15. 15.
    Kushik, N., et al., On adaptive experiments for nondeterministic finite state machines, Int. J. Software Tools Technol. Transfer, 2016, vol. 18, no. 3, pp. 251–264.CrossRefGoogle Scholar
  16. 16.
    El-Fakih, K., et al., Distinguishing extended finite state machine configurations using predicate abstractions, J. Software Res. Dev., 2016.Google Scholar
  17. 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. 18.
    JUnit 4, documentation. Accessed April 10, 2016.Google Scholar

Copyright information

© Allerton Press, Inc. 2017

Authors and Affiliations

  1. 1.Tomsk State UniversityTomskRussia

Personalised recommendations