You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/tex/D_Manual_programador.tex
+83Lines changed: 83 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -242,7 +242,56 @@ \subsubsection{Uso del proyecto}
242
242
243
243
El usuario administrador por defecto es \texttt{[email protected]} y su contraseña es \texttt{admin4123!UBUMLaaS}.
244
244
245
+
\subsection{Integración Continua}
246
+
Con el objetivo de obtener como producto final un \textit{software} de calidad, se han desarrollado una serie de pruebas de integración continua, las cuales se comprueban y analiza su resultado en cada \textit{commit} y/o \textit{pull request.}
247
+
248
+
Se han utilizado principalmente tres herramientas \textit{cloud} para medir los principios de calidad del \textit{software}.
249
+
250
+
\subsubsection{Codacy}
251
+
Herramienta la cual proporciona soporte a análisis automático del código fuente e identifica los problemas a medida que avanza. Su versatilidad permite desarrollar \textit{software} de manera eficiente, reduciendo el número de \textit{bugs} que se <<dejan para resolver>>.
252
+
253
+
A través del análisis estático de código estático, notifica problemas de seguridad, cobertura del código, así como la duplicación y la complejidad de cada fichero en cada \textit{commit} y \textit{pull request}.
Herramienta \textit{open source} la cual permite hacer un análisis estático del código de un proyecto, entre sus fortalezas destaca su potente capacidad de ser parametrizada, entre las acciones que realiza por defecto encontramos la detección de malas prácticas, errores de código, así como problemas de seguridad que en el pasado se han visto relacionadas con alguna CVE\footnote{\textit{Common Vulnerabilities and Exposures}, lista de fallos \textit{software} (y \textit{hardware}) que en el pasado se han utilizado para ganar ventaja de alguna manera.}.
259
+
260
+
A pesar de que sea un proyecto \textit{open source} no es gratuita, y como todas las herramientas de estas características incluye una versión \textit{community} (gratuita) para aquellos proyectos que sean \textit{open source}.
Herramienta \textit{cloud} desarrollada para la realización de pruebas de integración continua sobre proyectos alojados en GitHub (con soporte beta para BitBucket, Gitlab y Assembla). Permite realizar un \textit{build} del proyecto y ejecutar sobre ella una batería de pruebas de manera automática cada vez que se realiza un \textit{commit} y/o \textit{pull request}, permitiendo pruebas concurrentes, incluso sobre diferentes sistemas operativos (Linux, Windows, macOS y FreeBSD).
266
+
267
+
Con el proyecto configurado en \texttt{Travis-CI} se debe configurar un fichero \texttt{YAML} y debe de estar en el directorio raíz, será a partir del cual se ejecuten las pruebas.
268
+
269
+
El fichero se encuentra dividido en:
270
+
\begin{itemize}
271
+
\tightlist
272
+
\item\texttt{os:} sistema/s operativo/s sobre el cuál se va/n a realizar las pruebas.
273
+
\item\texttt{dist:} distribución a utilizar.
274
+
\item\texttt{language:} lenguaje de programación del proyecto.
275
+
\item\texttt{python:} especificación de la versión de Python que necesita.
276
+
\item\texttt{node\_js:} especificación de la versión de Node JS que necesita.
277
+
\item\texttt{jdk:} especificación de la versión de JDK necesaria.
278
+
\item\texttt{jobs:} parametrización de los trabajos que se van a ejecutar.
279
+
\item\texttt{git:} profundidad del árbol de \texttt{git} que deseamos utilizar.
280
+
\item\texttt{addons:} \textit{software} <<extra>> que se necesiten para las pruebas.
281
+
\item\texttt{services:} especificación de los servicios que se van a utilizar.
282
+
\item\texttt{before\_install:} definición de comandos a ejecutar antes de los incluidos en la sección \texttt{install}.
283
+
\item\texttt{install:} definición de comandos de instalación de dependencias.
284
+
\item\texttt{before\_script:} configuración de dependencias antes de ejecutar la sección \texttt{script}.
285
+
\item\texttt{script:} pruebas a realizar.
286
+
\end{itemize}
287
+
288
+
Los \textit{logs} son públicos y consultables desde~\cite{Travis-CI-LOG-UBUMLaaS}.
Tal y como se ha descrito, \texttt{UBUMLaaS} es un \textit{software} que ha sufrido un cambio de diseño de grandes dimensiones, por lo que las pruebas de integración continua previas que existían han dejado de ser funcionales, debido a que únicamente comprobaban la interacción del usuario con la plataforma a través de un navegador.
246
295
247
296
\clearpage
248
297
\section{IS-SSL}
@@ -442,4 +491,38 @@ \subsubsection{Uso del proyecto}
442
491
\end{lstlisting}
443
492
\pagebreak
444
493
494
+
\subsection{Integración Continua}
495
+
Con el objetivo de diseñar un \textit{software} lo más robusto posible, la biblioteca cuenta con una serie de pruebas de integración continua, permitiendo que todos los cambios que se vayan realizando mantengan la biblioteca en un estado correcto, indicando tempranamente aquellos posibles problemas que puedan surgir.
496
+
497
+
Este proceso se ha divido en dos etapas, una más <<adelantada>> y otra más <<tardía>>, la principal diferencia es el objetivo perseguido con cada una de las pruebas.
498
+
\begin{itemize}
499
+
\item Inicial. Se configuró la segunda semana de febrero, con el objetivo de comenzar a tener una visión más amplia y razonada de la calidad del código, debido a que todavía no estaban desarrollados al 100\% todos los algoritmos y aún eran susceptibles de sufrir modificaciones en tanto en cuanto a sus entradas/salidas/optimización.
500
+
\item Posterior. Se configuró en Semana Santa, (segunda semana de abril), en esta fase se implementaron una batería de pruebas la cual cubre prácticamente la totalidad de \texttt{IS-SSL}, permitiendo obtener una base para futuras modificaciones que puedan ser necesarias realizar, asegurando que todo sigue funcionando como debería.
501
+
\end{itemize}
502
+
503
+
A pesar de que se han utilizado diferentes herramientas que se podría decir que cubren los mismos tópicos, cada una implementa las diferentes métricas de análisis de forma diferente, y por lo tanto se puede ganar en este proceso. El código cubierto no se ha configurado en cada herramienta por simplicidad, ya que ahí no hay <<medias tintas>> es un informe el que se genera y las herramientas lo único que proporcionan es un visor de ese fichero.
504
+
505
+
Los recursos utilizados para la integración continua se detallan a continuación.
506
+
507
+
\subsubsection{Codacy}
508
+
Herramienta la cual proporciona soporte a análisis automático del código fuente e identifica los problemas a medida que avanza. Su versatilidad permite desarrollar \textit{software} de manera eficiente, reduciendo el número de \textit{bugs} que se <<dejan para resolver>>.
509
+
510
+
A través del análisis estático de código estático, notifica problemas de seguridad, cobertura del código, así como la duplicación y la complejidad de cada fichero en cada \textit{commit} y \textit{pull request}.
511
+
512
+
La integración es muy sencilla, basta con crearse una cuenta asociada con la de GitHub, y una vez que se ha verificado se añade la organización a la que se pertenece y el repositorio (público) que se desea comenzar a analizar. En caso de que el repositorio sea privado, pasados los 14 días de prueba se deberá actualizar la licencia de uso a una superior.
En la Figura~\ref{fig:Codacy-IS-SSL} se aprecia uno de los gráficos que muestra Codacy, en este caso referido al número de \textit{issues} detectados en el código analizado. Tal y como se muestra, se ha realizado un trabajo a lo largo del mes de febrero y marzo para obtener una librería sin fallos aumentando su mantenibiliad.
517
+
518
+
\subsubsection{Sonar Cloud}
519
+
520
+
Herramienta \textit{open source} la cual permite hacer un análisis estático del código de un proyecto, entre sus fortalezas destaca su potente capacidad de ser parametrizada, entre las acciones que realiza por defecto encontramos la detección de malas prácticas, errores de código, así como problemas de seguridad que en el pasado se han visto relacionadas con alguna CVE\footnote{\textit{Common Vulnerabilities and Exposures}, lista de fallos \textit{software} (y \textit{hardware}) que en el pasado se han utilizado para ganar ventaja de alguna manera.}.
521
+
522
+
A pesar de que sea un proyecto \textit{open source} no es gratuita, y como todas las herramientas de estas características incluye una versión \textit{community} (gratuita) para aquellos proyectos que sean \textit{open source}.
523
+
524
+
El proceso de integración es sencillo, una vez registrados y asociada la cuenta con una de GitHub, se selecciona sobre qué proyecto se desea comenzar a analizar el código. El siguiente paso es definir un conjunto de reglas (si no se quiere utilizar el que se proporciona por defecto), y en cada \textit{pull request} que se realice al repositorio, Sonar Cloud analizará todos los cambios y emitirá un informe consultable desde la web así como un comentario en la propia \textit{pull request} con los resultados encontrados.
0 commit comments