[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1146238.1146262acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
Article

Application of automated environment generation to commercial software

Published: 21 July 2006 Publication History

Abstract

Model checking can be an effective technique for detecting concurrency-related errors in software systems. However, due to scalability issues, to handle industrial-strength software, model checking needs to be combined with powerful reduction techniques. In this work, we applied modular model checking to detect errors in Interstage Business Process Management (I-BPM) software, a Java client-server application spanning more than 500,000 lines of code. To model check a separate module, one needs to represent its context of execution, i.e., its environment. Environment generation is a significant challenge, since the environment is to be general enough to uncover the module's errors, yet restrictive enough to allow tractable model checking.In this paper, we present an experimental study that demonstrates the effectiveness of environment generation as a reduction technique in general and the effectiveness of automated environment generation in particular. Since model checking of the original application was intractable, we compared performance of automatically generated environments to environments written previously by hand. Automatic environments were obtained using Bandera Environment Generator (BEG). We present results of modular verification for both manual and automatic environments. The results show that automatically generated environments produce systems with a smaller state space, yet, for faulty modules, uncover the errors and, for error-free modules, produce coverage similar to manual environments.

References

[1]
R. Alur, P. ćerný, P. Madhusudan, and W. Nam. Synthesis of interface specifications for java classes. In POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 98--109, New York, NY, USA, 2005. ACM Press.]]
[2]
G. S. Avrunin, J. C. Corbett, and L. Dillon. Analyzing partially-implemented real-time systems. In Proceedings of the 19th International Conference on Software Engineering, pages 228--238, 1997.]]
[3]
T. Ball, R. Majumdar, T. Millstein, and S. Rajamani. Automatic predicate abstraction of C programs. In Proceedings of the ACM SIGPLAN '01 Conference on Programming Language Design and Implementation (PLDI-01), pages 203--213, June 2001.]]
[4]
A. Betin-Can, T. Bultan, M. Lindvall, S. Topp, and B. Lux. Application of design for verification with concurrency controllers to air traffic control software. In Proceedings of the 20th IEEE International Conference on Automated Software Engineering, 2005.]]
[5]
C. Boyapati, S. Khurshid, and D. Marinov. Korat: Automated testing based on java predicates, 2002.]]
[6]
G. Brat, K. Havelund, S. Park, and W. Visser. Java PathFinder - a second generation of a Java model-checker. In Proceedings of the Workshop on Advances in Verification, July 2000.]]
[7]
J. M. Cobleigh, D. Giannakopoulou, and C. S. Pǎsǎreanu. Learning assumptions for compositional verification. In Proceedings of the 9th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (LNCS 2619), 2003.]]
[8]
C. Colby, P. Godefroid, and L. J. Jagadeesan. Automatically closing open reactive programs. In SIGPLAN Conference on Programming Language Design and Implementation, pages 345--357, 1998.]]
[9]
J. C. Corbett, M. B. Dwyer, J. Hatcliff, S. Laubach, C. S. Pǎsǎreanu, Robby, and H. Zheng. Bandera : Extracting finite-state models from Java source code. In Proceedings of the 22nd International Conference on Software Engineering, June 2000.]]
[10]
M. B. Dwyer, J. Hatcliff, R. Joehanes, S. Laubach, C. S. Pǎsǎreanu, Robby, W. Visser, and H. Zheng. Tool-supported program abstraction for finite-state verification. In Proceedings of the 23rd International Conference on Software Engineering, May 2001.]]
[11]
M. B. Dwyer, Robby, O. Tkachuk, and W. Visser. Analyzing interaction orderings with model checking. In ASE '04: Proceedings of the 19th IEEE international conference on Automated software engineering, pages 154--163, Washington, DC, USA, 2004. IEEE Computer Society.]]
[12]
C. Flanagan and S. Freund. Atomizer: A dynamic atomocity checker for multithreaded programs. In Proceedings of the 31st ACM Symposium on Principles of Programming Languages (POPL'04), 2004.]]
[13]
C. Flanagan and S. Qadeer. Thread modular model checking. In Model Checking Software (LNCS 2648), May 2003.]]
[14]
S. Freeman, T. Mackinnon, N. Pryce, and J. Walnes. jmock: supporting responsibility-based design with mock objects. In OOPSLA Companion, pages 4--5, 2004.]]
[15]
A. Groce and W. Visser. Model checking java programs using structural heuristics. In ISSTA '02: Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis, pages 12--21, New York, NY, USA, 2002. ACM Press.]]
[16]
J. Hatcliff, M. B. Dwyer, and H. Zheng. Slicing software for model construction. Higher-order and Symbolic Computation, 13(4), 2000.]]
[17]
G. Hughes, S. P. Rajan, T. Sidle, and K. Swenson. Error detection in concurrent java programs. In Workshop on Software Model Checking, 2005.]]
[18]
P. JTest. Website. http://www.parasoft.com.]]
[19]
JUnit. Website. http://www.junit.org.]]
[20]
S. Khurshid, C. S. Pasareanu, and W. Visser. Generalized symbolic execution for model checking and testing. In TACAS, pages 553--568, 2003.]]
[21]
M. Musuvathi and D. Engler. Model checking large network protocol implementations. In The First Symposium on Networked Systems Design and Implementation, 2004.]]
[22]
J. Penix, W. Visser, E. Engstrom, A. Larson, and N. Weininger. Verification of time partitioning in the DEOS real-time scheduling kernel. In Proceedings of the 22nd International Conference on Software Engineering, June 2000.]]
[23]
C. S. Pǎsǎreanu. Abstraction and Modular Reasoning for the Verification of Software. PhD thesis, Kansas State University, 2001.]]
[24]
V. Ranganath. Indus Website. http://indus.projects.cis.ksu.edu.]]
[25]
A. Rountev and B. G. Ryder. Points-to and side-effect analyses for programs built with precompiled libraries. In Proceedings of the 10th International Conference on Compiler Construction (CC'01), 2001.]]
[26]
S. D. Stoller. Model-checking multi-threaded distributed java programs. In Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification, pages 224--244, London, UK, 2000. Springer-Verlag.]]
[27]
S. D. Stoller. Domain partitioning for open reactive systems. In Proceedings of the international symposium on Software testing and analysis, pages 44--54. ACM Press, 2002.]]
[28]
S. D. Stoller and Y. A. Liu. Transformations for model checking distributed java programs. In Proc. 8th Int'l. SPIN Workshop on Model Checking of Software, volume 2057 of Lecture Notes in Computer Science, pages 192--199. Springer-Verlag, May 2001.]]
[29]
O. Tkachuk. Bandera Environment Generator Website. http://beg.projects.cis.ksu.edu.]]
[30]
O. Tkachuk, M. B. Dwyer, and C. S. Pǎsǎreanu. Automated environment generation for software model checking. In Proceedings of the 18th IEEE International Conference on Automated Software Engineering, Oct. 2003.]]
[31]
W. Visser, K. Havelund, G. Brat, and S. Park. Model checking programs. In Proceedings of the 15th IEEE Conference on Automated Software Engineering, Sept. 2000.]]
[32]
J. Whaley, M. C. Martin, and M. S. Lam. Automatic extraction of object-oriented component interfaces. In Proceedings of the International Symposium on Software Testing and Analysis, July 2002.]]
[33]
J. Yang, P. Twohey, D. Engler, and M. Musuvathi. Using model checking to find serious file system errors. In Proceedings of the Sixth Symposium on Operating Systems Design and Implementation, 2004.]]

