DART

DART: directed automated random testing. We present a new tool, named DART, for automatically testing software that combines three main techniques: (1) automated extraction of the interface of a program with its external environment using static source-code parsing; (2) automatic generation of a test driver for this interface that performs random testing to simulate the most general environment the program can operate in; and (3) dynamic analysis of how the program behaves under random testing and automatic generation of new test inputs to direct systematically the execution along alternative program paths. Together, these three techniques constitute Directed Automated Random Testing, or DART for short. The main strength of DART is thus that testing can be performed completely automatically on any program that compiles -- there is no need to write any test driver or harness code. During testing, DART detects standard errors such as program crashes, assertion violations, and non-termination. Preliminary experiments to unit test several examples of C programs are very encouraging.

This software is also peer reviewed by journal TOMS.


References in zbMATH (referenced in 51 articles )

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

1 2 3 next

  1. Bagnara, Roberto; Carlier, Matthieu; Gori, Roberta; Gotlieb, Arnaud: Exploiting binary floating-point representations for constraint propagation (2016)
  2. Cai, Jun; Zou, Peng; Ma, Jinxin; He, Jun: SwordDTA: A dynamic taint analysis tool for software vulnerability detection (2016) ioport
  3. Duan, Zhenhua; Tian, Cong; Zhang, Nan: A canonical form based decision procedure and model checking approach for propositional projection temporal logic (2016)
  4. Saarikivi, Olli; Heljanko, Keijo: LCTD: test-guided proofs for C programs on LLVM (2016)
  5. Cavalcanti, Ana; Gaudel, Marie-Claude: Test selection for traces refinement (2015)
  6. Duan, Zhenhua; Bu, Kangkang; Tian, Cong; Zhang, Nan: Model checking MSVL programs based on dynamic symbolic execution (2015)
  7. Groce, Alex; Havelund, Klaus; Holzmann, Gerard; Joshi, Rajeev; Xu, Ru-Gang: Establishing flight software reliability: testing, model checking, constraint-solving, monitoring and learning (2014)
  8. Kádár, István; Hegedűs, Péter; Ferenc, Rudolf: Runtime exception detection in Java programs using symbolic execution (2014)
  9. Kulyamin, V.; Petrenko, A.: Evolution of the unitesk test development technology (2014) ioport
  10. Xie, Tao; Zhang, Lu; Xiao, Xusheng; Xiong, Ying-Fei; Hao, Dan: Cooperative software testing and analysis: advances and challenges (2014) ioport
  11. Chattopadhyay, Sudipta; Roychoudhury, Abhik: Scalable and precise refinement of cache timing analysis via path-sensitive verification (2013)
  12. Cousot, Patrick; Cousot, Radhia; Fähndrich, Manuel; Logozzo, Francesco: Automatic inference of necessary preconditions (2013)
  13. Popeea, Corneliu; Chin, Wei-Ngan: Dual analysis for proving safety and finding bugs (2013)
  14. Amato, Gianluca; Parton, Maurizio; Scozzari, Francesca: Discovering invariants via simple component analysis (2012)
  15. Babić, Domagoj; Reynaud, Daniel; Song, Dawn: Recognizing malicious software behaviors with tree automata inference (2012)
  16. Christakis, Maria; Müller, Peter; Wüstholz, Valentin: Collaborative verification and testing with explicit assumptions (2012)
  17. Kim, Moonzoo; Kim, Yunho; Choi, Yunja: Concolic testing of the multi-sector Read operation for flash storage platform software (2012) ioport
  18. Kosmatov, Nikolai; Williams, Nicky; Botella, Bernard; Roger, Muriel; Chebaro, Omar: A lesson on structural testing with PathCrawler-online.com (2012) ioport
  19. Mühlberg, Jan Tobias; Lüttgen, Gerald: Verifying compiled file system code (2012) ioport
  20. Slabý, Jiří; Strejček, Jan; Trtík, Marek: Checking properties described by state machines: on synergy of instrumentation, slicing, and symbolic execution (2012) ioport

1 2 3 next