Abstract
Este proyecto consiste en el desarrollo de un terminal de punto de venta. En concreto, en este PFM se tratará al apartado de servicios y sistemas para logar una configuración de integración y despliegue continuo.
La integración continua (IC) es una práctica de desarrollo de software mediante la cual los desarrolladores combinan los cambios en el código en un repositorio central de forma periódica, tras lo cual se ejecutan pruebas automáticas. El servicio de integración continua detecta los envíos al repositorio compartido y crea y ejecuta de forma automática pruebas de unidad en los cambios en el código para detectar al instante cualquier error funcional o de integración.
Con el despliegue continuo, se crean, pruebas, y preparan automáticamente los cambios en el código y se entregan para la fase de producción. Esta funcionalidad, amplia la integración continua al implementar todos los cambios en el código en un entorno de pruebas, pre-producción y producción.
En el desarrollo de este proyecto, se ha realizado el estudio de varias tecnologías de despliegue continuo para ampliar la integración continua existente en el proceso de desarrollo. Como resultado de dicho estudio, se obtiene Heroku. Es una plataforma como servicio de despliegue continuo, es decir, es un servidor de aplicaciones que nos permite automatizar el despliegue. El resultado de dicha automatización, es la posibilidad de inclusión en el proceso de integración continua de los test funcionales del API REST, mejorando así el proceso de desarrollo.
En la automatización de los test, se ha realizado una división en dos fases. Una primera fase en la cual se realizarán los test unitarios y de integración, en esta fase solo será necesaria tener una base de datos. Una segunda fase de testing funcional de API REST, para la cual se necesitará la aplicación desplegada.
ABSTRACT
This project consists of the development of a POS terminal. Specifically, this PFM will address the section on services and systems to achieve a configuration of integration and continuous deployment.
Continuous integration (IC) is a software development practice whereby developers combine code changes in a central repository periodically, after which automatic tests are run. The seamless integration service detects submissions to the shared repository and automatically creates and runs unit tests on changes to the code to instantly detect any functional or integration errors.
With continuous deployment, code changes are automatically created, tested, and prepared and delivered to the production phase. This functionality extends seamless integration by implementing all code changes in a testing, pre-production, and production environment.
In the development of this project, the study of several technologies of continuous deployment has been carried out to extend the continuous integration existing in the development process. As a result of this study, Heroku is obtained. It is a platform as a continuous deployment service, that is, it is an application server that allows us to automate the deployment. The result of this automation is the possibility of including in the process of continuous integration of functional tests of the API REST, thus improving the development process.
In the automation of the tests, a two-phase division was made. A first phase in which the unit and integration tests will be performed, in this phase it will only be necessary to have a database. A second phase of REST API functional testing, for which the deployed application will be needed.