Inicio Artículos Por Qué la Calidad del Software es Vital en un Mundo Principalmente...

Por Qué la Calidad del Software es Vital en un Mundo Principalmente Digital

calidad de software

La pandemia ha acelerado rápidamente el ritmo de transformación digital y el software es vital en cómo trabajamos, vivimos y aprendemos. Mientras el mundo se vuelve más digitalizado y dependiente de los productos digitales, la calidad del software ha pasado a estar en el punto de mira.

Como la rápida digitalización no muestra indicios de ralentizarse, la innovación y el desarrollo basados en software continuarán. Teniendo en cuenta que el software de baja calidad se estima que cuesta a la economía estadounidense la escalofriante cantidad de 2.000.000.000.000 USD en 2020 , las organizaciones deben encontrar una forma de equilibrar la velocidad de producción de software con su calidad.

Para entender mejor la calidad del software, hemos preguntado al Dr. Gareth Smith, Director General de Automatización de Pruebas Software en Keysight, por qué la calidad del software determina en estos momentos el éxito de los negocios y cómo pueden las organizaciones tomar medidas para mejorarla.

¿Por qué es tan importante la calidad del software?

En la última década, las organizaciones se han centrado en producir nuevas aplicaciones y servicios tan rápido como fuera posible para mantener el ritmo de la demanda, que cambia muy rápidamente, y para dar soporte a la transformación digital. Sin embargo, con la presión de entregas muy rápidas, la calidad del software a menudo queda en segundo plano.

La calidad del software es crítica en un mundo principalmente digital. Por ejemplo, un defecto no detectado puede ocasionar indisponibilidades del sistema, y una mala configuración de plataformas en la nube puede ocasionar brechas de seguridad o pérdida de datos. Los defectos de software incrementan drásticamente el coste de desarrollo. Y, cuando el software es publicado, el coste de encontrar y solucionar es significativamente superior que durante la fase de diseño o desarrollo.

¿Cómo pueden las organizaciones mejorar la calidad de su software?

Con el rápido desarrollo de software, las pruebas y la supervisión deben ser priorizadas para proporcionar una experiencia digital de alta calidad sin fricciones (en todos los canales) que proporcione resultados satisfactorios a los usuarios. Las plataformas de prueba de software de próxima generación soportan esto incorporando las últimas técnicas de IA que aprenden del uso real de la aplicación, patrones de defectos (bugs) históricos, y cuyas conductas de aplicación ofrecen los resultados de negocios más críticos. Estas plataformas pueden generar pruebas de forma automática que se centren en las experiencias de usuario de la aplicación que son más importantes para el éxito de los negocios. Esta automatización inteligente de pruebas extremo a extremo dentro de un entorno DevOps permite que las empresas suministren software de mayor calidad más rápido a la vez que liberan grupos de trabajo para incrementar su productividad.

¿Cómo está impactando DevOps en las estrategias de pruebas y que papel tiene la plataforma inteligente de automatización de Keysight?

DevOps consiste en crear silos entre los diferentes grupos de trabajo para coordinar y colaborar para producir productos mejores y más fiables, más rápidamente. Adoptando una filosofía DevOps, los grupos de trabajo han incrementado la confianza en las aplicaciones que construyen, tienen mayores capacidades para cumplir con las necesidades de sus clientes, y alcanzan los objetivos de negocios más rápidamente.
El éxito de DevOps está intrínsicamente vinculado a la automatización de pruebas, ya que las pruebas manuales no pueden abordar la superficie de pruebas que está siempre en expansión y con frecuencia de despliegue cada vez mayor. Sin embargo, no es suficiente automatizar un puñado de pruebas o de procesos administrativos. Para tener éxito en la era digital, los ingenieros de automatización de desarrollo y pruebas deben colaborar con los equipos de operaciones para asegurar que las aplicaciones y el software alcanzan el objetivo final de encandilar a los usuarios.

En Keysight, estamos ayudando a los grupos de pruebas a automatizar de forma inteligente todo el ciclo de vida de pruebas, desde la creación de casos de pruebas, pasando por la ejecución de pruebas, y hasta el análisis automático de los resultados. Nuestra plataforma potenciada por IA acelera el desarrollo y proporciona visibilidad e información de cómo los usuarios manejan propiedades digitales. Esta información se realimenta a la automatización de pruebas, mejorando significativamente la calidad y la fiabilidad del software.

¿Cómo la IA está cambiando las estrategias de automatización de pruebas?

La IA facilita que la automatización de pruebas vaya más allá de su horizonte de automatización simple basada en reglas. Utiliza algoritmos para entrenar con eficiencia sistemas utilizando grandes conjuntos de datos. A través de la aplicación de razonamientos, resolución de problemas, y aprendizaje de máquina (ML), una herramienta de automatización potenciada por IA puede simular comportamiento humano y reducir la involucración directa de probadores de software en tareas rutinarias.
La automatización inteligente de pruebas evalúa la funcionalidad, prestaciones, y usabilidad de productos digitales en vez de simplemente verificar el código. Incorpora AI, ML, y analítica para probar y supervisar la experiencia de usuario (UX); analiza aplicaciones y datos reales para generar automáticamente y ejecutar “user journeys”. El resultado es una forma más inteligente de probar de forma continuada aplicaciones y software, donde quiera que se estén ejecutando.

Las herramientas basadas en IA eliminan solapamientos de costes de pruebas, optimizan los esfuerzos de pruebas existentes con pruebas más predecibles, y aceleran el progreso desde la detección de defectos hasta la prevención de defectos. Lo que, a su vez, resulta en una calidad software mejorada.

¿Por qué hay un cambio hacia la calidad continuada?

