Probablemente hayas leído alguna noticia acerca de la moneda virtual llamada Bitcoin, la cual lleva algunos años funcionando sobre su propia red Blockchain y ha llegado a valer más de 3.000 dólares por unidad hasta el momento de escribir este artículo. Están naciendo nuevas empresas exclusivamente dedicadas a esta tecnología, las cuales desarrollan y mantienen nuevas redes, monedas virtuales y/o aplicaciones con un gran potencial, así como Ethereum, Golem, Aragon…
La tecnología Blockchain ha llegado para quedarse y con ella vienen muchos cambios importantes en la forma en que se llevan a cabo los negocios y las aplicaciones hoy en día. Estamos hablando de redes descentralizadas, seguras, inmutables, con el consenso distribuido y contratos inteligentes.
Estas características abren un nuevo universo de infinitas posibilidades para desarrollar aplicaciones descentralizadas (DApps) basadas en Blockchain, pero también presentan grandes desafíos en el ámbito del Testing. No sólo el cambio de tecnología es significativo, sino que también son significativos los cambios desde el punto de vista del proceso de negocio. Mientras que las aplicaciones Blockchain requerirán todas las pruebas y validaciones estándares, tales como pruebas funcionales, pruebas de integración, pruebas de seguridad y pruebas de rendimiento, también requerirán conocimientos adicionales de pruebas especializadas.
Probando los Smart Contracts:
Los Smart Contracts (o contratos inteligentes) son módulos de software en la Blockchain que ejecutan transacciones automáticamente en base a condiciones predefinidas y lógica de negocio. Las pruebas de contratos inteligentes implican la simulación de todas las posibles condiciones esperadas e inesperadas para cada contrato, probando todas las combinaciones de lógica empresarial y la ejecución correcta de las transacciones. Y todo esto en el contexto de una red cambiante y en expansión. Dado el gran número de nodos y combinaciones que son probables, la automatización de las pruebas se convierte en una necesidad importante.
Probando los nodos:
La fortaleza de la red Blockchain radica en que el registro de transacciones compartido sea exactamente el mismo en cada uno de los nodos que la forman. Esto se logra a través del consenso en todos los nodos en el orden en que se agregan las transacciones a la red. La comprobación de la consistencia de las transacciones consiste en probar el protocolo de consenso para garantizar que las transacciones se almacenan en la secuencia adecuada en condiciones normales, así como en los casos en que los nodos fallan simultáneamente o suficientes nodos no participan en la red durante un período de tiempo. La resiliencia también debe ser probada mediante la validación del registro de transacciones, por ejemplo, después de que los nodos que se reiniciaron o se unieron a la red se sincronicen correctamente con otros nodos de validación.
Probando requisitos no funcionales:
Otros factores importantes que deben ser probados en la Blockchain son el rendimiento y la latencia, que variarán en función del tamaño de la red, el tamaño esperado de las transacciones y el protocolo de consenso utilizado. También es importante medir si se mantiene la integridad de la red y del registro de transacciones compartido mientras se prueba el rendimiento. Las prueba de seguridad y privacidad de los datos basándose en permisos selectivos también son necesarias.
Después de dar estas rápidas pinceladas acerca de los desafíos que se avecinan, es evidente que sería un error no tener un pie metido en las aplicaciones descentralizadas (DApps) y mantenerse al día de la revolución tecnológica que estamos viviendo.
Referencias:
Esteve Serrano Alberola
Test Lead | Digital Assurance & Testing | SOGETI Spain
Hola Maria Belen, muchísimas gracias por tu comentario pero por ahora no tenemos más publicaciones sobre ese tema pero tendremos en cuenta tu comentario para futuros posts. ¿Leiste el último sobre NTF? Quizás sea de tu interés. Un saludo y seguimos en contacto 😉
Me gustaMe gusta
Hola, actualmente formamos un equipo donde estamos interesados en aprender acerca de como realizar testing en Blockchain, si tenes algun material para sugerirnos, seria muy bienvenido, Muchas Gracias!
Me gustaMe gusta
Pingback: Blockchain: Vulnerabilidades y sus consecuencias – QA:news