Cited By

View all
  • (2012)BALLERINA: automatic generation and clustering of efficient random unit tests for multithreaded codeProceedings of the 34th International Conference on Software Engineering10.5555/2337223.2337309(727-737)Online publication date: 2-Jun-2012
  • (2012)Ballerina: Automatic generation and clustering of efficient random unit tests for multithreaded code2012 34th International Conference on Software Engineering (ICSE)10.1109/ICSE.2012.6227145(727-737)Online publication date: Jun-2012
  • (2010)Automatic generation of model checking scripts based on environment modelingProceedings of the 17th international SPIN conference on Model checking software10.5555/1928137.1928144(58-75)Online publication date: 27-Sep-2010
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ISSTA '06: Proceedings of the 2006 international symposium on Software testing and analysis
July 2006
274 pages
ISBN:1595932631
DOI:10.1145/1146238
  • General Chair:
  • Lori Pollock,
  • Program Chair:
  • Mauro Pezzè
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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 July 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. environment generation
  2. modular model checking

Qualifiers

  • Article

Conference

ISSTA06
Sponsor:

Acceptance Rates

Overall Acceptance Rate 58 of 213 submissions, 27%

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2012)BALLERINA: automatic generation and clustering of efficient random unit tests for multithreaded codeProceedings of the 34th International Conference on Software Engineering10.5555/2337223.2337309(727-737)Online publication date: 2-Jun-2012
  • (2012)Ballerina: Automatic generation and clustering of efficient random unit tests for multithreaded code2012 34th International Conference on Software Engineering (ICSE)10.1109/ICSE.2012.6227145(727-737)Online publication date: Jun-2012
  • (2010)Automatic generation of model checking scripts based on environment modelingProceedings of the 17th international SPIN conference on Model checking software10.5555/1928137.1928144(58-75)Online publication date: 27-Sep-2010
  • (2010)Extraction of component-environment interaction model using state space traversalProceedings of the 2010 ACM Symposium on Applied Computing10.1145/1774088.1774552(2203-2210)Online publication date: 22-Mar-2010
  • (2010)Trusted Anonymous ExecutionProceedings of the 2010 Ninth International Conference on Grid and Cloud Computing10.1109/GCC.2010.37(133-138)Online publication date: 1-Nov-2010
  • (2010)Environment generation for validating event-driven software using model checkingIET Software10.1049/iet-sen.2009.00174:3(194)Online publication date: 2010
  • (2010)Assume-guarantee verification of software components in SOFA 2 frameworkIET Software10.1049/iet-sen.2009.00164:3(210)Online publication date: 2010
  • (2010)Automatic Generation of Model Checking Scripts Based on Environment ModelingModel Checking Software10.1007/978-3-642-16164-3_5(58-75)Online publication date: 2010
  • (2009)WEAVE: WEb Applications Validation Environment2009 31st International Conference on Software Engineering - Companion Volume10.1109/ICSE-COMPANION.2009.5070968(101-111)Online publication date: May-2009
  • (2009)Automated Construction of Reasonable Environment for Java ComponentsElectronic Notes in Theoretical Computer Science (ENTCS)10.1016/j.entcs.2009.09.033253:1(145-160)Online publication date: 1-Oct-2009
  • 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