An empirical study to quantify the characteristics of Java programs that may influence symbolic execution from a unit testing perspective
Autor: | Vinicius H. S. Durelli, Andre Takeshi Endo, Marcelo Medeiros Eler |
---|---|
Přispěvatelé: | Bernoulli Institute |
Jazyk: | angličtina |
Rok vydání: | 2016 |
Předmět: |
Test data generation
Symbolic execution Java Computer science Sample (statistics) 02 engineering and technology computer.software_genre Software testing 020204 information systems 0202 electrical engineering electronic engineering information engineering computer.programming_language Unit testing business.industry Programming language 020207 software engineering Test case Hardware and Architecture ANÁLISE DE ERROS Concolic testing Software engineering business computer Software Information Systems Test data |
Zdroj: | Journal of Systems and Software, 121, 281-297. ELSEVIER SCIENCE INC Repositório Institucional da USP (Biblioteca Digital da Produção Intelectual) Universidade de São Paulo (USP) instacron:USP |
ISSN: | 0164-1212 |
Popis: | We analyze two benchmarks: SF100 (100 projects) and R47 (47 projects).We show the distributions of issues on generating test data using symbolic execution.We show that few methods have potential for path explosion.We show that dependency and exception-dependent paths are very frequent.We show that the constraints complexity is mainly affected by object types. In software testing, a program is executed in hopes of revealing faults. Over the years, specific testing criteria have been proposed to help testers to devise test cases that cover the most relevant faulty scenarios. Symbolic execution has been used as an effective way of automatically generating test data that meet those criteria. Although this technique has been used for over three decades, several challenges remain and there is a lack of research on how often they appear in real-world applications. In this paper, we analyzed two samples of open source Java projects in order to understand the characteristics that may hinder the generation of unit test data using symbolic execution. The first sample, named SF100, is a third party corpus of classes obtained from 100 projects hosted by SourceForge. The second sample, called R47, is a set of 47 well-known and mature projects we selected from different repositories. Both samples are compared with respect to four dimensions that influence symbolic execution: path explosion, constraint complexity, dependency, and exception-dependent paths. The results provide valuable insight into how researchers and practitioners can tailor symbolic execution techniques and tools to better suit the needs of different Java applications. |
Databáze: | OpenAIRE |
Externí odkaz: |