Skip to main content
Log in

Testing real-time systems from compositional symbolic specifications

  • Regular Paper
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

Symbolic models for testing real-time systems that abstract both data and time have been investigated. The goal is to address the state space explosion problem that may occur during test case generation. In this context, testing is often investigated by abstracting the structure of the system under test and by observing traces of expected outputs. However, since real-time systems are usually composed of a number of communicating subsystems, the next challenge is to take into account how the composition of subsystems is specified, developed and possibly tested separately or as a whole system. This paper addresses this challenge by providing a sequential and a parallel operator for composing symbolic models of real-time systems and an integration testing strategy that makes use of them. Also, we present a case study from the avionics domain and discuss barriers regarding the considered conformance relation.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22

Similar content being viewed by others

Notes

  1. \(G^D\) is assumed to be expressed in a theory in which satisfiability is decidable.

  2. Let set(j) be the function that converts the tuple j in a set.

  3. A complete presentation of test purposes and test cases with accept and inconclusive paths generated using the SYMBOLRT tool as well as an implementation of the compositional operators are available at https://sites.google.com/site/compositionaltioco/.

  4. https://sites.google.com/site/compositionaltioco/.

References

  1. Andrade, W.L., Almeida, D.R., Cândido, J.B., Machado, P.D.L.: SYMBOLRT: a tool for symbolic model-based test case generation for real-time systems. In: 19th tools session of the 3rd Brazilian conference on software: theory and practice (CBSoft 2012), Best Tool Award, pp. 31–37 (2012). https://sites.google.com/a/computacao.ufcg.edu.br/symbolrt

  2. Andrade, W.L., Machado, P.D.: Generating test cases for real-time systems based on symbolic models. IEEE Trans. Softw. Eng. 39(9), 1216–1229 (2013). doi:10.1109/TSE.2013.13

    Article  Google Scholar 

  3. Android developers. http://developer.android.com/. Accessed 04 June, 2014

  4. Bengtsson, J., Yi, W.: Timed automata: semantics, algorithms and tools. In: Lectures on concurrency and petri nets, pp. 87–124. Springer, Berlin (2004)

  5. Bertrand, N., Jéron, T., Stainer, A., Krichen, M.: Off-line test selection with test purposes for non-deterministic timed automata. In: Proceedings of TACAS’11/ETAPS’11, pp. 96–111. Springer, Berlin (2011). http://dl.acm.org/citation.cfm?id=1987389.1987402

  6. Bijl, M., Rensink, A., Tretmans, J.: Compositional testing with ioco. In: Petrenko, A., Ulrich, A. (eds.) Formal Approaches to Software Testing, LNCS, vol. 2931, pp. 86–100. Springer, Berlin Heidelberg (2004). doi:10.1007/978-3-540-24617-6_7

  7. Binder, R.: Testing Object-Oriented Software Testing: Models, Patterns, and Tools. Addison-Wesley Professional, Boston (2000)

    Google Scholar 

  8. Bozga, M., Graf, S., Mounier, L.: If-2.0: a validation environment for component-based real-time systems. In: Computer aided verification, pp. 343–348. Springer, Berlin (2002)

  9. Daca, P., Henzinger, T.A., Krenn, W., Ničković, D.: Compositional specifications for ioco testing. In: Proceedings of IEEE international conference on software testing, verification and validation IEEE , vol. 7, pp. 373–382 (2014)

  10. Damasceno, A., Machado, P.D.L., Andrade, W.L.: Symbolic test case generation of compositional real-time systems driven by interruptions. In: 18th international symposium on real-time distributed computing, pp. 228–235. IEEE Computer Society, Auckland-NZ (2015). doi:10.1109/ISORC.2015.38

  11. Damasceno, A.C.: Testing real-time systems from compositional symbolic specifications (2015). Technical report SPLAB-2015-003. https://goo.gl/nH7BQ5

  12. Flight Navigator Handbook. United States Government Printing Office. U.S. Department of Transportation, Federal Aviation Transportation (2011). http://www.faa.gov/

  13. Hessel, A., Larsen, K.G., Mikucionis, M., Nielsen, B., Pettersson, P., Skou, A.: Testing real-time systems using UPPAAL. In: Hierons, R.M., Bowen, J.P., Harman, M. (eds.) Formal Methods and Testing, LNCS, vol. 4949, pp. 77–117. Springer, Berlin (2008)

    Chapter  Google Scholar 

  14. Jard, C., Jéron, T.: TGV: theory, principles and algorithms. Int. J. Softw. Tools Technol. Transf. 7(4), 297–315 (2005)

    Article  Google Scholar 

  15. Java platform, standard edition 8 api specification. http://docs.oracle.com/javase/8/docs/api/. Accessed 04 June, 2014

  16. Krichen, M., Tripakis, S.: Interesting properties of the real-time conformance relation tioco. Theor. Asp. Comput. ICTAC 2006, 317–331 (2006)

    MathSciNet  MATH  Google Scholar 

  17. Lacomme, P., Marchais, J.C., Hardange, J.P., Normant, E.: Air and Spaceborne Radar Systems: An Introduction. William Andrew, New York (2001)

    Google Scholar 

  18. Laplante, P.: Real-Time Systems Design and Analysis. Wiley, India (2009)

    Google Scholar 

  19. Locke, D., Lucas, L., Goodenough, J.: Generic avionics software specification (cmu/sei-90-tr-008) (1990). http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=11181

  20. Pacheco, P.: An Introduction to Parallel Programming. Elsevier, Amsterdam (2011)

    Google Scholar 

  21. Peleska, J., Honisch, A., Lapschies, F., Löding, H., Schmid, H., Smuda, P., Vorobev, E., Zahlten, C.: A real-world benchmark model for testing concurrent real-time systems in the automotive domain. In: Wolff, B., Zaïdi, F. (eds.) Testing Software and Systems, LNCS, vol. 7019, pp. 146–161. Springer, Berlin Heidelberg (2011). doi:10.1007/978-3-642-24580-0_11

  22. Sampaio, A., Nogueira, S., Mota, A.: Compositional verification of input-output conformance via csp refinement checking. Formal Methods Softw. Eng., pp. 20–48 (2009)

  23. Scarlett–Scalable and Reconfigurable Eletronics Platforms and Tools. http://www.scarlettproject.eu. Accessed 04 June, 2014

  24. Timo, O.N., Rollet, A.: Test selection for data-flow reactive systems based on observations. In: 2011 IEEE fourth international conference on software testing, verification and validation workshops (ICSTW), 7th workshop on advances in model based testing (A-MOST 2011), pp. 1–8, IEEE Computer Society (2011). doi:10.1109/ICSTW.2011.71

  25. Tretmans, J.: Testing concurrent systems: a formal approach. In: CONCUR’99 Concurrency Theory, pp. 46–65. Springer, Berlin (1999)

  26. Utting, M., Legeard, B.: Practical Model Based Testing: A Tools Approach. Elsevier, Amsterdam (2007)

    Google Scholar 

  27. Van Der Bijl, M., Rensink, A., Tretmans, J.: Compositional testing with ioco. In: Formal Approaches to Software Testing, pp. 86–100. Springer, Berlin (2004)

  28. von Styp, S., Bohnenkamp, H., Schmaltz, J.: A conformance testing relation for symbolic timed automata. In: Chatterjee, K., Henzinger, T. (eds.) Formal Modeling and Analysis of Timed Systems, LNCS, vol. 6246, pp. 243–255. Springer, Berlin/Heidelberg (2010). doi:10.1007/978-3-642-15297-9_19

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Adriana C. Damasceno.

