03/10/2012

Pruebas de stress sobre aplicaciones web

Pruebas de stress sobre aplicaciones web

Uno de los análisis que suelen integrar cualquier plan de QA es la prueba de stress. Esta evaluación pone a prueba la robustez y la confiabilidad del software sometiéndolo a condiciones de uso extremas. Entre estas condiciones se incluyen el envío excesivo de peticiones y la ejecución en condiciones de hardware limitadas. El objetivo es saturar el programa hasta un punto de quiebre donde aparezcan bugs (defectos) potencialmente peligrosos.

Cuando hablamos de aplicaciones web, una posible condición extrema puede ser el acceso de un enorme número de usuarios en poco tiempo. Efectos similares pueden obtenerse con un ataque de denegación de servicio (DDoS) a través de un software malicioso. Los efectos de la saturación pueden ser la pérdida o adulteración de datos, el uso excesivo de recursos incluso una vez finalizada la situación de stress, un mal funcionamiento de componentes de la aplicación o la aparición de errores inesperados.

Un buen plan de pruebas de stress debe contemplar el desarrollo de no uno, sino varios casos de stress. Cada caso diferirá en el volumen del estímulo a aplicar sobre la aplicación (cantidad de usuarios, cantidad de peticiones, etc.), el tiempo que durará cada estímulo y la duración total del experimento, entre otras variables. Además, deberá contar con una serie de resultados esperados. Todos los casos deben ponerse en práctica, registrándose al término de cada uno estadísticas sobre el uso de CPU, memoria, conexión y otros recursos. Al finalizar, se comparan los resultados obtenidos con los esperados y se obtienen conclusiones sobre el rendimiento de la aplicación. Si se encontraron problemas, es necesario revisar el diseño o el código de la aplicación para descubrir el origen del conflicto.

La importancia de detectar errores a tiempo es tal, que las pruebas de stress suelen realizarse en las primeras instancias del plan de QA, incluso antes de verificar que la aplicación cumpla con los requerimientos solicitados. De esta manera se le entrega al cliente un software que puede no ser el definitivo, pero sí goza de la robustez adecuada para su uso diario.

0

angularjs Aplicaciones en Facebook aplicaciones mobile behavioral targeting Botones Call-to-action breadcrumbs breadcrumbs web búsqueda de personal búsqueda facetada Call-to-action buttons Client-side cliente-destacado cms a medida coding comercio electrónico content marketing CSS3 PIE cuanto debe pesar un sitio data-driven web design Datos estructurados Defacement Denegación de servicio Desarrollar una aplicación web desventajas de PhoneGap diseñar newsletters diseño web diseño web argentina diseño web esqueuomórfico Diseño web responsive Diseño web responsivo diseño web santa fe diseño web Smart TV diseño web televisores DOM desde PHP enlaces rotos filtros de búsqueda flash flat web design formularios sitio web fragmentos enriquecidos función de autocompletar futuro de la realidad aumentada html HTML5 html5shiv inbound marketing Initializr interfaces Web para televisores javascript jobs jQuery Mobile Mapbox maquetado html/css maquetador web masonry layout menú de navegación menú desplegable Metodologías ágiles Modernizr MVC Navegación por teclado oferta laboral OpenStreetMap paginas de Facebook Paper js Paper js framework personas Phishing plan de QA Polyfills polymer portfolio-destacados portfolio-inicio programacion de CMS Programadores WordPress página de contacto página de error 404 que es Backbone.js Realidad aumentada Resultados instantáneos server-side skeuomorphic design sliders y usabilidad soporte Internet Explorer Storytelling Underscores usabilidad usabilidad buscadores user-centered design ux velocidad de carga web Vendor prefixes ventajas jQuery Mobile Ventanas integradas versiones antiguas de Internet Explorer WAI-ARIA web components web imprimible Web Semántica WordPress para ecommerce