Skip to content
Snippets Groups Projects
Commit b73ba7d0 authored by Jueun Park's avatar Jueun Park
Browse files

Update

parent e802ddb7
No related branches found
No related tags found
No related merge requests found
Pipeline #11528 passed with warnings
\chapter{Introduction}\label{ch:introduction} \chapter{Introduction}\label{ch:introduction}
Automated testing is one type of software testing which is expected to review, validate software products and find errors in these products. Compared to manual testing, it has a huge benefit in execution of test cases, while test cases are automatically generated. \\ Automated testing is one type of software testing which is expected to review, validate software products and find errors in these products. Compared to manual testing, it has a huge benefit in execution of test cases, while test cases are automatically generated. \\
Also, it might be a meaningful approach to raise the security and quality in web-based software architectures using REST interfaces. Also, it might be a meaningful approach to raise the security and quality in web-based software architectures using REST interfaces. [2]
% example with [2]
One kind of testing such architectures is to validate REST interfaces and check if there are errors in them. \\ 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 has become the common way to document the communication endpoints and exchanged data structures. This is useful to test REST interfaces, because it enables the black-box testing approach. In the last years, the OpenAPI Specification has become the common way to document the communication endpoints and exchanged data structures [1]. This is useful to test REST interfaces, because it enables the black-box testing approach.
OpenAPI specifications are described as JSON or YAML documents and are 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. \\ \\ OpenAPI specifications are described as JSON or YAML documents and are 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.
This paper investigates how such specifications can be used to test interfaces described by them. Since these specifications itself are tree-shaped, the investigation focuses on a grammar-based analysis approach, reference attribute grammars (RAGs). \\
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 REST API automatic testing tools. \\ % abstract
This paper investigates how such specifications can be used to test interfaces described by them. Since these specifications itself are tree-shaped, the investigation focuses on a grammar-based analysis approach, reference attribute grammars (RAGs).
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:
\begin{description} \begin{description}
\item{\textbf{RQ1}} \item{\textbf{RQ1 : Which approaches and techniques for automated tests of OpenAPI specifications are researched and developed so far?}}
\item{\textbf{RQ2}} \item{\textbf{RQ2 : Are suggested testing approaches from the literatures also available in RAG?}}
\item{\textbf{RQ3}} \item{\textbf{RQ3 : Which advantages can RAG provide with its features at expressing testing approaches?}}
\end{description} \end{description}
The prototype implemented in this work provides simple evidences applying two testing approaches and results whether these approaches with RAG produce efficiencies in terms of compile speed and code coverage. \\ \textbf{RQ1} is intended to investigate which approaches might be able to implement in RAG. Corresponding literatures are introduced in Section 3. \\ \textbf{RQ2} focuses on the implementation the data structure and testing methods in RAG and is answered in Section 4 and Section 5. \\ Results for \textbf{RQ3} shows concretely which features (attributes) of RAG are used and which benefits exist at this point.
For this work the meta-compilation system, JastAdd, is used to generate the RAG for the object-oriented programming language, Java.
% [1] https://swagger.io/specification/
% [2] Basu, Anirban (2015). Software Quality Assurance, Testing and Metrics. PHI Learning. ISBN 978-81-203-5068-7.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment