A Program Transformation for Converting Java Assertions into Control-flow Statements

Saved in:
Bibliographic Details
Title: A Program Transformation for Converting Java Assertions into Control-flow Statements
Authors: Caballero, R. (Rafael), Hof, V. (Vincent), Montenegro, M. (Manuel), Kuchen, H. (Herbert)
Contributors: Universitäts- und Landesbibliothek Münster
Publication Year: 2024
Collection: Münster University (WWU): miami
Subject Terms: Assertions, conditions, test-cases, Java, test-case generation, ddc:004, info:eu-repo/classification/ddc/004, Computer science, ddc:330, info:eu-repo/classification/ddc/330, Economics
Description: We present a technique for checking the validity of Java assertions using an arbitrary automated test-case generator. Our framework transforms the program by introducing code that detects whether the assertion conditions are met by every direct and indirect method call within a certain depth level. Then, any automated test-case generator can be used to look for input examples that falsify the conditions. The program transformation ensures that the value obtained for these inputs represents a path of method calls that ends with a violation of some assertion. We show experiments with two different automatic test-case generators that demonstrate not just the applicability of our proposal but also that we can get a better coverage than the same test-case generators without our transformation.
Document Type: report
File Description: application/pdf
Language: English
Relation: https://nbn-resolving.org/urn:nbn:de:hbz:6-54539528383; info:eu-repo/semantics/reference/urn/urn:nbn:de:hbz:6-54539528383
DOI: 10.17879/25928672713
Availability: https://nbn-resolving.org/urn:nbn:de:hbz:6-25928670502
https://doi.org/10.17879/25928672713
https://miami.uni-muenster.de/Record/f7d1c746-574e-4e3b-9e58-4e5ee639d324
https://repositorium.uni-muenster.de/transfer/miami/f7d1c746-574e-4e3b-9e58-4e5ee639d324
Rights: CC BY 4.0 ; info:eu-repo/semantics/openAccess
Accession Number: edsbas.F3A84CD4
Database: BASE
Description
Abstract:We present a technique for checking the validity of Java assertions using an arbitrary automated test-case generator. Our framework transforms the program by introducing code that detects whether the assertion conditions are met by every direct and indirect method call within a certain depth level. Then, any automated test-case generator can be used to look for input examples that falsify the conditions. The program transformation ensures that the value obtained for these inputs represents a path of method calls that ends with a violation of some assertion. We show experiments with two different automatic test-case generators that demonstrate not just the applicability of our proposal but also that we can get a better coverage than the same test-case generators without our transformation.
DOI:10.17879/25928672713