Additional information

This work is supported by CNPq grants 484643/2011-8, 560014/2010-4 and Federal University of Campina Grande (UFCG). We thank reviewers for their helpful comments on how to improve this paper.

Appendix: proofs

Appendix: proofs

Theorem 1

(tioco Sequential composition) Let \(\mathcal {S}_1\) and \(\mathcal {S}_2\) be specifications and \(\mathcal {I}_1\), \(\mathcal {I}_2\) be implementations modeled by TIOSTSs that meet Definition 6. If \(\mathcal {I}_{1}\) tioco \(\mathcal {S}_1 \wedge \mathcal {I}_2\) tioco \(\mathcal {S}_2\) then \( \mathcal {I}_1;_{a_{c1}}\mathcal {I}_2\) tioco \(\mathcal {S}_1;_{a_{c1}} \mathcal {S}_2\).

Proof

According to Definition 4, we need to prove that

\(\forall \sigma _1 \in \) Traces(\(\mathcal {S}_1\)): Out(\(\mathcal {I}_1\) after \(\sigma _1\)) \(\subseteq \) Out(\(\mathcal {S}_1\) after \(\sigma _1\)) \(\wedge \)

\(\forall \sigma _2 \in \) Traces(\(\mathcal {S}_2\)): Out(\(\mathcal {I}_2\) after \(\sigma _2\)) \(\subseteq \) Out(\(\mathcal {S}_2\) after \(\sigma _2\)) \(\Rightarrow \)

