The Community for Technology Leaders
RSS Icon
Issue No.02 - March-April (2012 vol.38)
pp: 243-257
Valentin Dallmeier , Universität des Saarlandes, Saarbrücken
Nikolai Knopp , Universität des Saarlandes, Saarbrücken
Christoph Mallon , Universität des Saarlandes, Saarbrücken
Gordon Fraser , Universität des Saarlandes, Saarbrücken
Sebastian Hack , Universität des Saarlandes, Saarbrücken
Andreas Zeller , Universität des Saarlandes, Saarbrücken
Dynamic specification mining observes program executions to infer models of normal program behavior. What makes us believe that we have seen sufficiently many executions? The TAUTOKO (“Tautoko” is the Mãori word for “enhance, enrich.”) typestate miner generates test cases that cover previously unobserved behavior, systematically extending the execution space, and enriching the specification. To our knowledge, this is the first combination of systematic test case generation and typestate mining—a combination with clear benefits: On a sample of 800 defects seeded into six Java subjects, a static typestate verifier fed with enriched models would report significantly more true positives and significantly fewer false positives than the initial models.
Specification mining, test case generation, typestate analysis.
Valentin Dallmeier, Nikolai Knopp, Christoph Mallon, Gordon Fraser, Sebastian Hack, Andreas Zeller, "Automatically Generating Test Cases for Specification Mining", IEEE Transactions on Software Engineering, vol.38, no. 2, pp. 243-257, March-April 2012, doi:10.1109/TSE.2011.105
[1] E. Alkassar, W. Paul, A. Starostin, and A. Tsyban, "Pervasive Verification of an OS Microkernel: Inline Assembly, Memory Consumption, Concurrent Devices," Proc. Third Int'l Conf. Verified Software: Theories, Tools, Experiments, P. O'Hearn, G.T. Leavens, and S. Rajamani, eds., pp. 71-85, Aug. 2010.
[2] G. Ammons, R. Bodík, and J. Larus, "Mining Specifications," Proc. 29th ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages, pp. 4-16, Jan. 2002.
[3] A. Bertolino, P. Inverardi, P. Pelliccione, and M. Tivoli, "Automatic Synthesis of Behavior Protocols for Composable Web-Services," Proc. Seventh Joint Meeting of the European Software Eng. Conf. and the ACM SIGSOFT Symp. Foundations of Software Eng., pp. 141-150, 2009.
[4] K. Bierhoff and J. Aldrich, "Modular Typestate Checking of Aliased Objects," Proc. 22nd Ann. ACM SIGPLAN Conf. Object-Oriented Programming Systems and Applications, pp. 301-320, 2007.
[5] I. Ciupa, A. Leitner, M. Oriol, and B. Meyer, "Experimental Assessment of Random Testing for Object-Oriented Software," Proc. Int'l Symp. Software Testing and Analysis, pp. 84-94, 2007.
[6] J. Cook and A. Wolf, "Discovering Models of Software Processes from Event-Based Data," ACM Trans. Software Eng. and Methodology, vol. 7, no. 3, 215-249, July 1998.
[7] V. Dallmeier, N. Knopp, C. Mallon, S. Hack, and A. Zeller, "Generating Test Cases for Specification Mining," Proc. 19th Int'l Symp. Software Testing and Analysis, pp. 85-96, 2010.
[8] V. Dallmeier, C. Lindig, A. Wasylkowski, and A. Zeller, "Mining Object Behavior with ADABU," Proc. ICSE Workshop Dynamic Analysis, May 2006.
[9] V. Dallmeier, A. Zeller, and B. Meyer, "Generating Fixes from Object Behavior Anomalies," Proc. IEEE/ACM 24th Int'l Conf. Automated Software Eng., Nov. 2009.
[10] M.D. Ernst, J. Cockrell, W.G. Griswold, and D. Notkin, "Dynamically Discovering Likely Program Invariants to Support Program Evolution," IEEE Trans. Software Eng., vol. 7, no. 2, pp. 99-123, Feb. 2001.
[11] S.J. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay, "Effective Typestate Verification in the Presence of Aliasing," ACM Trans. Software Eng. Methodology, vol. 7, no. 3, 215-249, 2008.
[12] G. Fraser and A. Zeller, "Mutation-Driven Generation of Unit Tests and Oracles," Proc. 19th Int'l Symp. Software Testing and Analysis, pp. 147-158, 2010.
[13] E. Gold, "Language Identification in the Limit," Information and Control, vol. 10, pp. 447-474, 1967.
[14] N. Gupta and Z.V. Heidepriem, "A New Structural Coverage Criterion for Dynamic Detection of Program Invariants," Proc. 18th IEEE Int'l Conf. Automated Software Eng., 2003.
[15] R.M. Hierons, K. Bogdanov, J.P. Bowen, R. Cleaveland, J. Derrick, J. Dick, M. Gheorghe, M. Harman, K. Kapoor, P. Krause, and G. Lüttgen, "Using Formal Specifications to Support Testing," ACM Computing Surveys, vol. 7, no. 3, 215-249, 2009.
[16] http:/, Apache Harmony, 2011.
[17] http://ostatic.comristretto, Ristretto 1.0, 2010.
[18] J.C. King, "Symbolic Execution and Program Testing," Comm. ACM, vol. 7, no. 3, 215-249, 1976.
[19] B. Liblit, A. Aiken, A.X. Zheng, and M.I. Jordan, "Bug Isolation via Remote Program Sampling," ACM SIGPLAN Notices, vol. 38, no. 5, pp. 141-154, May 2003.
[20] D. Lorenzoli, L. Mariani, and M. Pezzè, "Automatic Generation of Software Behavioral Models," Proc. 30th Int'l Conf. Software Eng., pp. 501-510, 2008.
[21] R. Majumdar and K. Sen, "Hybrid Concolic Testing," Proc. 29th Int'l Conf. Software Eng., pp. 416-426, 2007.
[22] P. Mcminn, "Search-Based Software Test Data Generation: A Survey," Software Testing, Verification, and Reliability, vol. 14, pp. 105-156, 2004.
[23] A. Mesbah and A. van Deursen, "Invariant-Based Automatic Testing of AJAX User Interfaces," Proc. IEEE 31st Int'l Conf. Software Eng., pp. 210-220, 2009.
[24] A. Milicevic, S. Misailovic, D. Marinov, and S. Khurshid, "Korat: A Tool for Generating Structurally Complex Test Inputs," Proc. 29th Int'l Conf. Software Eng., pp. 771-774, 2007.
[25] S. Shoham, E. Yahav, S. Fink, and M. Pistoia, "Static Specification Mining Using Automata-Based Abstractions," Proc. Int'l Symp. Software Testing and Analysis, pp. 174-184, 2007.
[26] R.E. Strom and S. Yemini, "Typestate: A Programming Language Concept for Enhancing Software Reliability," IEEE Trans. Software Eng., vol. 12, no. 1, 157-171, 1986.
[27] P. Tonella, "Evolutionary Testing of Classes," SIGSOFT Software Eng. Notes, vol. 29, no. 4, 119-128, 2004.
[28] M. Veanes, C. Campbell, W. Schulte, and N. Tillmann, "Online Testing with Model Programs," SIGSOFT Software Eng. Notes, vol. 30, no. 5, 273-282, 2005.
[29] A. Wasylkowski, A. Zeller, and C. Lindig, "Detecting Object Usage Anomalies," Proc. Sixth Joint Meeting of the European Software Eng. Conf. and the ACM SIGSOFT Symp. the Foundations of Software Eng., pp. 35-44, 2007.
[30] J. Whaley, M.C. Martin, and M.S. Lam, "Automatic Extraction of Object-Oriented Component Interfaces," Proc. ACM SIGSOFT Int'l Symp. Software Testing and Analysis, pp. 218-228, 2002.
[31] T. Xie and D. Notkin, "Mutually Enhancing Test Generation and Specification Inference," Proc. Third Int'l Workshop Formal Approaches to Testing of Software, pp. 60-69, Oct. 2003.
44 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool