Skip to main content

On the Testability of Properties Patterns

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9276))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems - Specification. Springer, New York (1992)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. Specification Patterns: March 2015. http://patterns.projects.cis.ksu.edu/

  4. Nahm, R., Grabowski, J., Hogrefe, D.: Test case generation for temporal properties. Technical report, Bern University (1993)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. Baier, C., Katoen, J.P.: Principles of Model Checking (Representation and Mind Series). The MIT Press, Cambridge (2008)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. Java PathFinder: March 2015. http://babelfish.arc.nasa.gov/trac/jpf/

  11. 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)

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Simone Hanazumi .

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:

$$\begin{aligned} \boxed { \begin{array}{ll} \lozenge \varphi = True\; \mathcal {U}\; \varphi &{} \text {(Eventually operator)}\\ \square \varphi = \lnot \lozenge \lnot \varphi &{} \text {(Always/Henceforth operator)}\\ \varphi \;\mathcal {W}\; \gamma = \square \varphi \vee (\varphi \;\mathcal {U}\; \gamma ) &{} \text {(Weak Until operator)}\\ \end{array} } \end{aligned}$$

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.

figure b

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

Reprints 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)

Publish with us

Policies and ethics