Pruebas De Escalabilidad: 7 Pasos Hacia El éxito
Los sistemas que funcionan muy bien durante el desarrollo, desplegados en una pequeña escala, pueden descuidar los objetivos de rendimiento una vez que la implementación se escala en torno a los grados reales de uso.
Un caso de ejemplar apropiado de esto se origina en una importante compañía de chips azules que recientemente externalizó el desarrollo de una plataforma de alta tecnología de futuro. Aunque el desarrollo estaba atrás, esto se considera aceptable. La máquina pasó gradualmente a través de componentes funcionales de una prueba de aceptación individual y finalmente parecía que se podría establecer una fecha de implementación. Pero el proveedor comenzó las pruebas de carga y las pruebas de escalabilidad. Siguió una cantidad extendida y costosa de cambios arquitectónicos y cambios en los requisitos de la máquina. El proveedor luchó heroicamente para suministrar un sistema satisfactorio, hasta que finalmente el proyecto fue de nitilla.
Este no es un caso aislado. El folklore abunda con cuentos similares. Desde sistemas de despacho de ambulancia hasta sitios web para la presentación electrónica de declaraciones de impuestos, los sistemas fallan porque escalan y experimentan demandas máximas. Todos estos proyectos parecen nunca haber identificado y ordenado los principales riesgos que enfrentaron. Esta puede ser una etapa fundamental de las pruebas basadas en riesgos, y se aplica igualmente a las pruebas de escalabilidad o las pruebas de carga, ya que lo hace a las pruebas de funcionalidad o las pruebas de continuidad del negocio. Sin evaluación de riesgos, no reconocieron que la escala era entre los mayores riesgos, mucho más para que entregue toda la funcionalidad
Las tendencias recientes hacia la arquitectura orientada al servicio (SOA) intentan abordar el problema de la escalabilidad, pero además introducen nuevos problemas. La incorporación de servicios provistos externamente en su solución actual implica que su capacidad para escalar ahora depende de que este sistema externo funcione bajo carga. Asegurar que esta sea una tarea exigente y, lamentablemente, las pruebas de tensión y las pruebas de estrés aquí a menudo se pasan por alto.
Una mejor práctica sería comenzar el desarrollo de un sistema de software a gran escala utilizando su rendimiento claramente en el corazón, particularmente pruebas de escalabilidad, pruebas de volumen y pruebas de carga. Para generar este enfoque de prueba de rendimiento: