From fb0bd206f08b07a764015c502bb354b63f823391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rina=20Point?= Date: Mon, 25 Apr 2022 14:24:59 +0200 Subject: [PATCH] =?UTF-8?q?Add=20explication=20de=20l'impl=C3=A9mentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rapport.latex | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/rapport.latex b/rapport.latex index 4616284..1abdc50 100644 --- a/rapport.latex +++ b/rapport.latex @@ -8,6 +8,7 @@ \usepackage{hyperref} \usepackage{graphicx} +\graphicspath { {./images/} } \hypersetup{ colorlinks=true, @@ -29,7 +30,7 @@ ISTerre est un laboratoire universitaire à Grenoble dont le but est l'étude de le sismologie. Un des services qui compose ce laboratoire est RÉSIF. Son objectif est de désservir les données sismologiques récoltées par le noeud A à qui le demande grace à différents web services gérés par le noeud B. L'objectif de mon stage était donc de construir des tests comportemental sur plusieurs de ces web services, à savoir les services \href{https://ws.resif.fr/fdsnws/station/1}{'station'}, \href{https://ws.resif.fr/fdsnws/dataselect/1}{'dataselect'} et \href{https://ws.resif.fr/fdsnws/availability/1}{'availability'}. En effet, dans le cadre de l'optimisation de ces services, les tests que j'ai implémenté auront pour untilité de comparrer les performances entre les nouvelles et anciennnes version de ces web services. - La problematique de ce stage est donc comment trouver tout les scénarios possibles et comment les implémentés. \textbf{} + La problematique de ce stage est donc comment trouver tout les scénarios possibles et comment les implémentés. \textbf{ANNONCE DU PLAN} \section{Mon stage} \subsection{Le Laboratoire} @@ -44,6 +45,11 @@ \paragraph{} Le réseau sismologique et géodésique français (RÉSIF) est un ensmble de capteurs géophysiques implentés partout en France qui permettent d’alimenter, en partie, l’infrastructure EPOS (European Plate Observing System). Ainsi les données colléctées par RÉSIF sont disponible via plusieurs webservices qui sont standardiser par plusieurs organismes tel que EIDA, FDSN et RÉSIF même. \section{Présetation du stage} + \subsection{Ce qui était prévu / Ce que j'ai fait} + \begin{figure}[h] + \caption{Prévision et réalisation du travail} + \includegraphics[width=\textwidth]{GANTT} + \end{figure} \subsection{Environement} \paragraph{} Le laboratore est pricipallement constitué de chercheurs dans diférrents dommaines ce qui donne un environement très riche où les interaction entre les membre des different services sont assez riches. @@ -62,7 +68,72 @@ \paragraph{} Lors de ma première semaine de stage, mon principal objectif était de prendre en main le context dans le quel j'allais travailler. En effet, j'ai principalement lu de la documentation sur les thermes téchniques (glossaire), sur la sismologie, sur les standard fdsn, \dots Ensuite, j'ai pu commencer à prendre en main l'outil behave et me rafraichir la mémoire au niveau du langage python. Après ca, j'ai pu commencer à réfléchir à des scénarios de tests. C'est ce que j'ai principalement fait pendant 3 jours. En paralele de ca, j'ai pu prendre en main d'autre bibliothèque tel que lxml. + \subsubsection{Les données} + \paragraph{} + Les données sont réparties en plusieurs entités: le réseau, la station et le cannal. Elle sont répartit de la manière suivante: + \begin{figure}[h] + \caption{Model du domaine de station} + \includegraphics[width=\textwidth]{stationDataModel} + \end{figure} + \subsection{L'écriture des scénarios} + \paragraph{} + Pour pouvoir tester le fonctionement des different webservices, J'ai du écrire des scénario. Ceux ci sont décomposé en plusieurs éléments: + \begin{itemize} + \item Le type de \textbf{scénario (outline/inline)} et son titre (ex. \textit{Scenario Outline:} S'abonner à des chaines Peertube) + \item \textbf{L'initialisation} du context en fonction du comportement souhaité (ex. \textit{Étant donné} que je suis connécté·e) + \item \textbf{Les actions} à tester (ex. \textit{Quand} je clique sur un bouton s'abonner) + \item \textbf{La déscription} du comportement atendu (ex. \textit{Je m'attend à} pouvoir voir mon abonement dans la liste des abonements et le boutton s'aboner devien se désaboner) + \item \textbf{Les exemples} de parametres qui vont être testés si on est \textbf{dans un scénario outline} (ex. \textit{Par exemple}, si je m'abonne à 'Hygiene mental', à 'Politikon', à 'Tzitzimitl') + \end{itemize} + \paragraph{} + Le format du ficher de scénario permet d'utiliser un langage naturel quelqu'il soit mais il y a quand même des mots clefs qui sont écrit en anglais. J'ai donc rédigé les scénarios en anglais pour permettre une meilleur fuidité de lecture. + \subsubsection{Exemples de scénarios} + + \subsection{L'implémenation des tests} + \paragraph{} + Pour implementer mes tests, j'ai du reprendre chaque phrase du scénario (\textit{Given, When, Then, And, But}) et coder leurs sens. Par exemple, pour un \textit{Given}, la plupars du temps, je devais initialiser le contexte, pour les \textit{Then}, je devais comparer les résultat des \textit{When}. Ainsi, il était important de bien factoriser les différents cas pour pouvoir réutiliser le code déjà produit. + \section{Anex} + \begin{figure}[h] + \caption{exemple de scénario} + \begin{verbatim} + Scenario Outline: is XML format clean + Given a '', '', '' and '' + When the webservice is "GET" requested + Then the XML format must be errorless + Examples: of request + | network | station | location | channel | + | FR | CIEL | 00 | HHZ | + | XG | A002 | 00 | GPE | + + Scenario: latitude under -90 + Given the 'latitude' of '-100' + When the webservice is "GET" requested + Then the HTTP code returned must be '400' + + Scenario: POST has same result than GET + Given a request composed by + | parameter | value | + | network | FR | + | station | CIEL | + | location | 00 | + | channel | HHZ | + | start | 2018-03-03 | + | end | 2020-03-03 | + When the webservice is "GET|POST" requested + Then the HTTP response must be the same for all requests + + Scenario Outline: + Given a valid date but does not exists like + When the webservice is "GET" requested + Then the HTTP code returned must be '400' + Examples: of tricky date + | date | + | 2020-04-31 | + | 2021-02-29 | + | 2020-02-31 | + \end{verbatim} + \end{figure} \section{Lexique} \begin{itemize} \item Test de comportement (behavior test) : Test informatique permetant de vérifier le comportement du logiciel testé sur la base de différntes scénario