Imaginad que lleváis tiempo esperando un evento importante, imaginad que invertís tiempo, expectativas y, tal vez, dinero y que sólo tenéis que hacer click para acceder a él. Imaginad que, llegado el gran momento, este click y todas vuestras expectativas se derrumban al ver el temido mensaje: ‘Servicio no disponible’.
Frustración, desesperación y abandono es lo que en estos momentos cualquier persona suele experimentar. Lo que pasa después es claro y tenemos ejemplos de ello cada día: la BBC señala que cada segundo de retraso de sus sistemas supone la pérdida de un 10% de sus lectores. Lo mismo puede inferirse de cualquier otra web que aproveche estos canales para vender o dar información. Incluso Google, señala que a medida que el tiempo de carga de una página pasa de un segundo a diez, la probabilidad de que un visitante se vaya aumenta un 123%.
Casi parece un tópico decir que la capacidad de respuesta de las aplicaciones influye en el comportamiento de los usuarios. Sin embargo, según nuestros estudios, más de ocho de cada diez empresas considera aceptables tiempos de respuesta de más de tres segundos para sus aplicaciones móviles… Seamos honestos, ¿seríamos tan comprensivos en el uso de estas aplicaciones en nuestra vida personal? En cierto modo, es correcto pensar que las expectativas de usuario final son subjetivas y dependen del objetivo final de las aplicacions, pero como usuarios somos cada vez más exigentes, y esto afecta no sólo a la satisfacción personal sino también a nuestra productividad y consumo, aspecto que es medido, monitorizado y cuantificado por empresas y proveedores.
En definitiva, el tiempo en que vivimos presenta a las organizaciones un extraordinario reto: ampliar la cobertura de sus servicios digitalizados está al alcance de la mayoría, lo que les permite llegar a un público cada vez más amplio y diverso. No nos engañemos, semejante reto, si bien puede llegar a suponer un gran beneficio, nos obliga a conocer y cumplir con las expectativas de los usuarios a los que vamos a servir. ¿Qué nos ofrece, pues, la cultura del Performance Testing?
La cultura del Performance Testing nos lleva a estructurar un proceso de diseño, testing, puesta en marcha y monitorización de aplicaciones y servicios donde la percepción de usuario final es la clave para cumplir con los objetivos definidos. En resumen, no basta con que tu aplicación cumpla con su función, ha de hacerlo en el tiempo deseado y ha de hacerlo sin importar el número de usuarios que la utilicen.
Este proceso implica, de entrada, aclarar las expectativas sobre tiempos de respuesta y concurrencia de usuarios considerando situaciones realistas antes de diseñar cualquier aplicación. Conlleva pues analizar el objetivo que deben cubrir considerando no sólo el aspecto funcional, sino el no-funcional para el público al que pretendemos dirigirnos. No se trata de diseñar grandes algoritmos, se trata de alinear expectativas desde el primer momento entre los equipos de negocio y desarrollo e infraestructura.
Tras completar la etapa de diseño y al igual que cualquier otro proceso de testing, el de performance testing evoluciona hacia el Shift-Left y arranca de manera temprana, a nivel de API, para garantizar la rápida detección de defectos, evitar grandes cambios en código o incluso parar sistemas en Producción. El dimensionamiento de la infraestructura de acuerdo con expectativas realistas permite minimizar el impacto de los defectos detectados.
Según un informe de Ponemon, arreglar fallos al principio del proceso cuesta una media de 80 dólares, mientras que hacerlo al final puede multiplicar esta cifra por 95 hasta los 7.600 dólares.
La Cultura del Performance Testing abarca las pruebas de manera incremental, primero a nivel del código más esencial y después a nivel de integración, cuando la plataforma garantiza el servicio completo. Monitorizar durante la ejecución de las pruebas permite dimensionar, escalar y detectar cuellos de botella o puntos débiles de la infraestructura que soporta todo el proceso.
Vivimos un momento realmente interesante en el mundo del software. Se están definiendo nuevas formas de trabajo que transforman el lugar de los departamentos de TI y las organizaciones buscan procesos eficientes de validación de software, más exigentes, realistas y orientados a garantizar la satisfacción del usuario final.