Con la transformación digital, las pruebas deben cambiar de estar centradas en la verificación hacia un proceso continuo de calidad. Los grupos de trabajo deben incorporar la calidad en cada fase del desarrollo de software y automatizar el proceso. La calidad continuada se basa en adoptar un enfoque sistemático para encontrar y solventar defectos del software durante todo el ciclo de desarrollo del software (SDLC). Reduce el riesgo de vulnerabilidades de seguridad y de defectos ayudando a encontrar y solucionar problemas tan proto como sea posible.

Para mejorar la calidad del software, ¿necesitas añadir más recursos técnicos?

No. La IA está realizando el proceso de diseño, desarrollo, y lanzamiento del software más rápido, mejor y más barato. No se trata de que los robots estén sustituyendo a los programadores. Las herramientas potenciadas por IA permiten que los gestores de proyectos, analistas de negocios, codificadores de software y probadores sean más productivos, más efectivos, facilitándoles la producción de software de mayor calidad más rápido y a menor coste.

En Keysight, nuestras plataformas inteligentes de automatización permiten que los “citizen developers” utilicen con facilidad nuestra solución sin código que utiliza IA y analítica para automatizar la ejecución de pruebas a lo largo de todo el proceso de pruebas. Facilita que los expertos de dominio se conviertan en ingenieros de automatización. La IA y el ML se encargan de escribir el código y de su mantenimiento porque la máquina puede crear y ejecutar miles de pruebas en minutos, a diferencia de los probadores humanos.

¿Cómo está transformando la automatización de pruebas la plataforma de automatización de Keysight Technologies?

La plataforma de automatización inteligente de Keysight es la única herramienta de pruebas completamente no invasiva, asegurando una cobertura completa de pruebas sin llegar a tocar el código fuente o instalar nada en el sistema bajo prueba (SUT). Nuestra tecnología reside fuera de la aplicación e informa acerca de problemas de prestaciones, defectos y otros errores sin la necesidad de entender la pila de tecnología subyacente. Esto es crítico para las empresas reguladas, como las sanitarias, gubernamentales y de defensa.

La automatización potenciada por IA puede probar cualquier tecnología en cualquier dispositivo, sistema operativo, o navegador, en cualquier capa; desde la interfaz de usuario (UI) hasta API en la base de datos. Esto incluye todo desde el sitio web más moderno y altamente dinámico hasta sistemas antiguos de back-office hasta sistemas de control y mando y de punto de venta.

La meta final de la automatización inteligente es entender como son afectados la experiencia de los clientes y los resultados de negocios por el comportamiento de aplicaciones o software. Es más, se trata de identificar oportunidades para mejoras y de predecir el impacto que tienen esos cambios en los negocios.

¿Cuáles son algunas de las tendencias futuras que se espera ver en la Calidad Software?

La importancia de la calidad del software seguirá creciendo al acelerarse el ritmo de adopción digital. Cada organización digital debe supervisar continuamente las prestaciones de propiedades digitales y cómo los usuarios están interactuando con ellas para asegurarse de que ofrecen la mejor experiencia de usuario posible. A continuación, listamos 5 tendencias que creemos que ocurrirán en el mundo de QA en los próximos 3 años:

  1. Quality Assurance (QA) se convertirá en clave de beneficios en vez de una función de cumplimiento. A no ser que su software salga al mercado el primero, tenga una experiencia usuario asombrosa y funcionalidad impecable, y un tiempo de respuesta inmediato, su negocio se verá en apuros o fracasará. Pero, si consigue lograr estos objetivos, tendrá éxito. Por tanto, aprovechar QA para medir esto continuamente y predecir el éxito o el fracaso es una clave de beneficios y no simplemente una función de cumplimiento.
  2. Experiencia de Usuario (UX) es el diferenciador clave de su negocio. Su UX es su escaparate, tiene la atención de los clientes y necesita mantenerles ahí. Será mejor que sea excelente o se quedará rezagado.
  3. Prestaciones. Si tiene demoras en la funcionalidad mayores a 3 segundos en cualquier momento, su negocio fracasará. Los Milenials tienen poca paciencia, ¡y la Generación Z aún menos! 3 segundos es el tiempo que sus clientes esperarán antes de irse a la competencia. Pruebas de carga y prestaciones continuas y mejores serán necesarias para asegurar la escalabilidad y los tiempos de respuesta.
  4. La Némesis Digital. Las pruebas deben ser aún más inteligentes, una némesis digital puede encontrar de forma inteligente puntos débiles en cualquier sistema utilizando ingeniería del caos potenciada por IA. Resalte estos puntos débiles y soluciónelos antes de que nadie los descubra. Esto se aplica a funcionalidad, prestaciones, UX y seguridad.
  5. Fusión de Pruebas de Extremo a Extremo. Desde el hardware hasta la UX. Han pasado los tiempos en que probar una capa de tu pila o un tipo de prueba. Probar un terminal 5G, una estación base 5G, la carga de la red, la capacidad de la aplicación para gestionar carga, pruebas funcionales, pruebas d API, pruebas de prestaciones, pruebas de seguridad, pruebas en iOS o Android, probar las pruebas en la nube, etc. etc. etc. ¿Qué pasa cuando hay que probar todo el sistema, de extremo a extremo, y en todas sus capas, flujos de trabajo y puntos de interacción? Sin realizar esta prueba completa, nunca realizaremos una prueba real del sistema en producción; nunca podremos aislar realmente un problema porque puede que no se produzca sin la interacción entre diferentes capas o bajo diferentes condiciones de interacción. Por tanto, ahora es necesario llevar las pruebas al siguiente nivel, pruebas que fusionen múltiples capas aunando las capacidades de los expertos de pruebas de hardware, de software, de red, y de UX en un entorno de trabajo de extremo a extremo.

Autor: Dr. Gareth Smith de Keysight Technologies