Symstra

Symstra: A framework for generating object-oriented unit tests using symbolic execution Object-oriented unit tests consist of sequences of method invocations. Behavior of an invocation depends on the method’s arguments and the state of the receiver at the beginning of the invocation. Correspondingly, generating unit tests involves two tasks: generating method sequences that build relevant receiver-object states and generating relevant method arguments. This paper proposes Symstra, a framework that achieves both test generation tasks using symbolic execution of method sequences with symbolic arguments. The paper defines symbolic states of object-oriented programs and novel comparisons of states. Given a set of methods from the class under test and a bound on the length of sequences, Symstra systematically explores the object-state space of the class and prunes this exploration based on the state comparisons. Experimental results show that Symstra generates unit tests that achieve higher branch coverage faster than the existing test-generation techniques based on concrete method arguments


References in zbMATH (referenced in 18 articles , 1 standard article )

Showing results 1 to 18 of 18.
Sorted by year (citations)

  1. Fu, Xiang; Powell, Michael C.; Bantegui, Michael; Li, Chung-Chih: Simple linear string constraints (2013)
  2. Anand, Saswat; Păsăreanu, Corina S.; Visser, Willem: Symbolic execution with abstraction (2009)
  3. Kebrt, Michal; Šerý, Ondřej: UnitCheck: unit testing and model checking combined (2009)
  4. Kuliamin, V.V.: Integration of verification methods for program systems (2009)
  5. Păsăreanu, Corina S.; Visser, Willem: A survey of new trends in symbolic execution for software testing and analysis (2009)
  6. Pasternak, Benny; Tyszberowicz, Shmuel; Yehudai, Amiram: GenUTest: a unit test and mock aspect generation tool (2009)
  7. Arcuri, Andrea; Yao, Xin: Search based software testing of object-oriented containers (2008)
  8. Zybin, R.S.; Kuliamin, V.V.; Ponomarenko, A.V.; Rubanov, V.V.; Chernov, E.S.: Automation of broad sanity test generation (2008)
  9. Beckert, Bernhard; Gladisch, Christoph: White-box testing by combining deduction-based specification extraction and black-box testing (2007)
  10. Can, Aysu Betin; Bultan, Tevfik; Lindvall, Mikael; Lux, Benjamin; Topp, Stefan: Eliminating synchronization faults in air traffic control software via design for verification with concurrency controllers (2007)
  11. Engel, Christian; Hähnle, Reiner: Generating unit tests from formal proofs (2007)
  12. Simons, Anthony J.H.: Jwalk: a tool for lazy, systematic testing of Java classes by design introspection and user interaction. (2007)
  13. Simons, Anthony J.H.: Jwalk: a tool for lazy, systematic testing of java classes by design introspection and user interaction (2007)
  14. Veanes, Margus; Ernits, Juhan; Campbell, Colin: State isomorphism in model programs with abstract data structures (2007)
  15. Anand, Saswat; Păsăreanu, Corina S.; Visser, Willem: Symbolic execution with abstract subsumption checking (2006)
  16. Hughes, Graham; Rajan, Sreeranga P.; Sidle, Tom; Swenson, Keith: Error detection in concurrent Java programs. (2006)
  17. Godefroid, Patrice; Klarlund, Nils: Software model checking: Searching for computations in the abstract or the concrete (2005)
  18. Xie, Tao; Marinov, Darko; Schulte, Wolfram; Notkin, David: Symstra: A framework for generating object-oriented unit tests using symbolic execution (2005)