X
BLOG

Gestión de los riesgos del desarrollo de SaaS con una plataforma de pruebas de desarrollo

Gestión de los riesgos del desarrollo de SaaS con una plataforma de pruebas de desarrollo Tiempo de leer: 5 minutos

Por Jason Schadewald (Gerente de Producto, Parasoft) y Adam Trujillo (Escritor técnico, Parasoft)

Según la firma de investigación tecnológica Gartner, el mercado de SaaS valía $ 14.5 mil millones en 2012 y se esperaba que alcanzara los $ 22.1 mil millones para 2015. El rápido crecimiento que identifica Gartner no debería sorprender, considerando el potencial de SaaS para reducir drásticamente el tiempo de comercialización y los gastos generales asociados con el seguimiento. y la gestión de innumerables versiones y configuraciones de software empaquetado.

Al implementar una única versión del software, SaaS también permite a las organizaciones centralizar el control. Muchos consumidores empresariales prefieren SaaS porque garantiza la coherencia en toda la empresa, lo que reduce el costo de instalación, mantenimiento y hardware. Las organizaciones también evitan las ineficiencias y los costos ocultos de instalar versiones incompatibles del mismo software en varias máquinas.

Un nuevo conjunto de riesgos empresariales

A pesar de estos beneficios, la promesa de SaaS de un tiempo de comercialización más corto y un costo total de propiedad reducido viene acompañada de su propio conjunto de riesgos, como una capacidad limitada para mitigar los riesgos asociados con una implementación fallida y la posibilidad de interrupciones en toda la organización. a las operaciones comerciales. Para ser claros, estos no son los tipos de riesgo que pueden administrarse mediante la nube y las estrategias de IaaS, que principalmente protegen contra fallas de hardware. SaaS presenta el riesgo de ofrecer una funcionalidad comercial incorrecta o incompleta en la escala de toda su empresa o empresa, un riesgo que afecta tanto a los proveedores como a los consumidores. Debido a que las implementaciones de SaaS son administradas principalmente por el proveedor, los consumidores tienen pocas opciones para mitigar las consecuencias de una implementación fallida, como cambiar a una versión estable o asignar recursos adicionales para desarrollar soluciones alternativas.

SaaS se pone en marcha para todos los usuarios a la vez (todo el mundo en la nube pública o una empresa completa en la nube privada), lo que significa que las consecuencias de defectos importantes e insignificantes se amplifican. Una simple falla lógica en las características, la función o la arquitectura puede revisarse miles de veces por segundo, provocando una cascada de errores, una montaña de corrupción de datos o una serie de ataques de seguridad exitosos poco después del lanzamiento de una nueva actualización o parche. SaaS convierte el fracaso en una propuesta de todo o nada y requiere que desarrollemos prácticas de prueba y prevención más diligentes para abordar estos riesgos comerciales.

Presentamos las pruebas basadas en cambios

Probar SaaS presenta un desafío único porque el trabajo de garantizar la seguridad, confiabilidad y rendimiento de la aplicación puede eliminar fácilmente el corto tiempo de comercialización y los costos minimizados de propiedad que ofrece una estrategia SaaS. Las pruebas basadas en cambios, un método para verificar los requisitos comerciales afectados por cambios en el código o las interfaces, pueden ayudar a las organizaciones a mantener los beneficios de entregar SaaS al tiempo que garantizan la calidad del software. En un entorno de prueba basado en cambios, los cambios en el código desencadenan automáticamente procesos que agilizan la priorización y ejecución de pruebas automáticas y manuales.

En lugar de requerir que los equipos de desarrollo examinen miles de fallas en las pruebas, muchas de las cuales son el resultado de fallas en el origen, una estrategia de pruebas basada en cambios prioriza los resultados de las pruebas en función del valor comercial y los entrega directamente al probador o desarrollador relevante para su resolución inmediata. Al atravesar la montaña de resultados y entregar solo los de mayor relevancia, las pruebas basadas en cambios aseguran la calidad de SaaS al tiempo que mantienen la sensibilidad del tiempo de comercialización a través de disminuciones medibles en el tiempo dedicado a revisar y resolver fallas de prueba.

La clave para maximizar los beneficios de la estrategia de prueba basada en cambios es implementarla en una plataforma de prueba de desarrollo. Pruebas de desarrollo es la aplicación continua de actividades de prueba de software, como pruebas unitarias, análisis estático y revisión por pares, a lo largo del ciclo de vida del desarrollo. Una plataforma de pruebas de desarrollo, como la Plataforma de pruebas de desarrollo de Parasoft, integra y automatiza consistentemente las prácticas de prevención y detección de defectos mientras mide de manera precisa y objetiva la productividad y la calidad de la aplicación.
El motor de inteligencia a bordo de la plataforma de pruebas de desarrollo de Parasoft impulsa la determinación de la relevancia de las pruebas en las pruebas basadas en cambios, lo que agiliza el flujo de trabajo del equipo de desarrollo al proporcionar rápidamente datos procesables sobre los riesgos asociados con la publicación del software en su estado actual. La inteligencia de procesos habilitada por las pruebas basadas en cambios en una plataforma de pruebas de desarrollo ayuda a las partes interesadas y los gerentes a tomar decisiones inteligentes basadas en resultados predecibles y una visión de alto nivel de los riesgos comerciales de la liberación en cualquier momento dado. Las partes interesadas pueden utilizar estos conocimientos para gestionar los riesgos al darse cuenta del impacto de la reasignación de recursos, retrasar una versión para dejar espacio para una solución o mover una función a la próxima versión.