\(\forall \sigma \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): Out(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) after \(\sigma \)) \(\subseteq \) Out(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \(\sigma \))

To correspond TIOLTS states (Definition 2) used by Tra-ces to TIOSTS locations (Definition 1) used by the sequential operator and improve this proof readability, let TIOLTS \( [\![\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2]\!] = \langle S, S^0, Act, T \rangle \) and \(S_{(l^0_{c1}, l^0_2)} = \{ \langle l, \nu , \psi \rangle | \langle l, \nu , \psi \rangle \in S \wedge \langle l, \nu , \psi \rangle \mathop {\longrightarrow }\limits ^{\langle a, \gamma \rangle } \langle (l^0_{c1}, l^0_2), \nu ^{\prime }, \psi ^{\prime } \rangle \}\). In addition, \(\sigma , \rho \in \) Traces (\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)) and \(\sigma = \rho \cdot a\). By Definition 3, \(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2 \mathop {\rightarrow }\limits ^{\rho \cdot a}\) and \(\rho \cdot a \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)). From Definition 6, \(\sigma \) is fivefold:

  1. (1)

    \(\sigma = \epsilon \)

    We replace \(\sigma \) by \(\epsilon \) in Definition 4, resulting in Out(\(\mathcal {I}_1\) after \(\sigma _1\)) \(\subseteq \) Out(\(\mathcal {S}_1\) after \(\sigma _1\)) \(\wedge \) Out(\(\mathcal {I}_2\) after \(\sigma _2\)) \(\subseteq \) Out(\(\mathcal {S}_2\) after \(\sigma _2\)) \(\Rightarrow \) Out(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) after \(\epsilon \)) \(\subseteq \) Out(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \(\epsilon \)). Since \(\epsilon \) belongs to any set of traces, this trivially holds.

  2. (2)

    \(\sigma = \rho \cdot a\) with \(a \in \varSigma _1 \; \wedge s \not \in S_{(l^0_{c1}, l^0_2)}\)

    We use (1) from Definition 6, resulting in \(\rho = \sigma _1\) and \(\sigma _1 \cdot a \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)). Because we assume that \(\forall \sigma _1 \in \) Traces(\(\mathcal {S}_1\)): Out(\(\mathcal {I}_1\) after \(\sigma _1\)) \(\subseteq \) Out(\(\mathcal {S}_1\) after \(\sigma _1\)), we have \(\forall \sigma _1 \cdot a \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): Out(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) after \(\sigma _1 \cdot a\)) \(\subseteq \) Out(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \(\sigma _1 \cdot a\)) and, by Definition 4, \(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) tioco \(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\).

  3. (3)

    \(\sigma = \rho \cdot a\) with \(a \in \varSigma _1 \; \wedge s \in S_{(l^0_{c1}, l^0_2)}\)

    We use (3) from Definition 6, resulting in \(\rho = \sigma _1\), \(a \ne a_{c1}\) and \(\sigma _1 \cdot a \in \) Traces( \(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)). Since we assume \(\forall \sigma _1 \in \) Traces(\(\mathcal {S}_1\)): Out(\(\mathcal {I}_1\) after \(\sigma _1\)) \(\subseteq \) Out(\(\mathcal {S}_1\) after \(\sigma _1\)) and \(\mathcal {S}_1\) and \(\mathcal {S}_2\) follow SC normal form from Definition 5, we have \(\forall \sigma _1 \cdot a \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): (\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \(\sigma _1 \cdot a\)) = \(\{ \langle l, \nu , \psi \rangle | l = (l^0_{c1}, l^0_2)\}\). Thus, \(\forall \; \sigma _1 \cdot a \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): Out(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \(\sigma _1 \cdot a\)) = \(\{ \langle a, \gamma \rangle | a = a_{c1})\}\).

    In addition, assuming that \(\mathcal {I}_1\) and \(\mathcal {I}_2\) follow SC normal form from Definition 5 and \(\forall \sigma _1 \in \) Traces(\(\mathcal {S}_1\)): Out(\(\mathcal {I}_1\) after \(\sigma _1\)) \(\subseteq \) Out(\(\mathcal {S}_1\) after \(\sigma _1\)), we have \(\forall \sigma _1 \cdot a \in \) Traces(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\)): Out(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) after \(\sigma _1 \cdot a\)) = \(\{ \langle a, \gamma \rangle | a = a_{c1})\}\). Finally, \(\forall \sigma _1 \cdot a \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): Out(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) after \(\sigma _1 \cdot a\)) = Out(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \(\sigma _1 \cdot a\)). Hence, \(\forall \sigma _1 \cdot a \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): Out(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) after \(\sigma _1 \cdot a\)) \(\subseteq \) Out(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \(\sigma _1 \cdot a\)) and, by Definition 4, \(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) tioco \(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\).

  4. (4)

    \(\sigma = \rho \cdot a\) with \(a = a_{c1}\)

    We use (5) from Definition 6, resulting in \(\rho = \sigma _1\) and \(\sigma _1 \cdot a_{c1} \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)). Since we assume \(\forall \sigma _1 \in \) Traces(\(\mathcal {S}_2\)): Out(\(\mathcal {I}_2\) after \( \sigma _1\)) \(\subseteq \) Out(\(\mathcal {S}_2\) after \( \sigma _1\)) and \(\mathcal {S}_1\) and \(\mathcal {S}_2\) follow Definition 5, \(\forall \sigma _1 \cdot a_{c1} \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): (\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \( \sigma _1 \cdot a_{c1}\)) = \(\{ \langle l, \nu , \psi \rangle | l = (l_{c1}, l^{0\prime }_2)\}\). Because we use (4) and (5) from Definition 6, \(\forall \sigma _1 \cdot a_{c1} \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): Out(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \( \sigma _1 \cdot a_{c1}\)) = Out (\(\mathcal {S}_2\) after \(\overline{a_{c1}}\)).

    Moreover, assuming that Out(\(\mathcal {I}_2\) after \( \sigma _1\)) \(\subseteq \) Out(\(\mathcal {S}_2\) after \( \sigma _1\)) and \(\mathcal {I}_1\) and \(\mathcal {I}_2\) follow Definition 5, we have Out(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) after \( \sigma _1 \cdot a_{c1}\)) = Out (\(\mathcal {S}_2\) after \(\overline{a_{c1}}\)). Thus, \(\forall \sigma _1 \cdot a_{c1} \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): Out(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) after \( \sigma _1 \cdot a_{c1}\)) = Out(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \( \sigma _1 \cdot a_{c1}\)) and \(\forall \sigma _1 \cdot a_{c1} \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): Out(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) after \( \sigma _1 \cdot a_{c1}\)) \(\subseteq \) Out(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \( \sigma _1 \cdot a_{c1}\)). By Definition 4, \(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) tioco \(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\).

  5. (5)

    \(\sigma = \rho \cdot a\) with \(a \in \varSigma _2 \backslash \{\overline{a_{c1}}\}\)

    We use (2) from Definition 6, resulting in \(\rho = \sigma _1 \cdot a_{c1} \cdot \sigma _2\) and \(\sigma _1 \cdot a_{c1} \cdot \sigma _2 \cdot a \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)). Because we assume that \(\forall \sigma _1 \in \) Traces(\(\mathcal {S}_1\)): Out(\(\mathcal {I}_1\) after \(\sigma _1\)) \(\subseteq \) Out(\(\mathcal {S}_1\) after \(\sigma _1\)), \(\forall \sigma _2 \in \) Traces(\(\mathcal {S}_2\)): Out(\(\mathcal {I}_2\) after \(\sigma _2\)) \(\subseteq \) Out(\(\mathcal {S}_2\) after \(\sigma _2\)) and Definition 5 constrains clocks from \(C_2\) to restart from the transition that contains the \(a_{c1}\) action, we have \(\forall \sigma _1 \cdot a_{c1} \cdot \sigma _2 \cdot a \; \in \) Traces(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\)): Out(\(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) after \(\sigma _1 \cdot a_{c1} \cdot \sigma _2 \cdot a\)) \(\subseteq \) Out(\(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\) after \(\sigma _1 \cdot a_{c1} \cdot \sigma _2 \cdot a\)) and, by Definition 4, \(\mathcal {I}_1 ;_{a_{c1}} \mathcal {I}_2\) tioco \(\mathcal {S}_1 ;_{a_{c1}} \mathcal {S}_2\).

