Additionally, JastAdd frameworks developed so far could improve testing methods in RAGs. Improvements with those extensions are huge advantages of RAG. ExtendJ, previously JastAddJ, is a Java compiler extended with JastAdd \cite{ekman2007jastadd}. It improves Java compliance, compilation speed, specification size and the support for non-trivial extensions compared to other extensible Java compilers. Analyses suggested in RAG \cite{fors2020principles}, e.g. Name Analysis, Type Analysis, might also be usable at parameter inference, which the name inference in this paper uses the similar pattern as Name Analysis (Lookup). Relational Reference Attribute Grammars \cite{mey2018continuous} could improve references and enable to build a new test model and connect it to the OpenAPI model implemented in this paper, parallel to \cite{gotz2018jastadd}, \cite{mey2020reusing}. A recently invented framework, RagConnect, enables to connect RAG-based models to models with other basis \cite{schone2020connecting}. Since version 0.2.1, it has a new model connection with REST and might help at generating test cases, because test cases are based on requests and responses of REST APIs. All of these extensions are open topics. So, it might be worthful to discuss and research how they can be used into OpenAPI Testing to suggest tests with a better quality.
\ No newline at end of file
Additionally, JastAdd can easily extend the grammars. There are several approaches to extend grammars with JastAdd, e.g. \cite{ekman2007jastadd}. Therefore, JastAdd could also extend the grammar proposed in this paper in that way. Besides it, the grammar could be simply analyzed by JastAdd. Analyses suggested in RAG \cite{mey2020reusing}, \cite{fors2020principles}, e.g. Name Analysis, Type Analysis, might also be usable at parameter inference, which the name inference in this paper uses the similar pattern as Name Analysis (Lookup). Relational Reference Attribute Grammars \cite{mey2018continuous} could improve references and enable to build a new test model and connect it to the OpenAPI model implemented in this paper, parallel to \cite{gotz2018jastadd}, \cite{mey2020reusing}. A recently invented framework, RagConnect, enables to connect RAG-based models to models with other basis \cite{schone2020connecting}. Since version 0.2.1, it has a new model connection with REST and might help at generating test cases, because test cases are based on requests and responses of REST APIs. All of these extensions are open topics. So, it might be worthful to discuss and research how they can be used into OpenAPI Testing to suggest tests with a better quality.
\begin{comment}
Additionally, JastAdd could easily extend the grammars. There are several approaches to extend grammars with JastAdd, e.g. \cite{ekman2007jastadd}. Therefore, JastAdd could also extend the grammar proposed in this paper in that way. Besides it, the grammar could be also simply analyzed by JastAdd. Analyses suggested in RAG \cite{mey2020reusing}
improve testing methods
in RAGs.
Analyses suggested in RAG [7],
e.g. Name Analysis, Type Analysis, might also be usable at parameter inference, which
the name inference in this paper uses the similar pattern as Name Analysis (Lookup).
Relational Reference Attribute Grammars [14] could improve references and enable
to build a new test model and connect it to the OpenAPI model implemented in this
paper, parallel to [8], [15]. A recently invented framework, RagConnect, enables to
connect RAG-based models to models with other basis [17]. Since version 0.2.1, it has
a new model connection with REST and might help at generating test cases, because
test cases are based on requests and responses of REST APIs. All of these extensions
are open topics. So, it might be worthful to discuss and research how they can be
used into OpenAPI Testing to suggest tests with a better quality.
Bei ExtendJ würde ich es anders formluieren: JastAdd ist ein
ERWEITERBARES framework, mit dem man sowohl die grammatik erweitern kann
(wie das Beispiel extendJ zeigt, was die Java Grammatik samt analysen
und code generierung von Java 4 bis 5,6,7,8 erweitert hat), als auch
sehr einfach neue analysen zu bestehenden grammatiken hinzufügen kann
(auch das gibt es bei extendj, noch allgemeiner wird es z.b. bei meinem
@@ -6,11 +6,10 @@ a meaningful approach to raise the security and quality.
One kind of testing such architectures is to validate REST interfaces and check if there are errors in them. In the last years, the OpenAPI Specification\footnote{\url{https://swagger.io/specification}} has become the common way to document the communication endpoints and exchanged data structures of REST APIs. Such documentations enable to test REST APIs in black-box testing approaches. OpenAPI specifications are described in JSON or YAML documents and defined by a semi-formal specification describing permitted and required elements as well as their semantics. While there is no formal definition of the full OpenAPI language, a meta-schema exists for the JSON Schema parts of the language.
% abstract
This paper investigates how such specifications can be used to test interfaces described by them. Since these specifications are tree-shaped, the investigation focuses on a grammar-based analysis approach, reference attribute grammars (RAGs) \cite{hedin2000reference}.
This paper also compares already presented REST API automatic testing approaches and examines whether these can also be implemented in RAGs, whether this implementation makes sense at all and whether RAG improves at implementing REST API automated testing. \\
To sum up, following three questions are formulated as research questions:
This paper investigates how such specifications can be used to test interfaces described by them. Since these specifications are tree-shaped, the investigation focuses on a grammar-based analysis approach, Reference Attribute Grammars (RAGs) \cite{hedin2000reference}.
This paper also compares already presented REST API automatic testing approaches and examines whether these can also be implemented in RAGs, whether this implementation is sensible and whether RAG has benefits and feasibility to REST API testing. To answer the questions, we have implemtend \textbf{RAGO API}, the first REST API Fuzzing tool implemented in RAG. As a summary, following three questions are formulated as research questions:
\begin{description}
\begin{description}[noitemsep]
\item{\textbf{RQ1 : Which approaches and techniques for automated tests of OpenAPI specifications are researched and developed so far?}}
\item{\textbf{RQ2 : Are suggested testing approaches from the literatures also available in RAG?}}
\item{\textbf{RQ3 : Which advantages can RAG provide with its features at expressing testing approaches?}}