12 research outputs found
Generating Complete and Finite Test Suite for ioco: Is It Possible?
Testing from Input/Output Transition Systems has been intensely investigated.
The conformance between the implementation and the specification is often
determined by the so-called ioco-relation. However, generating tests for ioco
is usually hindered by the problem of conflicts between inputs and outputs.
Moreover, the generation is mainly based on nondeterministic methods, which may
deliver complete test suites but require an unbounded number of executions. In
this paper, we investigate whether it is possible to construct a finite test
suite which is complete in a predefined fault domain for the classical ioco
relation even in the presence of input/output conflicts. We demonstrate that it
is possible under certain assumptions about the specification and
implementation, by proposing a method for complete test generation, based on a
traditional method developed for FSM.Comment: In Proceedings MBT 2014, arXiv:1403.704
The complexity of asynchronous model based testing
This is the post-print version of the final paper published in Theoretical Computer Science. The published article is available from the link below. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. Copyright @ 2012 Elsevier B.V.In model based testing (MBT), testing is based on a model MM that typically is expressed using a state-based language such as an input output transition system (IOTS). Most approaches to MBT assume that communications between the system under test (SUT) and its environment are synchronous. However, many systems interact with their environment through asynchronous channels and the presence of such channels changes the nature of testing. In this paper we investigate the situation in which the SUT interacts with its environment through asynchronous channels and the problems of producing test cases to reach a state, execute a transition, or to distinguish two states. In addition, we investigate the Oracle Problem. All four problems are explored for both FIFO and non-FIFO channels. It is known that the Oracle Problem can be solved in polynomial time for FIFO channels but we also show that the three test case generation problems can also be solved in polynomial time in the case where the IOTS is observable but the general test generation problems are EXPTIME-hard. For non-FIFO channels we prove that all of the test case generation problems are EXPTIME-hard and the Oracle Problem in NP-hard, even if we restrict attention to deterministic IOTSs
Scenarios-based testing of systems with distributed ports
Copyright @ 2011 John Wiley & SonsDistributed systems are usually composed of several distributed components that communicate with their environment through specific ports. When testing such a system we separately observe sequences of inputs and outputs at each port rather than a global sequence and potentially cannot reconstruct the global sequence that occurred. Typically, the users of such a system cannot synchronise their actions during use or testing. However, the use of the system might correspond to a sequence of
scenarios, where each scenario involves a sequence of interactions with the system that, for example, achieves a particular objective. When this is the case there is the potential for there to be a significant
delay between two scenarios and this effectively allows the users of the system to synchronise between scenarios. If we represent the specification of the global system by using a state-based notation, we
say that a scenario is any sequence of events that happens between two of these operations. We can encode scenarios in two different ways. The first approach consists of marking some of the states of the specification to denote these synchronisation points. It transpires that there are two ways to interpret such models and these lead to two implementation relations. The second approach consists
of adding a set of traces to the specification to represent the traces that correspond to scenarios. We show that these two approaches have similar expressive power by providing an encoding from marked states to sets of traces. In order to assess the appropriateness of our new framework, we show that it represents a conservative extension of previous implementation relations defined in the context of the distributed test architecture: if we onsider that all the states are marked then we simply obtain ioco (the classical relation for single-port systems) while if no state is marked then we obtain dioco (our previous relation for multi-port systems). Finally, we concentrate on the study of controllable
test cases, that is, test cases such that each local tester knows exactly when to apply inputs. We give two notions of controllable test cases, define an implementation relation for each of these notions, and relate them. We also show how we can decide whether a test case satisfies these conditions.Research partially supported by the Spanish MEC project TESIS (TIN2009-14312-C02-01), the UK EPSRC project Testing of Probabilistic and Stochastic Systems (EP/G032572/1), and the UCM-BSCH programme to fund research groups (GR58/08 - group number 910606)
Recommended from our members
Combining centralised and distributed testing
Many systems interact with their environment at distributed interfaces (ports) and sometimes it is not possible to place synchronised local testers at the ports of the system under test (SUT). There are then two main approaches to testing: having independent local testers or a single centralised tester that interacts asynchronously with the SUT. The power of using independent testers has been captured using implementation relation \dioco. In this paper we define implementation relation \diococ for the centralised approach and prove that \dioco and \diococ are incomparable. This shows that the frameworks detect different types of faults and so we devise a hybrid framework and define an implementation relation \diocos for this. We prove that the hybrid framework is more powerful than the distributed and centralised approaches. We then prove that the Oracle problem is NP-complete for \diococ and \diocos but can be solved in polynomial time if we place an upper bound on the number of ports. Finally, we consider the problem of deciding whether there is a test case that is guaranteed to force a finite state model into a particular state or to distinguish two states, proving that both problems are undecidable for the centralised and hybrid frameworks
On testing concurrent systems through contexts of queues
Concurrent systems, including asynchronous circuits, computer networks, and multi-threaded programs, have important applications, but they are also very complex and expensive to test. This thesis studies how to test concurrent systems through contexts consisting of queues. Queues, modeling buffers and communication delays, are an integral part of the test settings for concurrent systems. However, queues can also distort the behavior of the concurrent system as observed by the tester, so one should take into account the queues when defining conformance relations or deriving tests. On the other hand, queues can cause state explosion, so one should avoid testing them if they are reliable or have already been tested. To solve these problems, we propose two different solutions. The first solution is to derive tests using some test selection criteria such as test purposes, fault coverage, and transition coverage. The second solution is to compensate for the problems caused by the queues so that testers do not discern the presence of the queues in the first place. Unifying the presentation of the two solutions, we consider in a general testing framework partial specifications, various contexts, and a hierarchy of conformance relations. Case studies on test derivation for asynchronous circuits, communication protocols, and multi-threaded programs are presented to demonstrate the applications of the results
Passive Testing with Asynchronous Communications and Timestamps
We develop a formal passive testing framework for software systems
where parties communicate asynchronously. Monitors, placed in between the en-
tities, check that a certain property holds over the observations of the interaction
between users and the System Under Test (SUT). Due to the asynchronous nature
of communications, the trace observed by the monitor might differ from the one
produced by the SUT: the monitor observes inputs before they are received by
the SUT and outputs are observed after they are sent by the SUT. It is neces-
sary to take this into account in passive testing; otherwise we might obtain false
positives or false negatives. In order to better assess the real causality between
actions, we consider the case where each action is labelled with a timestamp giv-
ing the time when it was observed at the monitor. We also assume that we know
bounds on network latency and so the timestamps allow us to determine additional
causalities between actions. Our monitors are implemented as automata that take
into account communications being asynchronous. Our solution checks properties
against traces in polynomial time and has low storage requirements. Therefore,
our proposal is suitable for real-time passive testing.Research partially supported by the projects DArDOS (TIN2015-65845-C3-1-R
(MINECO/FEDER)) and SICOMORo-CM (S2013/ICE-3006)
Formal correctness of a passive testing approach for timed systems
In this paper we extend our previous work on passive
testing of timed systems to establish a formal criterion to determine correctness of an implementation under test. In our framework, an invariant expresses the fact that if the implementation under test performs a given sequence of actions, then it must exhibit a behavior in a lapse of time reflected in the invariant. In a previous paper we gave an algorithm to establish the correctness of an invariant with respect to a specification. In this paper we continue the work by providing an algorithm to check the correctness of a log, recorded form the implementation under test, with respect to an invariant. We show the soundness of our method by relating it to an implementation relation. In addition to the theoretical framework we have developed a tool, called PASTE, that facilitates the automation of our passive testing approach
Recent Developments in Smart Healthcare
Medicine is undergoing a sector-wide transformation thanks to the advances in computing and networking technologies. Healthcare is changing from reactive and hospital-centered to preventive and personalized, from disease focused to well-being centered. In essence, the healthcare systems, as well as fundamental medicine research, are becoming smarter. We anticipate significant improvements in areas ranging from molecular genomics and proteomics to decision support for healthcare professionals through big data analytics, to support behavior changes through technology-enabled self-management, and social and motivational support. Furthermore, with smart technologies, healthcare delivery could also be made more efficient, higher quality, and lower cost. In this special issue, we received a total 45 submissions and accepted 19 outstanding papers that roughly span across several interesting topics on smart healthcare, including public health, health information technology (Health IT), and smart medicine
Future Trends and Challenges for Mobile and Convergent Networks
Some traffic characteristics like real-time, location-based, and
community-inspired, as well as the exponential increase on the data traffic in
mobile networks, are challenging the academia and standardization communities
to manage these networks in completely novel and intelligent ways, otherwise,
current network infrastructures can not offer a connection service with an
acceptable quality for both emergent traffic demand and application requisites.
In this way, a very relevant research problem that needs to be addressed is how
a heterogeneous wireless access infrastructure should be controlled to offer a
network access with a proper level of quality for diverse flows ending at
multi-mode devices in mobile scenarios. The current chapter reviews recent
research and standardization work developed under the most used wireless access
technologies and mobile access proposals. It comprehensively outlines the
impact on the deployment of those technologies in future networking
environments, not only on the network performance but also in how the most
important requirements of several relevant players, such as, content providers,
network operators, and users/terminals can be addressed. Finally, the chapter
concludes referring the most notable aspects in how the environment of future
networks are expected to evolve like technology convergence, service
convergence, terminal convergence, market convergence, environmental awareness,
energy-efficiency, self-organized and intelligent infrastructure, as well as
the most important functional requisites to be addressed through that
infrastructure such as flow mobility, data offloading, load balancing and
vertical multihoming.Comment: In book 4G & Beyond: The Convergence of Networks, Devices and
Services, Nova Science Publishers, 201