skip to main content
research-article

From Test Purposes to Formal JPF Properties

Published: 06 February 2015 Publication History

Abstract

Software quality is traditionally achieved by applying testing techniques and/or formal verification to the system under development. Formal testing techniques have been defined to assure the software quality based on a set of test purposes the users want to observe on the system under testing (SUT). This paper proposes the use of Java PathFinder (JPF) to observe test purposes, defined as properties, over the whole program behavior. To make this approach available to test community, a user-friendly interface to define test purposes as properties is provided, together with a JPF extension to observe the test purposes. To define a property, the user only needs to select a property pattern, its scope, and the events of interest. Then, a finite-state automaton is generated and can be submitted to JPF to verify the defined property. As a result, JPF provides a report including a property verdict (pass/fail), and the program traces and percentage of the traversed automaton during the verification process. This coverage information can be used to analyze the performed verification and guide a complementary test suite generation.

References

[1]
C. Baier and J.-P. Katoen. Principles of Model Checking (Representation and Mind Series). The MIT Press, 2008.
[2]
D. Balasubramanian, G. Pap, H. Nine, G. Karsai, M. R. Lowry, C. S. Pasareanu, and T. Pressburger. Rapid property speci_cation and checking for model-based formalisms. In International Symposium on Rapid System Prototyping, pages 121--127. IEEE, 2011.
[3]
A. Belinfante. Jtorx: A tool for on-line model-driven test derivation and execution. In J. Esparza and R. Majumdar, editors, Tools and Algorithms for the Construction and Analysis of Systems, volume 6015 of Lecture Notes in Computer Science, pages 266--270. Springer Berlin Heidelberg, 2010.
[4]
M. B. Dwyer, G. S. Avrunin, and J. C. Corbett. Patterns in Property Specifications for Finite-State Veri_cation. In Proceedings of the 21st international conference on Software engineering, ICSE '99, pages 411--420, New York, NY, USA, 1999. ACM.
[5]
C. Jard and T. Jéron. TGV: theory, principles and algorithms: A tool for the automatic synthesis of conformance test cases for non-deterministic reactive systems. Int. J. Softw. Tools Technol. Transf., 7(4):297--315, Aug. 2005.
[6]
Java PathFinder. http://babelfish.arc.nasa.gov/trac/jpf/. Sep. 2014.
[7]
JFlap. http://jflap.org. Sep. 2014.
[8]
JPF-LTL. http://babelfish.arc.nasa.gov/trac/jpf/wiki/summer-projects/2010-ltl-1. Sep. 2014.
[9]
Y. Ledru, L. du Bousquet, P. Bontron, O. Maury, C. Oriat, and M. Potet. Test purposes: Adapting the notion of speci_cation to testing. In 16th IEEE International Conference on Automated Software Engineering (ASE 2001), 26-29 November 2001, Coronado Island, San Diego, CA, USA, pages 127--134. IEEE Computer Society, 2001.
[10]
Matlab. http://www.mathworks.com/products/simulink/index.html. Last access: Sep. 2014.
[11]
R. Mitkov. The Oxford Handbook of Computational Linguistics (Oxford Handbooks in Linguistics S.). Oxford University Press, 2003.
[12]
O. Mondragon, A. Q. Gates, and S. Roach. Prospec: Support for Elicitation and Formal Speci_cation of Software Properties. In Proceedings of Runtime Verification Workshop, ENTCS, 2004.
[13]
S. Patterns. http://patterns.projects.cis.ksu.edu/. Sep. 2014.
[14]
A. Pnueli. The temporal logic of programs. In SFCS '77: Proceedings of the 18th Annual Symposium on Foundations of Computer Science, pages 46--57, Washington, DC, USA, 1977. IEEE Computer Society.
[15]
R. S. Pressman. Software Engineering: A Practitioner's Approach. McGraw-Hill Higher Education, 2001.
[16]
SPF. http://babelfish.arc.nasa.gov/trac/jpf/wiki/projects/jpf-symbc. Sep. 2014.
[17]
J. Tretmans. Formal Methods and Testing. chapter Model based testing with labelled transition systems, pages 1--38. Springer-Verlag, Berlin, Heidelberg, 2008.
[18]
E. Zoppi, V. Braberman, G. de Caso, D. Garbervetsky, and S. Uchitel. Contractor.net: Inferring typestate properties to enrich code contracts. In Proceedings of the 1st Workshop on Developing Tools As Plug-ins, TOPI '11, pages 44--47, New York, NY, USA, 2011. ACM.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 40, Issue 1
January 2015
237 pages
ISSN:0163-5948
DOI:10.1145/2693208
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 February 2015
Published in SIGSOFT Volume 40, Issue 1

Check for updates

Author Tags

  1. Formal Verification
  2. Java
  3. Property Specification
  4. Software Testing

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2017)A Formal Approach to implement java exceptions in cooperative systemsJournal of Systems and Software10.1016/j.jss.2016.07.033131:C(475-490)Online publication date: 1-Sep-2017
  • (2016)Towards MC/DC Coverage of Properties Specification PatternsTheoretical Aspects of Computing – ICTAC 201610.1007/978-3-319-46750-4_10(158-175)Online publication date: 22-Sep-2016
  • (2015)On the Testability of Properties PatternsSoftware Engineering and Formal Methods10.1007/978-3-319-22969-0_11(148-155)Online publication date: 21-Aug-2015
  • (2015)A Classification of Test Purposes Based on Testable PropertiesComputational Science and Its Applications -- ICCSA 201510.1007/978-3-319-21404-7_31(418-430)Online publication date: 19-Jun-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media