mulberry417 / ProyectoFinal_IS2

MIT License
0 stars 3 forks source link

Proyecto Final Ingenieria de Software II

Integrantes:

Code Smells

Expected a for-of loop instead of a for loop with this simple iteration.

Si tiene un iterable, como una matriz, conjunto o lista, su mejor opción para recorrer sus valores es la sintaxis for que itere entre esas variables. Usando un contador obtendrá mismo comportamiento, pero el código no será tan limpio o claro.

Refactor this function to reduce its Cognitive Complexity from 20 to the 15 allowed.

La complejidad cognitiva es una medida de qué tan difícil es comprender el flujo de control de una función. Las funciones con alta complejidad cognitiva serán difíciles de mantener.

Refactoring code smells

Expected a for-of loop instead of a for loop with this simple iteration.

COMPOSING METHODS: 5. Introduce Explaining Variable

before

after

FUNCTIONS SHOULD NOT BE EMPTY

Hay varias razones para que una función no tenga un cuerpo de función:

Solucion de compilacion

Ejemplos:

Pipeline de CI/CD

Requisitos

:heavy_check_mark: Jenkins Plugins

Pipeline

Pipeline Blue Ocean wiew

Construccion Automatica

Para la construcción automática nos apoyaremos en Webpack.

Instalación

Seguiremos los siguientes pasos para la instalacion de Webpack y las dependencias necesarias para el proyecto.

mkdir x-spreadsheet && cd x-spreadsheet
npm init -y
npm install webpack webpack-cli --save-dev

mkdir dist src
touch webpack.config.js

npm install --save-dev file-loader css-loader file-loader
npm install --save-dev html-webpack-plugin
npm install --save-dev clean-webpack-plugin
npm install --save-dev webpack-dev-server
npm install --save-dev webpack-merge

# less
npm install less --save-dev
npm install less-loader --save-dev

npm install eslint --save-dev
./node_modules/.bin/eslint --init # airbnb

# test mocha
npm install --save-dev mocha

# babel
npm install --save-dev babel-loader babel-core babel-preset-env
# for macha
npm install --save-dev babel-register
# npm install --save-dev babel-plugin-transform-runtime
# npm install --save babel-runtime

Configuración

En el archivo package.json añadimos el script correspondiente para poder ejecutar la construccion automatica .

"scripts": {
    "dev": "webpack-dev-server --open --config build/webpack.dev.js",
    "build": "webpack --config build/webpack.prod.js",
}

Ejecución

Para la construcción automática del modo de desarrollo usamos el comando :

npm run dev

Para la construcción automática del modo de produccion usamos el comando :

npm run build

Reporte Sonar Scanner

Requisitos

:heavy_check_mark: Jenkins Plugins

:heavy_check_mark: SonarQube

Pruebas Unitarias

Para las pruebas unitarias xUnit usaremos Mocha y Chai.

Instalación

Instalamos Mocha, Chai y plugins para la conexión HTTP.

npm install --save-dev mocha chai chai-http

Configuración

En el archivo package.json añadimos el script correspondiente para poder ejecutar la pruebas unitarias .

"scripts": {
    "test": "nyc ./node_modules/mocha/bin/mocha --require @babel/register --recursive test"
}

Creamos una carpeta llamada test para alojar los archivos que contendran las pruebas, trabajaremos sobre los archivos:

Formulas (formula_test.js)

Se realizaron pruebas unitarias xUnit para evaluar el funcionamientos de las formulas contenidas en el proyecto como:

Formato (formato_test.js)

Se realizaron pruebas unitarias xUnit para evaluar el funcionamientos de las funciones contenidas en el proyecto como:

Formato (alphabet_test.js)

Se realizaron pruebas unitarias xUnit para evaluar el funcionamientos de las funciones contenidas en el proyecto como:

Index_At

String_At

Casos de Prueba

Prueba de Seguridad - Owasp Zap

Requisitos

:heavy_check_mark: Jenkins Plugins

Riesgo de la Pagina

Reporte de las Alertas Obtenidas

Tipo de Riesgos de las Alertas

Analizamos las Alertas

CSP: Wildcard Directive (Riesgo Medio)

frame-ancestors, form-action

X-Frame-Options Header Not Set (Riesgo Medio)

El servidor divulga información mediante un campo(s) de encabezado de respuesta HTTP ''''X-Powered-By'''' (Riesgo Bajo)

X-Content-Type-Options Header Missing (Riesgo Bajo)

Divulgación de la marca de hora - Unix (Riesgo Bajo)

Posibles Soluciones de cada Alerta

CSP: Wildcard Directive (Riesgo Medio)

X-Frame-Options Header Not Set (Riesgo Medio)

El servidor divulga información mediante un campo(s) de encabezado de respuesta HTTP ''''X-Powered-By'''' (Riesgo Bajo)

X-Content-Type-Options Header Missing (Riesgo Bajo)

Divulgación de la marca de hora - Unix (Riesgo Bajo)

Pruebas de rendimiento JMeter

Requisitos

:heavy_check_mark: Jenkins Plugins

Planificación de Casos de Prueba:

Se planea probar funcionalidades del proyecto corriendo en localhost:8080 para poder ver la reaccion de su rendimiento:

#TC Escenario de prueba Usuarios Rampas Agentes
TC_1 Modificar texto 5 5s 2
TC_2 Modificar Filas 5 5s 2
TC_3 Modificar Columnas 5 5s 2
TC_4 Modificar Celdas 5 5s 2

Creacion de Tests - JMeter

Resultados de los test - JMeter

Se corre el programa teniendo como resultados

-Test Results: