  Test Coverage criteria are an essential concept for test engineers when
generating the test cases from a System Under Test model. They are routinely
used in test case generation for user interfaces, middleware, and back-end
system parts for software, electronics, or Internet of Things (IoT) systems.
Test Coverage criteria define the number of actions or combinations by which a
system is tested, informally determining a potential "strength" of a test set.
As no previous study summarized all commonly used test coverage criteria for
Finite State Machines and comprehensively discussed them regarding their
subsumption, equivalence, or non-comparability, this paper provides this
overview. In this study, 14 most common test coverage criteria and seven of
their synonyms for Finite State Machines defined via a directed graph are
summarized and compared. The results give researchers and industry testing
engineers a helpful overview when setting a software-based or IoT system test
strategy.
