Abstract
The specification pattern system (SPS) provides a simple methodology to specify program properties that can be used during software testing and verification. The testability concept establishes a connection between temporal properties and program traces to show which properties classes can actually be verified to reach a success/fail verdict. In this paper, we combine the SPS with the testability concept, showing that properties specified with certain patterns in global and local scopes are testable for programs with finite executions. This result implies that any property that is specified using this set of SPS patterns and scopes will receive a success/fail verdict when it is verified against a finite execution program by a model checker. In addition, we can analyze the program and property traces that are obtained in the verification process to extract data that can guide us in the test cases generation.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems - Specification. Springer, New York (1992)
Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Patterns in property specifications for finite-state verification. In: Proceedings of ICSE 1999, pp. 411–420. ACM, New York (1999)
Specification Patterns: March 2015. http://patterns.projects.cis.ksu.edu/
Nahm, R., Grabowski, J., Hogrefe, D.: Test case generation for temporal properties. Technical report, Bern University (1993)
Falcone, Y., Fernandez, J.-C., Jéron, T., Marchand, H., Mounier, L.: More testable properties. In: Petrenko, A., Simão, A., Maldonado, J.C. (eds.) ICTSS 2010. LNCS, vol. 6435, pp. 30–46. Springer, Heidelberg (2010)
Hanazumi, S., de Melo, A.C.V.: A classification of test purposes based on testable properties. In: Gervasi, O., Murgante, B., Misra, S., Gavrilova, M.L., Rocha, A.M.A.C., Torre, C., Taniar, D., Apduhan, B.O. (eds.) ICCSA 2015. LNCS, vol. 9155, pp. 418–430. Springer, Heidelberg (2015)
Baier, C., Katoen, J.P.: Principles of Model Checking (Representation and Mind Series). The MIT Press, Cambridge (2008)
Salamah, S., Gates, A.Q., Roach, S., Mondragon, O.: Verifying pattern-generated LTL formulas: a case study. In: Godefroid, P. (ed.) SPIN 2005. LNCS, vol. 3639, p. 200. Springer, Heidelberg (2005)
Zoppi, E., Braberman, V., de Caso, G., Garbervetsky, D., Uchitel, S.: Contractor.net: inferring typestate properties to enrich code contracts. In: Proceedings of TOPI 2011, pp. 44–47. ACM, New York (2011)
Java PathFinder: March 2015. http://babelfish.arc.nasa.gov/trac/jpf/
Hanazumi, S., de Melo, A.C.V., Păsăreanu, C.S.: From testing purposes to formal JPF properties. In: Java PathFinder Workshop. ACM (2014)
Acknowledgments
This project has been funded by the State of São Paulo Research Foundation (FAPESP) - Processes: 2011/01928-1, 2012/23767-2, 2013/22317-6.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendices
Linear Temporal Logic (LTL)
The linear temporal logic (LTL) [1, 7] is largely used in formal verification theory to represent programs expected behavior through properties. Given a model \(\sigma \) and temporal formulas \(\varphi \) and \(\gamma \), an inductive definition for the notion of a temporal formula \(\varphi \) holding at a position \(j \ge 0\) in \(\sigma \), denoted by \((\sigma ,j)\vDash \varphi \) (satisfaction relation), is presented below.
Additional temporal operators can be defined as follows:
JPF - New Example
Here, consider the same scenarios and the same property of the example presented in Sect. 4:
\(\square (Start \;\wedge \; \lnot Stop \rightarrow (\lnot Stop \;\mathcal {W}\; (Alarm \wedge \lnot Stop)))\)
To achieve a success verdict with this property, we should include in the second scenario of the example a call to Alarm between Start and Stop. Then, JPF will proceed with the verification normally, and we could see a slight change in the automaton edges coverage since the paths that would be traversed in this case might be different from the previous example.
Comparing to the previous output (Listing 1.1), the coverage is 62.50 % since the edge (Node 0, Stop, Node 3) was not traversed due to the no occurrence of property violation. If a 100 % coverage was desirable, other scenarios and the generation of complementary test cases should be considered.
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Hanazumi, S., de Melo, A.C.V. (2015). On the Testability of Properties Patterns. In: Calinescu, R., Rumpe, B. (eds) Software Engineering and Formal Methods. SEFM 2015. Lecture Notes in Computer Science(), vol 9276. Springer, Cham. https://doi.org/10.1007/978-3-319-22969-0_11
Download citation
DOI: https://doi.org/10.1007/978-3-319-22969-0_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-22968-3
Online ISBN: 978-3-319-22969-0
eBook Packages: Computer ScienceComputer Science (R0)