Prueba de regresión automatizada

Cualquier implementación de pruebas basadas en cambios debe basarse en la base de un conjunto sólido de pruebas de regresión. Desde el punto de vista más estricto, los equipos de desarrollo deben probar cada unidad de cada aplicación después de cada cambio para protegerse contra consecuencias no deseadas, y cualquier cosa menor representa un riesgo calculado. Hasta hace poco, la gestión y el mantenimiento exhaustivos de las pruebas de regresión tenían un coste prohibitivo debido a la conocida fragilidad de los conjuntos de pruebas de regresión y al tiempo que lleva ejecutarlos.

El primer paso para reducir estos costos fue la automatización. La automatización junto con IaaS permite la ejecución de pruebas dentro de cualquier período de tiempo definido. Además, la automatización se usa a menudo para generar muchos tipos de pruebas, lo que reduce aún más los costos y la inversión de tiempo. Pero hasta ahora, los equipos de desarrollo todavía tenían que revisar manualmente los resultados de las pruebas, anulando virtualmente las ganancias de productividad obtenidas al automatizar las pruebas.

Las pruebas basadas en cambios permiten priorizar los resultados de las pruebas para que los resultados más importantes, los resultados de las pruebas más cercanas a los cambios y que representan el mayor riesgo comercial, se prioricen automáticamente y se entreguen al desarrollador o evaluador. Al incorporar pruebas basadas en cambios en una práctica de pruebas de regresión automatizada existente, el desarrollo de SaaS puede lograr su promesa de bajo riesgo y alta recompensa.

Simulación de dependencias para probar códigos altamente dependientes y de manejo de errores

Para realizar la prueba de regresión, los equipos de desarrollo deben poder simular dependencias. La simulación de dependencias, ya sea a través de la virtualización de aplicaciones o la creación de apéndices de funciones a nivel de código, es un aspecto crítico de las pruebas de código altamente dependiente, así como código de manejo de errores. Los equipos de desarrollo a menudo determinan que probar código altamente dependiente requiere demasiado esfuerzo para ser oportuno y rentable. Muchos desarrolladores también subestiman la probabilidad de falla asociada con el código de manejo de errores, lo que resulta en aspectos no probados de la aplicación. Si no se controla, el código altamente dependiente y de manejo de errores representa un riesgo significativo para la empresa. Pero lo que las organizaciones pueden no darse cuenta es que el esfuerzo requerido para probarlas es en realidad bastante bajo con la tecnología moderna de simulación de dependencia.

Un ejemplo de código altamente dependiente es la lógica empresarial. Probar la lógica empresarial es esencial porque genera ingresos y satisfacción del cliente. Pero debido a que la verificación de la lógica empresarial requiere procesos desde varios puntos de toda la aplicación, las organizaciones tradicionalmente han esperado hasta la fase de integración para probarla. El resultado es que los desarrolladores y los equipos de prueba pueden encontrar defectos mucho más tarde en el proceso, cuando el costo y el tiempo de reparación son altos. Ser capaz de simular dependencias en todo el SDLC permite a los equipos de desarrollo probar la lógica empresarial y otros códigos altamente dependientes antes de la fase de integración, lo que garantiza que las organizaciones se den cuenta de los beneficios que ofrece una estrategia SaaS.

Probar el código de manejo de errores también es crítico porque funciona como el mecanismo de recuperación de fallas causadas por dependencias externas. Cuando se implementa de manera incompleta o sin tener en cuenta las necesidades comerciales, el código de manejo de errores puede causar consecuencias no deseadas que van desde interrupciones menores del servicio hasta fallas sistémicas graves. Por esta razón, el código de manejo de errores es también una de las vulnerabilidades de seguridad más comúnmente explotadas por los atacantes.
Los desarrolladores y evaluadores deben poder simular fácilmente las dependencias para abordar esta brecha en el proceso de prueba. Una plataforma de pruebas de desarrollo de última generación permite la simulación de dependencia a través de la virtualización de aplicaciones o la función de código auxiliar.

Además, una plataforma de pruebas de desarrollo reduce el tiempo y el esfuerzo necesarios para completar el desarrollo y las pruebas mediante

  • Generación automática de pruebas;
  • Generación automática de dependencias simuladas e inyección de errores;
  • Facilitar la asociación de pruebas con requisitos;
  • Vincular pruebas y dependencias en ejecuciones de pruebas de regresión automatizadas; y
  • Priorizando resultados según riesgo y relevancia.

Conclusión

Por supuesto, no existe una fórmula mágica. Asegurar la calidad de cualquier aplicación, SaaS o de otro tipo, requiere una combinación de tecnologías de prueba y prevención, y el proceso que impulsa el uso de esas tecnologías debe alinearse con los objetivos comerciales. Las pruebas de regresión automatizadas basadas en cambios con simulación de dependencia son la solución para abordar los riesgos únicos de entregar y consumir aplicaciones SaaS, y deben incluirse junto con las prácticas más comunes de análisis estático, revisión por pares, pruebas funcionales y pruebas de rendimiento.

Escrito por

Parasoft

Las herramientas de prueba de software automatizadas líderes en la industria de Parasoft respaldan todo el proceso de desarrollo de software, desde que el desarrollador escribe la primera línea de código hasta las pruebas unitarias y funcionales, hasta las pruebas de rendimiento y seguridad, aprovechando los entornos de prueba simulados en el camino.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft