Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2660193.2660232acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Bounded exhaustive test input generation from hybrid invariants

Published: 15 October 2014 Publication History

Abstract

We present a novel technique for producing bounded exhaustive test suites from hybrid invariants, i.e., invariants that are expressed imperatively, declaratively, or as a combination of declarative and imperative predicates. Hybrid specifications are processed using known mechanisms for the imperative and declarative parts, but combined in a way that enables us to exploit information from the declarative side, such as tight bounds computed from the declarative specification, to improve the search both on the imperative and declarative sides. Moreover, our technique automatically evaluates different possible ways of processing the imperative side, and the alternative settings (imperative or declarative) for parts of the invariant available both declaratively and imperatively, to decide the most convenient invariant configuration with respect to efficiency in test generation. This is achieved by transcoping, i.e., by assessing the efficiency of the different alternatives on small scopes (where generation times are negligible), and then extrapolating the results to larger scopes.
We also show experiments involving collection classes that support the effectiveness of our technique, by demonstrating that (i) bounded exhaustive suites can be computed from hybrid invariants significantly more efficiently than doing so using state-of-the-art purely imperative and purely declarative approaches, and (ii) our technique is able to automatically determine efficient hybrid invariants, in the sense that they lead to an efficient computation of bounded exhaustive suites, using transcoping.

References

[1]
P. Abad, N. Aguirre, V. S. Bengolea, D. Ciolek, M. F. Frias, J. P. Galeotti, T. Maibaum, M. Moscato, N. Rosner and I. Vissani, Improving Test Generation under Rich Contracts by Tight Bounds and Incremental SAT Solving, in ICST 2013.
[2]
C. Boyapati, S. Khurshid and D. Marinov, Korat: Automated Testing based on Java Predicates, in ISSTA 2002.
[3]
L. Burdy, Y. Cheon, D. R. Cok, M. D. Ernst, J. R. Kiniry, G. T. Leavens, K. Rustan M. Leino and E. Poll, An overview of JML tools and applications, in STTT 7(3), Springer, 2005.
[4]
F. S.-H. Chang and D. Jackson. Symbolic model checking of declarative relational models. In ICSE 2006.
[5]
K. Claessen and J. Hughes, QuickCheck: a lightweight tool for random testing of Haskell programs, in ICFP 2000.
[6]
L. De Moura and N. Bjørner. Z3: An efficient SMT solver. In TACAS 2008.
[7]
G. Dennis, F. Chang, D. Jackson. Verification of Code with SAT, in ISSTA 2006, ACM, 2006.
[8]
B. Dutertre and L. D. Moura. The Yices SMT solver. Technical report, 2006.
[9]
N. Een and N. Sorensson. An Extensible SAT-solver. In SAT 2003.
[10]
M. Frias, J. Galeotti, C. Pombo, and N. Aguirre. DynAlloy: Upgrading Alloy with actions. In ICSE 2005.
[11]
J.P. Galeotti, N. Rosner, C. López Pombo, M. Frias, TACO: Efficient SAT-Based Bounded Verification Using Symmetry Breaking and Tight Bounds. IEEE TSE 39(9): 1283--1307 (2013).
[12]
S. Ganov, S. Khurshid, D. E. Perry. Annotations for Alloy: Automated Incremental Analysis Using Domain Specific Solvers. In ICFEM 2012.
[13]
J. Geldenhuys, N. Aguirre, M. F. Frias and W. Visser, Bounded Lazy Initialization, in NFM 2013, LNCS, Springer, 2013.
[14]
M. Gligoric, T. Gvero, V. Jagannath, S. Khurshid, V. Kuncak and D. Marinov, Test generation through programming in UDITA, in ICSE 2010, Cape Town, South Africa.
[15]
G. J. Holzmann. The model checker SPIN. IEEE TSE 1997.
[16]
D. Jackson, Software Abstractions: Logic, Language and Analysis, The MIT Press, 2006.
[17]
C. Kaner, J. Bach and B. Pettichord, Lessons Learned in Software Testing, Wiley, 2001.
[18]
S. A. Khalek. Systematic Testing Using Test Summaries: Effective and Efficient Testing of Relational Applications. Ph.D. Thesis. University of Texas at Austin, 2011.
[19]
S. A. Khalek, V. P. Narayanan, and S. Khurshid. Mixed constraints for test input generation - An initial exploration. In ASE 2011 (Short paper).
[20]
S. A. Khalek, G. Yang, L. Zhang, D. Marinov and S. Khurshid, TestEra: A Tool for Testing Java Programs using Alloy Specifications, in ASE 2011, IEEE, 2011.
[21]
S. Khurshid and D. Marinov, TestEra: Specification-Based Testing of Java Programs Using SAT, Automated Software Engineering 11(4), Springer, 2004.
[22]
A. S. Koksal, V. Kuncak, and P. Suter. Constraints as Control. In POPL 2012.
[23]
B. Liskov and J. Guttag, Program Development in Java: Abstraction, Specification, and Object-Oriented Design, Addison-Wesley, 2000.
[24]
A. Milicevic, S. Misailovic, D. Marinov and S. Khurshid, Korat: A Tool for Generating Structurally Complex Test Inputs, in ICSE 2007, IEEE Press, 2007.
[25]
A. Milicevic, D. Rayside, K. Yessenov, and D. Jackson. Unifying execution of imperative and declarative code. In ICSE 2011.
[26]
C. Pacheco, S. K. Lahiri, M. D. Ernst and T. Ball, Feedback-Directed Random Test Generation, in ICSE 2007, IEEE, 2007.
[27]
N. Rosner, C. G. López Pombo, N. Aguirre, A. Jaoua, A. Mili and M. F. Frias, Parallel Bounded Verification of Alloy Models by TranScoping, in VSTTE 2014, LNCS, Springer, 2013.
[28]
H. Samimi, E. D. Aung, and T. D. Millstein. Falling back on executable specifications. In ECOOP 2010.
[29]
J. Siddiqui and S. Khurshid, An Empirical Study of Structural Constraint Solving Techniques, in ICFEM 2009, LNCS, Springer, 2009.
[30]
E. Uzuncaova. Efficient specification-based testing using incremental techniques. PhD thesis, UT@Austin, 2008.
[31]
E. Uzuncaova and S. Khurshid. Constraint prioritization for efficient analysis of declarative models. In FM 2008.
[32]
W. Visser, C. Pasareanu and S. Khurshid, Test input generation with java PathFinder, in ISSTA 2004, ACM, 2004.
[33]
T. Xie, D. Marinov and D. Notkin, Rostra: A Framework for Detecting Redundant Object-Oriented Unit Tests, in ASE 2004, IEEE, 2004.
[34]
R. N. Zaeem and S. Khurshid. Contract-based data structure repair using Alloy. In ECOOP 2010.
[35]
The HyTeK distribution can be downloaded from http://bonnie.exp.dc.uba.ar/hytek-oopsla.tar.gz
[36]
http://alloy.mit.edu/

Cited By

View all
  • (2024)BEAPIScience of Computer Programming10.1016/j.scico.2024.103153238:COnline publication date: 1-Dec-2024
  • (2023)Precise Lazy Initialization for Programs with Complex Heap Inputs2023 IEEE 34th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE59848.2023.00080(752-762)Online publication date: 9-Oct-2023
  • (2022)LISSA: Lazy Initialization with Specialized Solver AidProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3556965(1-12)Online publication date: 10-Oct-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '14: Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications
October 2014
946 pages
ISBN:9781450325851
DOI:10.1145/2660193
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 49, Issue 10
    OOPSLA '14
    October 2014
    907 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2714064
    • Editor:
    • Andy Gill
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 October 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. alloy
  2. automated test generation
  3. bounded exhaustive testing
  4. korat
  5. sat solving
  6. transcoping

Qualifiers

  • Research-article

Funding Sources

Conference

SPLASH '14
Sponsor:

Acceptance Rates

OOPSLA '14 Paper Acceptance Rate 52 of 186 submissions, 28%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 27 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)BEAPIScience of Computer Programming10.1016/j.scico.2024.103153238:COnline publication date: 1-Dec-2024
  • (2023)Precise Lazy Initialization for Programs with Complex Heap Inputs2023 IEEE 34th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE59848.2023.00080(752-762)Online publication date: 9-Oct-2023
  • (2022)LISSA: Lazy Initialization with Specialized Solver AidProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3556965(1-12)Online publication date: 10-Oct-2022
  • (2020)Unifying execution of imperative generators and declarative specificationsProceedings of the ACM on Programming Languages10.1145/34282854:OOPSLA(1-26)Online publication date: 13-Nov-2020
  • (2020)MiMIs: Simple, Efficient, and Fast Bounded-Exhaustive Test Case Generators2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST)10.1109/ICST46399.2020.00016(51-62)Online publication date: Oct-2020
  • (2019)Extension-Aware Automated Testing Based on Imperative Predicates2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST)10.1109/ICST.2019.00013(25-36)Online publication date: Apr-2019
  • (2018)Automated workarounds from Java program specifications based on SAT solvingInternational Journal on Software Tools for Technology Transfer (STTT)10.5555/3288063.328808320:6(665-688)Online publication date: 1-Nov-2018
  • (2018)From operational to declarative specifications using a genetic algorithmProceedings of the 11th International Workshop on Search-Based Software Testing10.1145/3194718.3194725(39-42)Online publication date: 28-May-2018
  • (2017)Skeletal program enumeration for rigorous compiler testingACM SIGPLAN Notices10.1145/3140587.306237952:6(347-361)Online publication date: 14-Jun-2017
  • (2017)Bounded exhaustive test-input generation on GPUsProceedings of the ACM on Programming Languages10.1145/31339181:OOPSLA(1-25)Online publication date: 12-Oct-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media