Abstract
Code artifacts that have nontrivial requirements with respect to the ordering in which their methods or procedures ought to be called are common and appear, for instance, in the form of API implementations and objects. This work addresses the problem of validating if API implementations provide their intended behavior when descriptions of this behavior are informal, partial, or nonexistent. The proposed approach addresses this problem by generating abstract behavior models which resemble typestates. These models are statically computed and encode all admissible sequences of method calls. The level of abstraction at which such models are constructed has shown to be useful for validating code artifacts and identifying findings which led to the discovery of bugs, adjustment of the requirements expected by the engineer to the requirements implicit in the code, and the improvement of available documentation.
- Alur, R., Cerny, P., Madhusudan, P., and Nam, W. 2005. Synthesis of interface specifications for java classes. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Panguages (POPL'05). 98--109. Google Scholar
Digital Library
- Andersen, M., Barnett, M., Fahndrich, M., Grunkemeyer, B., King, K., Logozzo, F., Patel, V., and Zuniga, D. 2009. Code contracts. http://research.microsoft.com/enus/projects/contracts.Google Scholar
- Barrett, C. and Berezin, S. 2004. CVC Lite: A new implementation of the cooperating validity checker. In Proceedings of the 16th International Conference on Computer Aided Verification (CAV'04). 515--518.Google Scholar
- Beckman, N. and Nori, A. 2011. Probabilistic, modular and scalable inference of typestate specifications. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'11). Google Scholar
Digital Library
- Beckman, N. E., Kim, D., and Aldrich, J. 2011. An empirical study of object protocols in the wild. In Proceedings of the 25th European Conference on Object-Oriented Programming (ECOOP'11). Google Scholar
Digital Library
- Beschastnikh, I., Brun, Y., Sloan, S., and Ernst, M. 2011. Leveraging existing instrumentation to automatically infer invariant-constrained models. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (FSE'11). Google Scholar
Digital Library
- Beyer, D., Henzinger, T., Jhala, R., and Majumdar, R. 2007. The software model checker blast. Int. J. Softw. Tools Technol. Transfer 9, 5, 505--525. Google Scholar
Digital Library
- Bierhoff, K. and Aldrich, J. 2008. Plural: Checking protocol compliance under aliasing. In Companion of the 30th International Conference on Software Engineering (ICSE'08). ACM Press, New York, 971--972. Google Scholar
Digital Library
- Cok, D. and Kiniry, J. 2005. ESC/Java2: Uniting esc/java and jml. In Proceedings of the International Workshop on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices. Lecture Notes in Computer Science, vol. 3362. Springer, 108--128. Google Scholar
Digital Library
- Dallmeier, V., Knopp, N., Mallon, C., Hack, S., and Zeller, A. 2010. Generating test cases for specification mining. In Proceedings of the International Symposium on Software Testing and Analysis. Google Scholar
Digital Library
- Dallmeier, V., Lindig, C., Wasylkowski, A., and Zeller, A. 2006. Mining object behavior with ADABU. In Proceedings of the Workshop on Dynamic Systems Analysis. Google Scholar
Digital Library
- De Caso, G., Braberman, V., Garbervetsky, D., and Uchitel, S. 2010. Automated abstractions for contract validation. IEEE Trans. Softw. Engin. 38, 1, 141--162. Google Scholar
Digital Library
- Deline, R. and Fahndrich, M. 2001. Enforcing high-level protocols in low-level software. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'01). 59--69. Google Scholar
Digital Library
- Demsky, B. and Rinard, M. 2009. Automatic extraction of heap reference properties in object-oriented programs. IEEE Trans. Softw. Engin. 35, 305--324. Google Scholar
Digital Library
- Dijkstra, E. 1975. Guarded commands, nondeterminacy and formal derivation of programs. Comm. ACM 18, 8, 453--457. Google Scholar
Digital Library
- Ernst, M., Perkins, J., Guo, P., Mccamant, S., Pacheco, C., Tschantz, M., and Xiao, C. 2007. The Daikon system for dynamic detection of likely invariants. Sci. Comput. Program. 69, 35--45. Google Scholar
Digital Library
- Gabel, M. and Su, Z. 2008. Symbolic mining of temporal specifications. In Companion of the 30th International Conference on Software Engineering (ICSE'08). 51--60. Google Scholar
Digital Library
- Ghezzi, C., Mocci, A., and Monga, M. 2009. Synthesizing intensional behavior models by graph transformation. In Companion of the 31st International Conference on Software Engineering (ICSE'09). 430--440. Google Scholar
Digital Library
- Giannakopoulou, D. and Pasa Reanu, C. 2009. Interface generation and compositional verification in javapathfinder. In Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering (FASE'09): Held as Part of the Joint European Conferences on Theory and Practice of Software (ETAPS'09). 94--108. Google Scholar
Digital Library
- Graf, S. and Saidi, H. 1997. Construction of abstract state graphs with pvs. In Proceedings of the 9th International Conference on Computer Aided Verification (CAV'97). 72--83. Google Scholar
Digital Library
- Grieskamp, W., Gurevich, Y., Schulte, W., and Veanes, M. 2002. Generating finite state machines from abstract state machines. In Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA'02). 112--122. Google Scholar
Digital Library
- Grieskamp, W., Kicillof, N., Macdonald, D., Nandan, A., Stobie, K., and Wurden, F. 2008. Model-based quality assurance of windows protocol documentation. In Proceedings of the 1st International Conference on Software Testing, Verification, and Validation (ICST'08). 502--506. Google Scholar
Digital Library
- Grieskamp, W., Kicillof, N., Stobie, K., and Braberman, V. 2011. Model-based quality assurance of protocol documentation: Tools and methodology. Softw. Testing Verif. Reliabil. 21, 1, 55--71. Google Scholar
Digital Library
- Henzinger, T., Jhala, R., and Majumdar, R. 2005. Permissive interfaces. In Proceedings of the 10th European Software Engineering Conference held jointly with the 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering (ESEC/FSE'05). 31--40. Google Scholar
Digital Library
- Hodges, W. 1997. A Shorter Model Theory. Cambridge University Press. Google Scholar
Digital Library
- Khurshid, S., Pasa Reanu, C., and Visser, W. 2003. Generalized symbolic execution for model checking and testing. In Tools and Algorithms for the Construction and Analysis of Systems, 553--568. Google Scholar
Digital Library
- Klensin, J., Freed, N., Rose, M., Stefferud, E., and Crocker, D. 1995. Smtp service extensions. Tech. rep., RFC 2846.Google Scholar
- Leavens, G., Leino, K., and Muller, P. 2007. Specification and verification challenges for sequential object-oriented programs. Formal Aspects Comput. 19, 2, 159--189. Google Scholar
Cross Ref
- Lee, D. and Yannakakis, M. 1992. Online minimization of transition systems (extended abstract). In Proceedings of the 24th Annual ACM Symposium on Theory of Computing (STOC'92). 264--274. Google Scholar
Digital Library
- Liu, L., Meyer, B., and Schoeller, B. 2007. Using contracts and boolean queries to improve the quality of automatic test generation. In Proceedings of the 1st International Conference on Tests and Proofs (TAP'07). 114--130. Google Scholar
Digital Library
- Lorenzoli, D., Mariani, L., and Pezze, M. 2008. Automatic generation of software behavioral models. In Companion of the 30th International Conference on Software Engineering (ICSE'08). 501--510. Google Scholar
Digital Library
- Nanda, M., Grothoff, C., and Chandra, S. 2005. Deriving object typestates in the presence of interobject references. ACM SIGPLAN Not. 40, 10, 77--96. Google Scholar
Digital Library
- Pacheco, C. and Ernst, M. 2007. Randoop: Feedback-directed random testing for java. In Proceeding of the Companion to the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications Companion (OOPSLA'07). ACM Press, New York, 815--816. Google Scholar
Digital Library
- Pradel, M. and Gross, T. R. 2009. Automatic generation of object usage specifications from large method traces. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering (ASE'09). IEEE, 371--382. Google Scholar
Digital Library
- Strom, R. and Yemini, S. 1986. Typestate: A programming language concept for enhancing software reliability. IEEE Trans. Softw. Engin. 12, 1, 157--171. Google Scholar
Digital Library
- Uribe, T. 1999. Abstraction-based deductive-algorithmic verification of reactive systems. http://www-step.stanford.edu/papers/dissertations/tomas.pdf. Google Scholar
Digital Library
- Zoppi, E., Braberman, V., De Caso, G., Garbervetsky, D., and Uchitel, S. 2011. Contractor.net: Inferring typestate properties to enrich code contracts. In Proceedings of the 1st Workshop on Developing Tools as Plug-ins (TOPI'11). ACM Press, New York, 44--47. Google Scholar
Digital Library
Index Terms
Enabledness-based program abstractions for behavior validation
Recommendations
Program abstractions for behaviour validation
ICSE '11: Proceedings of the 33rd International Conference on Software EngineeringCode artefacts that have non-trivial requirements with respect to the ordering in which their methods or procedures ought to be called are common and appear, for instance, in the form of API implementations and objects. This work addresses the problem ...
Deriving behavior of multi-user processes from interactive requirements validation
ASE '10: Proceedings of the 25th IEEE/ACM International Conference on Automated Software EngineeringIn this tool demonstration we present an implementation for interactively validating requirements for multi-user software systems and the processes they support with end users. The tool combines the advantages of requirements animation and scenario ...
Automated Abstractions for Contract Validation
Pre/postcondition-based specifications are commonplace in a variety of software engineering activities that range from requirements through to design and implementation. The fragmented nature of these specifications can hinder validation as it is ...





Comments