Ir al contenido

Documat


Resumen de Aplicación de los principios de las pruebas tempranas durante el ciclo de vida de desarrollo de los smart contracts en la tecnología blockchain

Nicolas Sanchez Gomez

  • Los sistemas software son cada vez más multidisciplinares y complejos. Su implementación de forma satisfactoria se ha convertido en un desafío continuo para cualquier tipo de empresa u organismo. Llevar a cabo la “transformación digital” de una empresa u organización implica, entre otras cosas, la adopción de tecnologías digitales avanzadas al objeto de mejorar su funcionamiento, eficiencia, productos y servicios. Es decir, para las empresas y organizaciones supone la aceptación e integración de tecnologías como internet, la nube y los servicios en línea, el internet de las cosas, la automatización de procesos, el análisis masivo de datos, la inteligencia artificial, y otros avances tecnológicos.

    En este contexto, hace ya unos años, apareció la tecnología blockchain. Ésta constituye también una de esas tecnologías que están impulsando la comentada “transformación digital”, gracias a sus características únicas y su potencial para abordar ciertas limitaciones de los sistemas tradicionales. Además, dado su carácter transversal1, esta tecnología está permitiendo la disrupción en la economía y en la empresa más allá de las conocidas criptomonedas. Solo habría que realizar una búsqueda rápida por internet para evidenciar que estamos asistiendo a una importante apuesta del mercado hacia los desarrollos basados en esta tecnología disruptiva. Esto es debido, fundamentalmente, a su capacidad para transformar la forma en que se registran las transacciones y la manera en que se almacenan y recuperan los datos.

    En la tecnología blockchain, los llamados smart contracts (contratos inteligentes) podrían actuar como complemento o sustituto de los contratos legales, ya que pueden automatizar y ejecutar acuerdos de manera eficiente y transparente. Estos “contratos digitales” se registran en un lenguaje informático que es desplegado y ejecutado en una plataforma blockchain. Estos scripts contienen una serie de reglas y condiciones preestablecidas y, cuando se cumplen las mismas, el smart contract permite la ejecución de las acciones programadas, sin necesidad de intervención humana o de terceros.

    Una de las características intrínsecas de la blockchain es su inmutabilidad, es decir, la capacidad de un “libro mayor” de blockchain para permanecer como un historial permanente, indeleble e inalterable de transacciones. Por tanto, es necesario, por no decir fundamental, que antes de desplegar un smart contract en una red empresarial, estos scripts pasen por unos minuciosos procesos de verificación al objeto de validar que su funcionamiento sea el esperado. Un error o defecto en el código de estos programas, por su naturaleza inmutable, puede conducir a resultados inesperados o no deseados y, lo más grave, podría causar un efecto no reparable.

    Además, desde un punto de vista ingenieril, todo cambio tecnológico debería ir acompañado de un adecuado aseguramiento de la calidad, tanto de los productos software como del proceso productivo para su desarrollo y puesta en marcha. Pero, hoy en día, existen pocas utilidades, técnicas o métodos que proporcionen una solución, de forma global, para ello.

    Repasando la literatura existente, la tecnología blockchain está aún en sus inicios desde el punto de vista de la calidad del software. Aunque ya empiezan a ver la luz propuestas interesantes de desarrollo y enfoques metodológicos concretos, las propuestas para el aseguramiento de la calidad de los smart contracts y, sobre todo, las propuestas para abordar el testing temprano, son aún escasas o muy ambiguas. Todo esto se ha hecho evidente tras el trabajo previo de investigación realizado como parte de la presente Tesis Doctoral, donde se ha identificado que todavía son muy escasos los estudios primarios enfocados a dar una respuesta, aunque sea parcial, a esta línea de trabajo.

    Una vez identificado el problema y los objetivos perseguidos en relación al aseguramiento de la calidad de los smart contract, a lo largo de esta Tesis Doctoral se ha intentado dar respuesta a la siguiente pregunta de investigación:

    “¿Los principios que rigen las pruebas tempranas en el ciclo de vida del desarrollo de software son aplicables, en un contexto blockchain, para garantizar la calidad funcional de los smart contracts?”.

    Para ello, se ha analizado de forma detallada los componentes y el funcionamiento de la tecnología blockchain y, más en concreto, de los smart contract. Además, se han analizado posibles soluciones, hasta identificar una solución factible para resolver el problema identificado. En concreto, en este trabajo se ha definido un mecanismo que nos permite generar pruebas funcionales de los smart contracts a partir de las especificaciones facilitadas por el área usuario o cliente y, se ha implementado una utilidad que de soporte a la ejecución de este mecanismo de generación de pruebas funcionales de forma sistemática. Es más, gracias a un proyecto de I+D+i como es el Proyecto SmartAuditor, entre otros, se ha podido dar una respuesta práctica a estos trabajos y en un contexto industrial, siendo este proyecto pionero en resolver de forma satisfactoria esta problemática, mediante nuestra propuesta de solución basada en la aplicación de los principios del testing temprano durante el ciclo de vida de desarrollo de los smart contracts en la tecnología blockchain.


Fundación Dialnet

Mi Documat