8 research outputs found
Compositional testing of management conformance for multi-component enterprise applications
The management of modern enterprise applications is automated by coordinating the deployment, configuration, enactment, and termination of their components. Choosing among different candidate implementations for a specified application component requires such implementations to conform to the specified management behaviour. This holds especially if we wish to ensure that the overall application management can continue as planned, or that no additional (potentially undesired) management activity gets enabled. To this end, we introduce a formal framework for testing "management conformance", i.e., to test whether a candidate implementation can be managed according to the management protocol specifying the allowed management for a component. We also illustrate how our framework enables to run four different conformance tests, each providing a different trade-off between implementation freedom and guarantees on the overall application management. We formally prove that testing management conformance with constraints reducing implementation freedom results in preserving all already allowed management activities when implementing a specification by choosing a conforming implementation and that no additional (potentially undesired) management activity gets enabled. Finally, we assess our framework by means of a prototype implementation and its use in an experimental evaluation
Testing Conformance in Multi-component Enterprise Application Management
Part 1: Formal MethodsInternational audienceModern enterprise applications integrate various heterogeneous components, which management has to be suitably coordinated. Being able to check whether the management allowed by the implementation of an application component conforms to a given specification hence becomes crucial. One may indeed wish to replace component specifications with conforming implementations, by ensuring that already planned management can be enacted, or that no additional (potentially undesired) management activities get enabled. In this perspective, we propose a parametric relation for testing the conformance of the management of application components, based on an existing formalism to model multi-component application management (i.e., management protocols). We also discuss how such relation can be exploited to ensure that replacing a specification with a conforming implementation continues to enable all already allowed management activities, and/or that no additional (potentially undesired) management activity gets enabled
Repairing Timed Automata Clock Guards through Abstraction and Testing
This is the author (and slightly extended) version of the manuscript of the same name published in the proceedings of the 13th International Conference on Tests and Proofs (TAP 2019). This version contains some additional explanations and all proofsInternational audienceTimed automata (TAs) are a widely used formalism to specify systems having temporal requirements. However, exactly specifying the system may be difficult, as the user may not know the exact clock constraints triggering state transitions. In this work, we assume the user already specified a TA, and (s)he wants to validate it against an oracle that can be queried for acceptance. Under the assumption that the user only wrote wrong guard transitions (i.e., the structure of the TA is correct), the search space for the correct TA can be represented by a Parametric Timed Automaton (PTA), i.e., a TA in which some constants are parametrized. The paper presents a process that i) abstracts the initial (faulty) TA tainit in a PTA pta; ii) generates some test data (i.e., timed traces) from pta; iii) assesses the correct evaluation of the traces with the oracle; iv) uses the IMITATOR tool for synthesizing some constraints phi on the parameters of pta; v) instantiate from phi a TA tarep as final repaired model. Experiments show that the approach is successfully able to partially repair the initial design of the user
