5 research outputs found
Testing timed systems modeled by stream X-machines
Stream X-machines have been used to specify real systems where complex data structures. They are a variety of extended finite state machine where a shared memory is used to represent communications between the components of systems. In this paper we introduce an extension of the Stream X-machines formalism in order to specify systems that present temporal requirements. We add time in two different ways. First, we consider that (output) actions take time to be performed. Second, our formalism allows to specify timeouts. Timeouts represent the time a system can wait for the environment to react without changing its internal state. Since timeous affect the set of available actions of the system, a relation focusing on the functional behavior of systems, that is, the actions that they can perform, must explicitly take into account the possible timeouts. In this paper we also propose a formal testing methodology allowing to systematically test a system with respect to a specification. Finally, we introduce a test derivation algorithm. Given a specification, the derived test suite is sound and complete, that is, a system under test successfully passes the test suite if and only if this system conforms to the specification
Formal Testing of Timed and Probabilistic Systems
Abstract. This talk reviews some of my contributions on formal testing of timed and probabilistic systems, focusing on methodologies that allow their users to decide whether these systems are correct with respect to a formal specification. The consideration of time and probability complicates the definition of these frameworks since there is not an obvious way to define correctness. For example, in a specific situation it might be desirable that a system is as fast as possible while in a different application it might be required that the performance of the system is exactly equal to the one given by the specification. All the methodologies have as common assumption that the system under test is a black-box and that the specification is described as a timed and/or probabilistic extension of the finite state machines formalism
Using genetic algorithms to generate test sequences for complex timed systems
The generation of test data for state based specifications is a computationally expensive process. This problem is magnified if we consider that time con- straints have to be taken into account to govern the transitions of the studied system. The main goal of this paper is to introduce a complete methodology, sup- ported by tools, that addresses this issue by represent- ing the test data generation problem as an optimisa- tion problem. We use heuristics to generate test cases. In order to assess the suitability of our approach we consider two different case studies: a communication protocol and the scientific application BIPS3D. We give details concerning how the test case generation problem can be presented as a search problem and automated. Genetic algorithms (GAs) and random search are used to generate test data and evaluate the approach. GAs outperform random search and seem to scale well as the problem size increases. It is worth to mention that we use a very simple fitness function that can be eas- ily adapted to be used with other evolutionary search techniques
Recommended from our members
A verified and optimized Stream X-Machine testing method, with application to cloud service certification
The Stream X-Machine (SXM) testing method provides strong and repeatable guarantees of functional correctness, up to a specification. These qualities make the method attractive for software certification, especially in the domain of brokered cloud services, where arbitrage seeks to substitute functionally equivalent services from alternative providers. However, practical obstacles include: the difficulty in providing a correct specification, the translation of abstract paths into feasible concrete tests, and the large size of generated test suites. We describe a novel SXM verification and testing method, which automatically checks specifications for completeness and determinism, prior to generating complete test suites with full grounding information. Three optimisation steps achieve up to a ten-fold reduction in the size of the test suite, removing infeasible and redundant tests. The method is backed by a set of tools to validate and verify the SXM spec-ification, generate technology-agnostic test suites and ground these in SOAP, REST or rich-client service implementations. The method was initially validated using seven specifications, three cloud platforms and five grounding strategies
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)