Automatización de pruebas software

Tests automatizados para facilitar procesos al programador y llevar a cabo los ajustes necesarios para aplicar las mejoras precisas y alcanzar el objetivo marcado.


Período

2018-2023

Sector

Ingeniería software

Servicio

Desarrollo software: automatización de pruebas
PDF

CONTEXTO

SOLUTE realiza la automatización de pruebas sobre las modificaciones aplicadas a los desarrollos software para comprobar que no producen errores ni cambios en el producto final. Estos tests automáticos se llevan a cabo sobre el código implementado en todos sus desarrollos (TDD) y mantiene la trazabilidad gracias al control de versiones disponible en sus repositorios y a las estrictas reglas de estructura de código y comentarios. Con el fin de mantener la integridad del software desarrollado para algunos clientes, se han automatizado pruebas que nos avisan si los resultados obtenidos tras cambios son distintos.

En el ámbito del desarrollo software, se realizan distintas pruebas automatizadas para facilitar los procesos al programador, ya que se evita hacerlas a mano. Durante el desarrollo de herramientas o programas software, se llevan a cabo modificaciones muy importantes que pueden suponer un gran cambio o, incluso, alguna pequeña, que afecte de forma notable al resultado buscado. Estos ajustes pueden producir errores, por lo que es clave mantener un control sobre el desarrollo para que, en caso de incidencia, se detecte lo antes posible para solventarla y, además, saber en qué punto puede estar sucediendo.


RESULTADOS

Con la automatización de pruebas de software se logran dos objetivos importantes: ahorrar tiempo por parte del programador y localizar errores antes de salir a producción. De esta forma, el programador se dedica a la preparación de las pruebas y a configurar el propio GitLab para que después no se tengan que realizar tests a mano cada vez que haya cambios e, incluso, para optimizar la búsqueda de posibles errores al final del propio desarrollo.

EXPERIENCIA

El principal stakeholder es SOLUTE, ya que es una forma de demostrar a los clientes para los que se desarrolla que el software resultante es de calidad. Nuestros productos son el escaparate del éxito en nuestro desarrollo de software y aplicamos la misma metodología a proyectos para clientes del sector público, consultoría e industrial eólico desde el año 2018.

El objetivo de la automatización de pruebas es obtener un log en el que se muestren los errores que han aparecido tras los últimos cambios y poder actuar ante ello facilitando la localización de estos y corrigiéndolos.

METODOLOGÍA

En SOLUTE se cuenta con un servidor con GitLab instalado, sistema de control de versiones para llevar un seguimiento del código que se va desarrollando, además de mantener una copia de este por si se llegase a perder la copia local con la que se cuenta. Además, se pueden programar distintas tareas, como la automatización de pruebas o el empaquetado del código. Existen otras herramientas, como Jenkins, que permiten también esta automatización vinculándola con sistemas de versiones, aunque actualmente en SOLUTE no se hace uso de él.

Para la preparación de pruebas automáticas, se definen las pruebas unitarias que se pasarán y se enfocan en puntos específicos del software, como la salida de ciertas funciones, para continuar con las pruebas de integración que comprueban el software en conjunto. Una vez definidos y programados ambos tipos de pruebas, se configura GitLab para que se ejecuten cuando se suben cambios nuevos, y se programan algunas que pueden llevar más tiempo para que se apliquen por la noche, por ejemplo.

Como se ha mencionado, se necesita un servidor que cuente con GitLab de forma que se pueda acceder internamente desde el navegador. Además, es preciso que los certificados se encuentren actualizados, pues pueden ocasionar problemas de acceso y, por lo tanto, impedir el lanzamiento de las pruebas.

El objetivo de la automatización de pruebas es obtener un log en el que se muestren los errores que han aparecido tras los últimos cambios y poder actuar ante ello facilitando la localización de estos y corrigiéndolos.


Eólica

Diseño y desarrollo planes de redes eléctricas

Diseño e implementación de planos eléctricos para la red de baja, media, y alta tensión, así como en subestaciones colectores y líneas aéreas o subterráneo de alta tensión para parques eólicos onshore y parques solares fotovoltaicos.

Software

Integración y despliegue continuos

Ramas de la ingeniería de software orientadas a aumentar la calidad y frecuencia de la iteración en las soluciones desarrolladas y a tener un mayor control sobre todas las etapas que comprenden el ciclo de vida del software.