GRT: Program-analysis-guided random testing

L. Ma, C. Artho, C. Zhang, H. Sato, J. Gmeiner, R. Ramler. GRT: Program-analysis-guided random testing. pages 212-223, DOI 10.1109/ASE.2015.49, 11, 2015.

  • Lei Ma
  • Cyrille Artho
  • Cheng Zhang
  • Hiroyuki Sato
  • Johannes Gmeiner
  • Rudolf Ramler
BuchProceddings of the 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015)
TypIn Konferenzband
NoteACM SIGSOFT - Distinguished Paper Award

We propose Guided Random Testing (GRT), which uses static and dynamic analysis to include information on program types, data, and dependencies in various stages of automated test generation. Static analysis extracts knowledge from the system under test. Test coverage is further improved through state fuzzing and continuous coverage analysis. We evaluated GRT on 32 real-world projects and found that GRT outperforms major peer techniques in terms of code coverage (by 13%) and mutation score (by 9 %). On the four studied benchmarks of Defects4J, which contain 224 real faults, GRT also shows better fault detection capability than peer techniques, finding 147 faults (66 %). Furthermore, in an in-depth evaluation on the latest versions of ten popular real-world projects, GRT successfully detects over 20 unknown defects that were confirmed by developers.