Lemma 1

If \(\mathcal {S}_1\) and \(\mathcal {S}_2\) are two input-complete TIOSTS, \(\mathcal {S}_1 \parallel \mathcal {S}_2\) is also input-complete.

Proof

A location l of \(\mathcal {S}_1 \parallel \mathcal {S}_2\) is a pair \((l_1, l_2)\) where \(l_1 \in L_1\) and \(l_2 \in L_2\). By assumption, \(\mathcal {S}_1\) and \(\mathcal {S}_2\) are input-complete with relation to \(\varSigma ^{?}_1\) and \(\varSigma ^{?}_2\) in this sequence. Thus, \(\forall \; a_i \in \varSigma ^{?}_i\), \(l_i\mathop {\rightarrow }\limits ^{a}\) with \(i = 1, 2\). From this point, we identify two cases:

  1. (1)

    \((a \not \in \varSigma _2) \vee (a \not \in \varSigma _1)\)

    For each \(((l_1, l_2), a, G, A, d, (l^{\prime }_1, l^{\prime }_2)) \in \mathcal {T}\), \(a = a_1\) or \(a = a_2\). Hence, \(a \in \mathcal {S}_1 \parallel \mathcal {S}_2\) and \(l\mathop {\rightarrow }\limits ^{a}\) holds.

  2. (2)

    \((a \in \; \varSigma \mathop {_1}\limits ^{?} \cap \varSigma \mathop {_2}\limits ^{!}) \vee (a \in \varSigma \mathop {_1}\limits ^{!} \cap \varSigma \mathop {_2}\limits ^{?})\)

    For each \(((l_1, l_2), a, G, A, d, (l^{\prime }_1, l^{\prime }_2)) \in \mathcal {T}\), \(a \not \in \varSigma ^{?}_1 \cap \varSigma ^{?}_2\). Hence, this trivially holds.

Lemma 2

Let \(\mathcal {I}\) and \(\mathcal {S}\) be two input-complete TIOSTS such that \(\varSigma _\mathcal {I} = \varSigma _\mathcal {S}\). Thus

\(\mathcal {I}\) tioco \(\mathcal {S} \Leftrightarrow \) Traces(\(\mathcal {I}\)) \(\subseteq \) Traces(\(\mathcal {S}\)).

Proof

The proof of this theorem follows a similar line of reasoning as the one presented by Krichen and Tripakis [16] for the parallel synchronization operator in the scope of TAIO models. Accordingly, considering Lemma 2, we need to prove that

  • Traces(\(\mathcal {I}_1\)) \(\subseteq \) Traces(\(\mathcal {S}_1\)) \(\wedge \)

  • Traces(\(\mathcal {I}_2\)) \(\subseteq \) Traces(\(\mathcal {S}_2\)) \(\Rightarrow \)

  • Traces(\(\mathcal {I}_1 \parallel \mathcal {I}_2\)) \(\subseteq \) Traces(\(\mathcal {S}_1 \parallel \mathcal {S}_2\)).

Let \(\sigma , \rho \in \) Traces(\(\mathcal {I}_1 \parallel \mathcal {I}_2\)). From Definition 7, \(\sigma \) can be fourfold:

  1. i)

    \(\sigma = \epsilon \) \(\epsilon \in \) Traces(\(\mathcal {I}_1 \parallel \mathcal {I}_2\)) and hence \(\mathcal {I}_1 \parallel \mathcal {I}_2 \mathop {\rightarrow }\limits ^{\epsilon } \mathcal {I}^{\prime }_1 \parallel \mathcal {I}^{\prime }_2\) by (8). Since \(\epsilon \in \) Traces(\(\mathcal {S}_1 \parallel \mathcal {S}_2\)) by the definition of a general set, this trivially holds.

  2. ii)

    \(\sigma = \rho \cdot a\) with \(a \not \in \varSigma _2\). Because \(a \not \in \varSigma _2\), we can apply (6), which results \(\rho \cdot a \in \) Traces(\(\mathcal {I}_1 \parallel \mathcal {I}_2\)). Since we assume that Traces(\(\mathcal {I}_1\)) \(\subseteq \) Traces(\(\mathcal {S}_1\)) and \(\varSigma _{\mathcal {I}_1} = \varSigma _{\mathcal {S}_1}\), \(\mathcal {S}_1 \parallel \mathcal {S}_2 \mathop {\longrightarrow }\limits ^{\rho \cdot a}\), which implies that \(\rho \cdot a \in \) Traces(\(\mathcal {S}_1 \parallel \mathcal {S}_2\)). Consequently, Traces(\(\mathcal {I}_1 \parallel \mathcal {I}_2\)) \(\subseteq \) Traces(\(\mathcal {S}_1 \parallel \mathcal {S}_2\)).

  3. iii)

    \(\sigma = \rho \cdot a\) with \(a \not \in \varSigma _1\). Analogous to ii).

  4. iv)

    \(\sigma = \rho \cdot a\) with \((a \in \varSigma ^{?}_{1} \cap \varSigma ^{!}_{2}) \vee (a \in \varSigma ^{!}_{1} \cap \varSigma ^{?}_{2})\). Because \((a \in \varSigma ^{?}_{1} \cup \varSigma ^{!}_{2}) \vee (a \in \varSigma ^{!}_{1} \cup \varSigma ^{?}_{2})\), we can apply (8), which results \(\rho \cdot a \in \) Traces(\(\mathcal {I}_1 \parallel \mathcal {I}_2\)). Since Traces(\(\mathcal {I}_1\)) \(\subseteq \) Traces(\(\mathcal {S}_1\)) \(\wedge \) Traces(\(\mathcal {I}_2\)) \(\subseteq \) Traces(\(\mathcal {S}_2\)), a is synchronizable in \(\mathcal {I}_1 \parallel \mathcal {I}_2\) and \(a \; \in \varSigma ^{!}_{1} \cup \varSigma ^{!}_{2}\). In addition, \(\mathcal {I}_1\) and \(\mathcal {I}_2\) are input-complete, so \(\mathcal {I}_1 \parallel \mathcal {I}_2\) is input-complete by Lemma 1. Similarly, \(\mathcal {S}_1 \parallel \mathcal {S}_2\) is input-complete. By the input-completeness and synchronization of \(\mathcal {S}_1 \parallel \mathcal {S}_2\), \(\mathcal {S}_1 \parallel \mathcal {S}_2\mathop {\longrightarrow }\limits ^{\rho \cdot a}\) holds and Traces(\(\mathcal {I}_1 \parallel \mathcal {I}_2\)) \(\subseteq \) Traces(\(\mathcal {S}_1 \parallel \mathcal {S}_2\)). \(\square \)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Damasceno, A.C., Machado, P.D.L. & Andrade, W.L. Testing real-time systems from compositional symbolic specifications. Int J Softw Tools Technol Transfer 19, 53–71 (2017). https://doi.org/10.1007/s10009-015-0390-1

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-015-0390-1

Keywords

Navigation