Skip to main content
Log in

Symbiotic  6: generating test cases by slicing and symbolic execution

  • Competitions and Challenges
  • Special Issue: TestComp 2019
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript


Symbiotic is a bug-finding and verification tool that integrates light-weight static analyses and instrumentation with program slicing and symbolic execution. The techniques are suitably combined according to a given goal. The paper describes a particular configuration competing in Test-Comp  2019. We also provide a brief analysis of Symbiotic ’s results achieved in the competition. As our tool uses a fork of the open-source symbolic executor Klee, we focus on comparison with mainstream Klee that also participated in the competition this year.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

Similar content being viewed by others


  1. Cadar, C., Dunbar, D., Engler, D.: KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs. In: OSDI, pp. 209–224. USENIX Association (2008)

  2. Chalupa, M., Strejček, J., Vitovská, M.: Joint forces for memory safety checking revisited. Int. J. Softw. Tools Technol. Transf. 22, 115–133 (2020).

    Article  Google Scholar 

  3. Chalupa, M., Vitovská, M., Strejček, J.: Symbiotic 5: Boosted instrumentation-(competition contribution). In: Beyer, D., Huisman, M. (eds.) TACAS, volume 10806 of Lecture Notes in Computer Science, pp. 442–446. Springer, Berlin (2018)

    Google Scholar 

  4. De Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: TACAS, volume 4963 of LNCS, pp. 337–340. Springer (2008)

  5. Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its use in optimization. In: International Symposium on Programming, volume 167 of Lecture Notes in Computer Science, pp. 125–132. Springer (1984)

  6. Ganesh, V., Dill, D.L.: A decision procedure for bit-vectors and arrays. In: CAV, volume 4590 of Lecture Notes in Computer Science, pp. 519–531. Springer (2007)

  7. Horwitz, S., Reps, T.W., Binkley, D.: Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst. 12(1), 26–60 (1990)

    Article  Google Scholar 

  8. King, J.C.: Symbolic execution and program testing. Commun. ACM 19(7), 385–394 (1976)

    Article  MathSciNet  Google Scholar 

  9. LLVM.

  10. Slaby, J., Strejček, J., Trtík, M.: Symbiotic: synergy of instrumentation, slicing, and symbolic execution-(competition contribution). In: TACAS, volume 7795 of Lecture Notes in Computer Science, pp. 630–632. Springer (2013)

  11. Vitovská, M., Chalupa, M., Strejček, J.: SBT-instrumentation: a tool for configurable instrumentation of LLVM bitcode. CoRR, arXiv:1810.12617 (2018)

  12. Weiser, M.: Program slicing. In: ICSE, pp. 439–449. IEEE (1981)

Download references


The research is supported by The Czech Science Foundation grant GA18-02177S.

Author information

Authors and Affiliations


Corresponding author

Correspondence to Marek Chalupa.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Jury member: Martina Vitovská.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Chalupa, M., Vitovská, M., Jašek, T. et al. Symbiotic  6: generating test cases by slicing and symbolic execution. Int J Softw Tools Technol Transfer 23, 875–877 (2021).

Download citation

  • Published:

  • Issue Date:

  • DOI: