El testeo en APIs, clave para ofrecer a los clientes un mejor producto

El testeo en APIs, clave para ofrecer a los clientes un mejor producto

Joaquín Engelmo, desarrollador de pruebas en Tuenti y organizador de eventos en theEvnt, nos cuenta la importancia del ‘testing’ para las empresas. También habla de la interrelación entre los test y las APIs, y de los desafíos a los que se enfrenta en su trabajo como desarrollador.

BBVAOpen4U
|
11 Sep. 2017

¿Qué aporta el testing a las empresas?

El testing proporciona beneficios al desarrollador al recibir un feedback rápido de cómo afecta lo que hace al sistema. También aporta ventajas a nivel de producto y de los clientes al dar lugar a menos errores en producción que afectan tanto a la experiencia de usuario como a la parte financiera. Realizar test ayuda a ofrecer a los clientes el mejor producto.

Los test actúan sobre todo como una red de seguridad en el desarrollo. Permiten la evolución del código ya existente y la adaptación al cambio de forma más segura, ya que sabes cuándo los cambios introducidos rompen la funcionalidad actual.

¿Qué tipos de testing se suelen utilizar?

Solemos usar modeles con enfoques y aportaciones diferentes. El objetivo es abrir el sistema a producción con el menor números de errores.

Personalmente sigo una distribución y categorización de los test denominada “la pirámide de los test”:

  •  Test unitarios: situados en la base de la pirámide, donde hay mayor cantidad porque permiten comprobar el comportamiento de las clases, objetos o funciones de una aplicación de forma aislada, rápida y fácil. Aportan un feedback rápido sobre el estado en el que se encuentra la aplicación cada vez que se realicen cambios.
  • Test de integración: situados en la mitad de la pirámide, nos ayudan a comprobar cómo se comportan las partes del sistema en conjunto.
  • Test de aceptación/UI: localizados en la punta de la pirámide, son los menos numerosos. Son test que requieren más preparación y suelen ser más lentos. Aquí se pueden incluir test completos de casos de uso, que serían end-to-end y esto puede incluir interfaz gráfica o no, dependiendo de lo que estemos construyendo. La interfaz gráfica se debe testear y se puede hacer de forma aislada de un servidor real.

¿Cómo se relacionan el mundo del testing y las APIs?

Ahora la mayoría de las aplicaciones interactúan con APIs, ya sean propias o de terceros. Debido a la constante evolución de los sistemas, es imprescindible tener un mecanismo para asegurar si un sistema se ve afectado por cambios en las APIs que usa, y ahí es donde entran en juego los test.

Escribir test que comprueben si una API se comporta como espera nuestro sistema es fundamental para asegurar una correcta integración. Si una API variara su comportamiento, nuestros test lo detectarían y podríamos adaptar nuestro código a esas variaciones.

¿Por qué cree que las empresas están apostando por las APIs?

Pienso que es porque permiten su evolución y adaptación en función de la situación del mercado. Las empresas que las utilizan obtienen ventajas competitivas, ofrecen nuevas funcionalidades o cambiar la forma en la que ofrecen sus servicios. Es como la representación de interacciones del mundo real en el mundo digital.

Como desarrollador, ¿cuáles son los principales retos a los que te enfrentas?

El desafío principal es desarrollar un servicio de alta disponibilidad, que sea escalable y que tenga una gran experiencia de usuario. Además, cuando hay algún problema, es imprescindible desarrollar una buena experiencia de cliente con alta capacidad de respuesta y de detección de problemas, para aislarlos y agilizar la solución.

Respecto a la profesión como desarrollador en general, el mayor reto es estar al día de las tecnologías, lenguajes de programación, nuevas metodologías, etc. Es un entorno muy cambiante donde siempre hay que seguir aprendiendo, mejorando y ser capaz de aportar valor a la comunidad que existe alrededor del software

En tu opinión, ¿cuáles son las estrategias que hay que seguir hoy en el mundo tecnológico?

Soy partidario de la ‘mentalidad Lean’, que busca lanzar productos tecnológicos viables desde el principio, aunque no se disponga de todas las funcionalidades deseadas. Permitir el uso del producto cuanto antes para obtener un feedback rápido e ir mejorando el producto. El objetivo principal es asegurar un compromiso entre funcionalidad y buen servicio.

¿Te interesan las APIs financieras? Visita todas las que te ofrece BBVA

 

¡Suscríbete!

Recibe nuestro boletín semanal. No te pierdas nuestros trucos, consejos, artículos y los eventos más innovadores.