Jose Antonio Zamudio Amaya
Current Organizations / Institutes
The organizations/institutes from the scholar's latest article
Previous Organizations / Institutes
The organizations / institutes from the scholar's other articles in the past ten years
Research Subjects
Research Interests
Jose Antonio Zamudio Amaya has a total of 18 co-authors. Here are the top co-authors by number of shared publications:
- Andreas Zeller
CISPA Helmholtz Center for Information Security, Saarbruecken, Germany
5 shared publications - David Benavides
Universidad de Sevilla
2 shared publications - Marius Smytzek
CISPA Helmholtz Center for Information Security, Saarbrücken, Germany
2 shared publications A.G. Hernández-Díaz
1 shared publication- Alexander Felfernig
Graz University of Technology, Graz, Austria
1 shared publication - Alexander Liggesmeyer
CISPA Helmholtz Center for Information Security, Saarbrücken, Germany
1 shared publication
Latest Publications
- Open Access
- 7 October 2026
- Published by Association for Computing Machinery (ACM)
- p. 2319-2331
Feature-Focused Test Generation
- 7 October 2026
- Published by Association for Computing Machinery (ACM)
- p. 2319-2331
Open AccessFeature-Focused Test Generation
- Open Access
- 5 July 2026
- Published by Association for Computing Machinery (ACM)
- p. 54-55
Generating Test Inputs and Interactions with the Fandango Fuzzer: How to Test Complex Systems Automatically and Exhaustively
Even in the age of AI, generating comprehensive test inputs for software systems remains a challenge, particularly for interactive and reactive systems, which require entire interaction sequences to reach the desired states or to cover missing behavior. While modern fuzzers are effective at generating random inputs that test the robustness of input processors, they still struggle to produce or mutate complex inputs and interactions. LLM-based systems, on the other hand, can generate small example inputs, but fail to systematically explore the space of inputs and interactions as would be required for comprehensive testing. In this tutorial, we introduce test generation with fandango, a modern specification-based generator of test inputs and interactions. Based on a spec file that defines the structure and properties of the program input, fandango produces inputs that are syntactically and semantically correct, and systematically cover the input space of the program under test. In three interactive sessions, we (1) introduce language-based testing, (2) demonstrate how to use constraints to define desired properties, and then (3) delve into full-fledged protocol testing, producing entire interaction sequences between fandango and the network components under test. Participants are expected to bring a basic understanding of software testing; knowledge of python is a plus, but not required. At the end of the tutorial, they will (1) be able to specify and test formats for inputs and interactions, (2) produce comprehensive test suites using language-based techniques, and (3) understand the trade-offs and practical applications of language-based testing.
- 5 July 2026
- Published by Association for Computing Machinery (ACM)
- p. 54-55
Open AccessGenerating Test Inputs and Interactions with the Fandango Fuzzer: How to Test Complex Systems Automatically and Exhaustively
Even in the age of AI, generating comprehensive test inputs for software systems remains a challenge, particularly for interactive and reactive systems, which require entire interaction sequences to reach the desired states or to cover missing behavior. While modern fuzzers are effective at generating random inputs that test the robustness of input processors, they still struggle to produce or mutate complex inputs and interactions. LLM-based systems, on the other hand, can generate small example inputs, but fail to systematically explore the space of inputs and interactions as would be required for comprehensive testing. In this tutorial, we introduce test generation with fandango, a modern specification-based generator of test inputs and interactions. Based on a spec file that defines the structure and properties of the program input, fandango produces inputs that are syntactically and semantically correct, and systematically cover the input space of the program under test. In three interactive sessions, we (1) introduce language-based testing, (2) demonstrate how to use constraints to define desired properties, and then (3) delve into full-fledged protocol testing, producing entire interaction sequences between fandango and the network components under test. Participants are expected to bring a basic understanding of software testing; knowledge of python is a plus, but not required. At the end of the tutorial, they will (1) be able to specify and test formats for inputs and interactions, (2) produce comprehensive test suites using language-based techniques, and (3) understand the trade-offs and practical applications of language-based testing.
- Open Access
- 22 June 2025
- Published by Association for Computing Machinery (ACM) in Proceedings of the ACM on Software Engineering
- Vol. 2 (ISSTA) , 894-916
FANDANGO: Evolving Language-Based Testing
Language-based fuzzers leverage formal input specifications (languages) to generate arbitrarily large and diverse sets of valid inputs for a program under test. Modern language-based test generators combine grammars and constraints to satisfy syntactic and semantic input constraints. ISLA, the leading input generator in that space, uses symbolic constraint solving to solve input constraints. Using solvers places ISLA among the most precise fuzzers but also makes it slow. In this paper, we explore search-based testing as an alternative to symbolic constraint solving. We employ a genetic algorithm that iteratively generates candidate inputs from an input specification, evaluates them against defined constraints, evolving a population of inputs through syntactically valid mutations and retaining those with superior fitness until the semantic input constraints are met. This evolutionary procedure, analogous to natural genetic evolution, leads to progressively improved inputs that cover both semantics and syntax. This change boosts the efficiency of language-based testing: In our experiments, compared to ISLA, our search-based FANDANGO prototype is faster by one to three orders of magnitude without sacrificing precision. The search-based approach no longer restricts constraints to constraint solvers' (miniature) languages. In FANDANGO, constraints can use the whole Python language and library. This expressiveness gives testers unprecedented flexibility in shaping test inputs. It allows them to state arbitrary goals for test generation: ''Please produce 1,000 valid test inputs where the voltage field follows a Gaussian distribution but never exceeds 20 mV.''
- 22 June 2025
- Published by Association for Computing Machinery (ACM) in Proceedings of the ACM on Software Engineering
- Vol. 2 (ISSTA) , 894-916
Open AccessFANDANGO: Evolving Language-Based Testing
Language-based fuzzers leverage formal input specifications (languages) to generate arbitrarily large and diverse sets of valid inputs for a program under test. Modern language-based test generators combine grammars and constraints to satisfy syntactic and semantic input constraints. ISLA, the leading input generator in that space, uses symbolic constraint solving to solve input constraints. Using solvers places ISLA among the most precise fuzzers but also makes it slow. In this paper, we explore search-based testing as an alternative to symbolic constraint solving. We employ a genetic algorithm that iteratively generates candidate inputs from an input specification, evaluates them against defined constraints, evolving a population of inputs through syntactically valid mutations and retaining those with superior fitness until the semantic input constraints are met. This evolutionary procedure, analogous to natural genetic evolution, leads to progressively improved inputs that cover both semantics and syntax. This change boosts the efficiency of language-based testing: In our experiments, compared to ISLA, our search-based FANDANGO prototype is faster by one to three orders of magnitude without sacrificing precision. The search-based approach no longer restricts constraints to constraint solvers' (miniature) languages. In FANDANGO, constraints can use the whole Python language and library. This expressiveness gives testers unprecedented flexibility in shaping test inputs. It allows them to state arbitrary goals for test generation: ''Please produce 1,000 valid test inputs where the voltage field follows a Gaussian distribution but never exceeds 20 mV.''
- Open Access
- 11 June 2025
- Published by Association for Computing Machinery (ACM)
- p. 86-91
Personalized Fuzzing: A Case Study with the FANDANGO Fuzzer on a GNSS Module (Short Paper)
- 11 June 2025
- Published by Association for Computing Machinery (ACM)
- p. 86-91
Open AccessPersonalized Fuzzing: A Case Study with the FANDANGO Fuzzer on a GNSS Module (Short Paper)
- Open Access
- 11 June 2025
- Published by Association for Computing Machinery (ACM)
- p. 46-50
XAVIER: Grammar-Based Testing for XML Injection Attacks
- 11 June 2025
- Published by Association for Computing Machinery (ACM)
- p. 46-50
Open AccessXAVIER: Grammar-Based Testing for XML Injection Attacks
- Open Access
- 19 September 2024
- Published by Elsevier in Mathematics and Computers in Simulation
- Vol. 228, 485-497
Finding the minimum -weighted dominating sets using heuristic algorithms- 19 September 2024
- Published by Elsevier in Mathematics and Computers in Simulation
- Vol. 228, 485-497
Open AccessFinding the minimum -weighted dominating sets using heuristic algorithms - Open Access
- 11 September 2024
- Published by Association for Computing Machinery (ACM)
- p. 1901-1905
Shaping Test Inputs in Grammar-Based Fuzzing
Fuzzing is an essential method for finding vulnerabilities. Conventional fuzzing looks across a wide input space, but it cannot handle systems that need intricate and specialized input patterns. Grammar-based fuzzing uses formal grammars to shape the inputs the fuzzer generates. This method is crucial for directing fuzzers to generate complicated inputs that adhere to syntactical requirements. However, existing approaches are biased towards certain input features, leading to significant portions of the solution space being under-explored or ignored. In this paper, we review the state-of-the-art methods, emphasizing the limitations of grammar-based fuzzing, and we provide a first approach for incorporating distribution sampling into fuzzing, accompanied by encouraging first findings. This work can represent a significant step towards achieving comprehensive input space exploration in grammar-based fuzzing, with implications for enhancing the robustness and reliability of the fuzzing targets.
- 11 September 2024
- Published by Association for Computing Machinery (ACM)
- p. 1901-1905
Open AccessShaping Test Inputs in Grammar-Based Fuzzing
Fuzzing is an essential method for finding vulnerabilities. Conventional fuzzing looks across a wide input space, but it cannot handle systems that need intricate and specialized input patterns. Grammar-based fuzzing uses formal grammars to shape the inputs the fuzzer generates. This method is crucial for directing fuzzers to generate complicated inputs that adhere to syntactical requirements. However, existing approaches are biased towards certain input features, leading to significant portions of the solution space being under-explored or ignored. In this paper, we review the state-of-the-art methods, emphasizing the limitations of grammar-based fuzzing, and we provide a first approach for incorporating distribution sampling into fuzzing, accompanied by encouraging first findings. This work can represent a significant step towards achieving comprehensive input space exploration in grammar-based fuzzing, with implications for enhancing the robustness and reliability of the fuzzing targets.
- Open Access
- 28 August 2023
- Published by Association for Computing Machinery (ACM)
- p. 111-116
Analysis Operations On The Run
The development and maintenance of feature models is often an error-prone activity requiring different types of analysis operations that help developers to restore required feature model properties. Fulfilling such properties helps to assure compliance between feature model and corresponding domain variability properties and -at the same time - helps to increase feature model maintainability. In this paper, we propose a set of additional analysis operations that provide insights regarding potential impacts of applying feature models in constraint-based recommendation scenarios where feature models are used to define user preference spaces. Our proposed analysis operations provide a.o. insights into aspects such as feature restrictiveness and product accessibility when applying a constraint-based recommender system. We analyze usage scenarios of the operations on the basis of an example implementation with a digital camera feature model and discuss open research issues.
- 28 August 2023
- Published by Association for Computing Machinery (ACM)
- p. 111-116
Open AccessAnalysis Operations On The Run
The development and maintenance of feature models is often an error-prone activity requiring different types of analysis operations that help developers to restore required feature model properties. Fulfilling such properties helps to assure compliance between feature model and corresponding domain variability properties and -at the same time - helps to increase feature model maintainability. In this paper, we propose a set of additional analysis operations that provide insights regarding potential impacts of applying feature models in constraint-based recommendation scenarios where feature models are used to define user preference spaces. Our proposed analysis operations provide a.o. insights into aspects such as feature restrictiveness and product accessibility when applying a constraint-based recommender system. We analyze usage scenarios of the operations on the basis of an example implementation with a digital camera feature model and discuss open research issues.