Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Automatic testing of software with structurally complex inputs
Publisher:
  • Massachusetts Institute of Technology
  • 201 Vassar Street, W59-200 Cambridge, MA
  • United States
Order Number:AAI0807757
Pages:
1
Reflects downloads up to 09 Nov 2024Bibliometrics
Skip Abstract Section
Abstract

Modern software pervasively uses structurally complex data such as linked data structures. The standard approach to generating test suites for such software, manual generation of the inputs in the suite, is tedious and error-prone. This dissertation proposes a new approach for generating suites with structurally complex test inputs; presents a technique that automates this approach; describes the Korat tool that implements this technique for Java; and evaluates the effectiveness of Korat in testing a set of data-structure implementations.

Our approach allows the developer to describe the properties of valid test inputs using a familiar implementation language such as Java. Specifically, the user provides an imperative predicate—a piece of code that returns a truth value—that returns true if the input satisfies the required property and false otherwise. Korat implements our technique for solving imperative predicates: given a predicate and a bound on the size of the predicate's inputs, Korat automatically generates the bounded-exhaustive test suite that consists of all inputs, within the given bound, that satisfy the property identified by the predicate. To generate these inputs, Korat systematically searches the bounded input space by executing the predicate on the candidate inputs. Korat does this efficiently by pruning the search based on the predicate's executions and by generating only non-isomorphic inputs.

Bounded-exhaustive testing is a methodology for testing the code on all inputs within the given small bound. Our experiments on a set of ten linked and array-based data structures show that Korat can efficiently generate bounded-exhaustive test suites from imperative predicates even for very large input spaces and that these test suites can achieve high statement, branch, and mutation coverage. Moreover, the use of our technique for generating structurally complex test inputs has enabled testers in industry to detect faults in real, production-quality applications. (Copies available exclusively from MIT Libraries, Rm. 14-0551, Cambridge, MA 02139-4307. Ph. 617-253-5668; Fax 617-253-1690.)

Cited By

  1. ACM
    Dini N, Zaeem R and Khurshid S Enhancing constraint-based repair of data structure errors that recur using memoization Proceedings of the 36th Annual ACM Symposium on Applied Computing, (1823-1832)
  2. ACM
    Dini N, Yelen C, Alrmaih Z, Kulkarni A and Khurshid S Korat-API Proceedings of the 33rd Annual ACM Symposium on Applied Computing, (1934-1943)
  3. Senni V and Fioravanti F Generation of test data structures using constraint logic programming Proceedings of the 6th international conference on Tests and Proofs, (115-131)
  4. ACM
    Boyapati C, Khurshid S and Marinov D ACM SIGSOFT Impact Paper Award 2012 Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
  5. ACM
    Gligoric M, Badame S and Johnson R SMutant Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, (424-427)
  6. ACM
    Mairhofer S, Feldt R and Torkar R Search-based software testing and test data generation for a dynamic programming language Proceedings of the 13th annual conference on Genetic and evolutionary computation, (1859-1866)
  7. ACM
    Gligoric M, Gvero T, Jagannath V, Khurshid S, Kuncak V and Marinov D Test generation through programming in UDITA Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, (225-234)
  8. ACM
    Elkarablieh B, Marinov D and Khurshid S Efficient solving of structural constraints Proceedings of the 2008 international symposium on Software testing and analysis, (39-50)
  9. Elkarablieh B, Zayour Y and Khurshid S Efficiently generating structurally complex inputs with thousands of objects Proceedings of the 21st European conference on Object-Oriented Programming, (248-272)
  10. ACM
    Elkarablieh B, Khurshid S, Vu D and McKinley K (2007). Starc, ACM SIGPLAN Notices, 42:10, (387-404), Online publication date: 21-Oct-2007.
  11. ACM
    Elkarablieh B, Khurshid S, Vu D and McKinley K Starc Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications, (387-404)
  12. ACM
    Daniel B, Dig D, Garcia K and Marinov D Automated testing of refactoring engines Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, (185-194)
  13. ACM
    Misailovic S, Milicevic A, Petrovic N, Khurshid S and Marinov D Parallel test generation and execution with Korat Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, (135-144)
  14. Milicevic A, Misailovic S, Marinov D and Khurshid S Korat Proceedings of the 29th international conference on Software Engineering, (771-774)
  15. Kuncak V and Rinard M An overview of the Jahob analysis system Proceedings of the 20th international conference on Parallel and distributed processing, (285-285)
  16. ACM
    Darga P and Boyapati C (2006). Efficient software model checking of data structure properties, ACM SIGPLAN Notices, 41:10, (363-382), Online publication date: 16-Oct-2006.
  17. ACM
    Darga P and Boyapati C Efficient software model checking of data structure properties Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, (363-382)
  18. ACM
    Khurshid S and Suen Y (2005). Generalizing symbolic execution to library classes, ACM SIGSOFT Software Engineering Notes, 31:1, (103-110), Online publication date: 1-Jan-2006.
  19. Khurshid S, García I and Suen Y Repairing structurally complex data Proceedings of the 12th international conference on Model Checking Software, (123-138)
  20. ACM
    Khurshid S and Suen Y Generalizing symbolic execution to library classes Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, (103-110)
  21. ACM
    Kuncak V and Jackson D (2005). Relational analysis of algebraic datatypes, ACM SIGSOFT Software Engineering Notes, 30:5, (207-216), Online publication date: 1-Sep-2005.
  22. ACM
    Kuncak V and Jackson D Relational analysis of algebraic datatypes Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, (207-216)
Contributors
  • University of Illinois Urbana-Champaign
  • MIT Computer Science & Artificial Intelligence Laboratory

Recommendations