Desempeño y carga
En resumen: Un requisito de desempeño dice qué acción, con qué rapidez, para qué parte de las peticiones y con qué carga: «el 95 % de las aperturas del carrito son de menos de 300 ms con 200 clientes a la vez». Una prueba de carga comprueba lo prometido, la de estrés busca dónde se rompe, y la de resistencia si aguanta durante horas.
Problema
Era rápida mientras yo compraba solo
El requisito es «La tienda debe ser rápida». El tester abre el carrito: 0,8 segundos. Rápido. El requisito se cumple.
El Black Friday entran en la tienda 600 personas a la vez. El carrito se abre en 14 segundos, los pagos agotan el tiempo de espera, y los clientes llenan sus carritos una y otra vez, lo que lo ralentiza todo aún más. La tienda pierde su mejor día del año.
La prueba del tester era correcta. El requisito no decía nada que pudiera fallar.
La idea
Las cinco partes del requisito
Un requisito de desempeño dice cinco cosas:
- Qué acción: abrir el carrito, la búsqueda, el pago. No «la tienda».
- Qué medida: tiempo de respuesta, pedidos por minuto, tasa de errores.
- Qué límite: menos de 300 ms, al menos 50 pedidos por minuto, menos del 1 % de errores.
- Para qué parte: el 95 % de las peticiones, no la media.
- Con qué carga y condiciones: 200 clientes a la vez, en un entorno como el real, con los 12 000 productos.
Todo junto: «el 95 % de las aperturas del carrito son de menos de 300 ms con 200 clientes a la vez». Esta frase puede fallar. «Tiene que ser rápido» no.
Más precisamente, para curiosos
En la ISO/IEC 25010:2023 esta es la característica eficiencia de desempeño (performance efficiency), con tres subcaracterísticas: comportamiento temporal, utilización de recursos y capacidad. Cómo se escribe un requisito así como escenario de arquitectura, y por qué los porcentajes de disponibilidad se multiplican a lo largo de una cadena de servicios, está en la lección Requisitos no funcionales medibles del curso de ingeniería de software.
La idea
Por qué no la media
Diez clientes abren el carrito. Nueve esperan hasta 0,6 segundos, uno espera 9,8. La media es 1,3 segundos y parece buena. Pero un cliente esperó casi 10 segundos, y la media lo esconde.
Un percentil dice cuántas peticiones están por debajo del límite. p95 = 300 ms significa: el 95 % de las peticiones son de menos de 300 ms, y el 5 % puede ser más lento. El requisito dice exactamente cuántas peticiones lentas son aceptables, y no deja que unas pocas muy rápidas escondan a las lentas.
Para el pago, donde cada cliente lento es un pedido perdido, los equipos suelen pedir también p99.
Pruébalo
Calcúlalo
La idea
Tres preguntas, tres tipos de pruebas
Las pruebas de desempeño son pruebas no funcionales, normalmente en el nivel de sistema. Responden a preguntas distintas:
- Pruebas de carga: ¿aguanta el sistema lo que se espera? 200 clientes, tantos como en el pico. Comprueba el requisito.
- Pruebas de estrés: ¿dónde se rompe, y cómo? Los clientes crecen más allá de lo prometido hasta que algo se detiene. Luego: ¿se recupera la tienda sola?, ¿se pierden pedidos?
- Pruebas de resistencia (soak): ¿aguanta? 48 horas con la carga habitual. Atrapa lo que se acumula despacio: memoria, conexiones abiertas.
También hay picos (spike testing): de 80 a 600 clientes en un minuto, cuando sale el correo de la oferta.
Para todo esto hay herramientas que ejecutan miles de clientes falsos. Aquí no las enseñamos: una herramienta no sirve si el requisito no dice qué medir y cuándo fallar.
Más precisamente, para curiosos
La escalabilidad y la capacidad se comprueban con pruebas parecidas: cuántos clientes aguanta el sistema, y cómo crece eso cuando se añade un servidor. En la ISO/IEC 25010:2023 la escalabilidad es parte de la flexibilidad, y la capacidad es parte de la eficiencia de desempeño.
Pruébalo
¿Qué tipo de prueba?
La idea
Quién da los números
Los números no son de los programadores («el servidor aguanta 150») ni del tester. Son una necesidad del negocio: cuántos clientes vinieron a la última oferta, cuántos vendrán con la nueva publicidad, cuántos segundos de espera significan un pedido perdido.
El analista los pide como pide las reglas: con un ejemplo. «El último Black Friday hubo 420 personas en 10 minutos en el pico. Este año esperamos un 50 % más. ¿Cuánta espera en el pago es aceptable?».
Luego el requisito se acepta como cualquier otro: una prueba en las condiciones acordadas, y el resultado comparado con el límite acordado. Si pasa pero los clientes siguen quejándose, el requisito está mal, no el programa. Eso es validación de lo no funcional.
Más precisamente, para curiosos
CT-AcT v1.0, capítulo 4, trata el desempeño como parte de las pruebas de aceptación: las medidas se acuerdan antes con el negocio, y el entorno de pruebas tiene que ser representativo. Las pruebas de desempeño son caras (entorno, datos, tiempo), así que son buenas candidatas a seleccionarse por riesgo: el pago y el carrito primero, la página «Quiénes somos» después.
Ejercicio
Un requisito para la oferta
1. Black Friday. Revisa el requisito de marketing.
Marca las palabras que hacen que el requisito sea imposible de verificar o ambiguo, y elige el tipo de cada problema.
Pulsa las palabras que son un problema; otra vez para quitar la marca. Con las flechas se pasa de palabra en palabra.
Los problemas del texto
- «rápida» no verificable: ¿Qué debe ser rápido y cuánto? Cada acción que se mide recibe su propio límite: abrir el carrito, la búsqueda, el pago.
- «tiempo medio» ambiguo: La media esconde a los clientes lentos: 90 aperturas rápidas y 10 de 15 segundos dan una media bonita. El requisito se escribe con un percentil: el 95 % de las aperturas son de menos de 2 segundos.
- «muchos usuarios» no verificable: ¿Cuántos? La medida es un número de la carga esperada: 200 clientes a la vez, 50 pedidos por minuto en el pico.
- «no debe ser lento» no verificable: Una negación sin límite: no hay ningún valor con el que la prueba falle. Por ejemplo: el 95 % de los pagos se completan en menos de 4 segundos, sin contar el tiempo del banco.
La frase con el tiempo medio parece medible, porque tiene un número. Pero la media esconde a los clientes lentos. Con un percentil y una carga («el 95 % de las aperturas en menos de 2 segundos con 200 clientes») se convierte en un buen requisito. Las otras tres no tienen ni límite ni carga.
Test
Ponte a prueba
Lecciones relacionadas
Sección «Lecciones relacionadas»- Se basa en: Criterios de aceptación · Niveles de prueba · Tipos de prueba · El plan y las pruebas basadas en riesgos
- Ejercicios sobre el tema: No funcional