dc.contributor.advisor | Fernández Jiménez, Francisco José | es |
dc.creator | Jiménez Calderón, Mario | es |
dc.date.accessioned | 2021-02-04T18:14:38Z | |
dc.date.available | 2021-02-04T18:14:38Z | |
dc.date.issued | 2020 | |
dc.identifier.citation | Jiménez Calderón, M. (2020). Ingeniería de pruebas: aplicación, alcance y rendimiento en un banco de test para una aplicación cliente-servidor. (Trabajo Fin de Grado Inédito). Universidad de Sevilla, Sevilla. | |
dc.identifier.uri | https://hdl.handle.net/11441/104616 | |
dc.description.abstract | En este proyecto se ha creado una aplicación web del tipo single-page application (SPA), la cual está escrita en
JavaScript y basada en el framework React JS.
Por otro lado, la aplicación se apoya en datos obtenidos de un servidor simple creado con la librería JSON
Server.
Una vez que se ha tenido la aplicación finalizada y en funcionamiento, se han escrito tests end-to-end, tests de
integración y tests unitarios para cubrir, en la medida de lo posible, toda la interfaz de la aplicación creada.
Para ello se ha utilizado la librería Cypress para los tests end-to-end y las librerías Jest y Enzyme para los tests
de integración y unitarios.
Tras detallar los tests utilizados y analizar los resultados, teniendo especial interés en el tiempo de ejecución de
cada categoría de tests, se ha procedido a una optimización de estos.
La optimización se ha empezado por los tests end-to-end comparando que zonas de la aplicación puede ser
testeada con tests de integración, buscando siempre no perder alcance. Tras este análisis se han eliminado tests,
lo cual ha repercutido en una mejora notable en el tiempo de ejecución de esta categoría al comparar los
resultados con los obtenidos en la fase pre-optimización.
Respecto la mejora en los tests de integración, se ha realizado un proceso similar al anterior. Se ha buscado
mejorar el tiempo de ejecución reemplazando algunos tests que cubren partes de la aplicación que pueden
testearse con tests unitarios. En este caso la comparación también muestra una mejora en el tiempo de
ejecución total. Adicionalmente, se ha comprobado de forma aislada que al añadir tests unitarios el tiempo de
ejecución se incrementa levemente, en cambio, tener tests de integración innecesarios supone una diferencia de
tiempo mayor.
Con estas optimizaciones se ha demostrado que seguir una estrategia de testeo influye en gran medida al
tiempo de ejecución de los tests.
Finalmente, se ha hecho una inspección manual de la aplicación para detectar errores que no han sido cubiertos
por los tests debido a fallos en la validación de la interfaz. Estos errores o comportamientos no esperados han
sido analizados y se han propuesto soluciones. | es |
dc.description.abstract | For this project there has been created a single-page application (SPA) which is written in JavaScript and
based on the React JS framework.
On the other hand, the application relies on data obtained from a simple server created with JSON Server
library.
Once the application is finished and running the following kind of test have been written: end-to-end tests,
integration tests and unit tests. This is in order to cover the application interface as deep as possible.
Cypress library has been used for end-to-end tests then Jest and Enzyme libraries for integration and unit tests.
After detailing the tests used and analyzing the result paying attention to the execution time of each category of
tests the next step was to optimize those tests.
Optimization started with end-to-end tests comparing which areas of the application can be tested with
integration tests while trying to keep the same level of coverage. After this analysis, tests have been removed
which has resulted in a notable improvement in the execution time of this category when comparing the results
with those obtained in the pre-optimization phase.
Regarding the improvement in the integration tests a similar process to the previous one has been carried out.
We have sought to improve the execution time by replacing some tests that cover parts of the application that
can be tested with unit tests. In this case the comparison also shows an improvement in the total execution
time. Additionally, it has been verified in isolation that when adding unit tests the execution time is slightly
increased. On the other hand, having unnecessary integration tests implies a greater time difference.
With these optimizations it has been shown that following a testing strategy greatly influences the execution
time of the tests.
Finally, a manual inspection of the application has been done to detect errors that have not been covered by the
tests due to errors in the validation of the interface. These errors or unexpected behaviors have been analyzed
and solutions have been proposed. | es |
dc.format | application/pdf | es |
dc.language.iso | spa | es |
dc.rights | Attribution-NonCommercial-NoDerivatives 4.0 Internacional | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/4.0/ | * |
dc.title | Ingeniería de pruebas: aplicación, alcance y rendimiento en un banco de test para una aplicación cliente-servidor | es |
dc.type | info:eu-repo/semantics/bachelorThesis | es |
dc.type.version | info:eu-repo/semantics/publishedVersion | es |
dc.rights.accessRights | info:eu-repo/semantics/openAccess | es |
dc.contributor.affiliation | Universidad de Sevilla. Departamento de Ingeniería Telemática | es |
dc.description.degree | Universidad de Sevilla. Grado en Ingeniería de las Tecnologías de Telecomunicación | es |
dc.publication.endPage | 102 p. | es |