Foto de ThisIsEngineering en Unsplash

El proceso de testing de software se vuelve cada vez más crítico y relevante año tras año. Según la 13ª edición del World Quality Report 2021-22, los más de 1.725 CIOs y líderes de TI de 30 países y 10 sectores industriales encuestados reconocen el valor de las pruebas de software como nunca antes. De hecho, centrarse en los resultados comerciales y mejorar la experiencia del usuario final, constituyen los propósitos más importantes.

Con una importante parte del presupuesto dedicada al control de calidad por parte de las organizaciones de TI, hoy en día esta disciplina no solo permite detectar y reportar errores: aún más importante es prevenirlos y verificar si la solución cumple tanto con los requerimientos planteados, como con las crecientes expectativas de los usuarios finales. De la misma manera, busca reunir información nueva y crítica para el negocio, que sirva de insumo valioso a los tomadores de decisiones. 

Como es bien sabido, las pruebas de software son un proceso desafiante y complejo que requiere el conocimiento de muchas áreas diferentes. Desde comprender cómo funciona el negocio, hasta saber qué tipos de errores se pueden introducir. Hay mucho que considerar cuando se está probando un software.

Para este año, expertos plantean que en las organizaciones se está empezando a adoptar cada vez más la visión de que la calidad del software no es responsabilidad exclusiva del tester sino que representa íntegramente el esfuerzo del equipo, visión que compartimos ampliamente:

“Los líderes de equipo deben organizar un análisis retrospectivo para comprender cómo se están probando las cosas actualmente. Como equipo, pregúntese: ¿Cuál es la calidad de nuestro proceso de calidad? Porque a fin de cuentas, todos somos responsables de la calidad.”

Federico Toledo, Quality Engineer, doctorado en informática y COO de Abstracta.

En general, las compañías están cambiando hacia un modelo ágil, que promueve tanto la agilidad, como la colaboración y la mejora continua. Por tanto, las actividades involucradas en el proceso de testing y calidad deben adaptarse a dicho contexto.

Para 2022 también se espera un álgida implementación de técnicas de pruebas de software con tecnología de punta. Esto representa en sí un desafío para los testers, al tener que estar a la altura para aprender a usar estas herramientas y emplear estas técnicas de manera efectiva.

El Informe de Calidad Mundial ya nos daba luces meses recientemente sobre algunas de las principales tendencias de pruebas de software que tendrían más fuerza este 2022 y que abordaremos a continuación.

Agile & DevOps

La adopción de la metodología agile y DevOps en las pruebas y la calidad de software es una tendencia continua. Las organizaciones están viendo con más claridad los beneficios de poner un mayor énfasis en dichos enfoques, y están adoptando alguna iniciativa para volverse más ágiles. Ya sea que se trate de una revisión completa o de un pequeño empujón, la agilidad es el futuro del desarrollo y las pruebas de software. De la misma manera, los desarrolladores han estado utilizando técnicas de DevOps para automatizar procesos como pipelines de CI/CD para hacer más trabajo más rápido.

Esto ha tenido un impacto positivo en el proceso de testing en general, facilitando a los testers que puedan crear y ejecutar más pruebas.

Los conjuntos de herramientas de DevOps que integran e implementan código continuamente pueden probar, ejecutar e informar desde un pipeline de CI/CD pruebas de testing automatizado con muy poca intervención humana. Los testers de software deberán comenzar a adoptar el uso de estas herramientas.

Técnicas de Inteligencia artificial y Machine Learning aplicadas al Testing

La inteligencia artificial continúa cambiando la forma en que se implementa la automatización de pruebas y cómo se ejecutan las pruebas, en general. Existe un deseo creciente entre las organizaciones de dar un buen uso a las técnicas de inteligencia artificial y machine learning en sus procesos de control de calidad. En términos generales, con estas dos tecnologías es posible realizar el proceso de detección de incidencias de una manera más precisa y de alta calidad.

La IA se utiliza en varias etapas del proceso de testing. Por ejemplo, crear casos de prueba inteligentes, automatizar la ejecución de casos de prueba, encontrar bugs y sugerir soluciones basadas en datos comerciales del software.

Por su parte, el aprendizaje automático está jugando un rol importante en la automatización de pruebas de software. En este contexto, los testers pueden usar diferentes técnicas de ML para automatizar conjuntos de regresión, casos de prueba e incluso encontrar bugs en el software. Con ML, los testers pueden crear bots que interactúan con la aplicación y registran cada paso que realizan. A partir de ahí, los registros grabados se introducirán en un algoritmo de ML que utiliza todos los datos para crear un conjunto de regresión que puede ejecutarse por sí solo.

Sin embargo, se requieren más recursos destinados a la investigación y el desarrollo en esta área dentro de las organizaciones, para lograr más avances en sus iniciativas de modernización a través de herramientas de calidad continua y automatización de pruebas impulsadas por inteligencia artificial.

Mayor nivel y confianza en la Automatización de Pruebas

Según el WQR, el enfoque de automatización en la entrega de calidad del software, debería ser hoy la norma en todas las actividades contempladas dentro del proceso de control de calidad.

Por ejemplo, gracias al progreso de la inteligencia artificial y el aprendizaje automático, los bots se pueden usar junto con tecnología virtual que permite a los testers reproducir sus acciones en la misma página web pero con diferentes valores de entrada, lo que les ayuda a identificar las diferencias entre los resultados esperados y los reales.

Los bots registran todas las acciones del tester, incluidos los movimientos del mouse y los clics, para detectar errores que no aparecen en ningún registro. Los testers serán responsables de poner estos bots a trabajar, con su respectivo monitoreo y mantención.

Automatización móvil

Los lanzamientos continuos de apps móviles han elevado sin duda el nivel de las pruebas automatizadas. Los testers deberán aprender a escribir y ejecutar planes de prueba sólidos en cortos períodos de tiempo para cumplir con los plazos reducidos.

A través de la automatización, los testers pueden ejecutar cientos de pruebas en una aplicación todos los días sin requerir demasiados esfuerzos. Por su parte, las herramientas de automatización de pruebas móviles permiten a los testers ejecutar pruebas automatizadas en dispositivos reales alojados en la nube. Esta acción elimina la intervención manual y ahorra tiempo. Con estas herramientas, se pueden escribir scripts, grabar acciones y convertirlas en pruebas automatizadas.

Big Data Testing

Con el aumento explosivo de data generada por más usuarios y dispositivos, las organizaciones necesitan almacenar estos datos para que sean de fácil acceso para un posterior análisis, por ejemplo, para mejorar las estrategias comerciales y las tácticas de marketing.

Al tomar decisiones comerciales críticas basadas en análisis, es imperativo tener seguridad en que dichos datos representan con precisión el comportamiento del usuario. Por tanto, el manejo de una cantidad tan enorme de datos requiere de pruebas end-to-end para evitar fallas.

Las aplicaciones móviles generan múltiples datos a través de inicios de sesión, seguimiento de ubicación e integración de redes sociales. Los testers pueden usar herramientas de prueba de performance para verificar el rendimiento de estas aplicaciones en diferentes condiciones de carga.

Foto de Yan Krukov en Pexels

Automatización Robótica de Procesos (RPA)

Cada vez más organizaciones están integrando la automatización de procesos robóticos (RPA) para mejorar su flujo de trabajo y reducir costos. Hay que tener claridad en que la Automatización Robótica de Procesos puede significar diferentes cosas para diferentes profesionales dependiendo de cómo se use en una organización. Por ejemplo, RPA se puede usar solo con fines de monitoreo, pero no para reemplazar a los testers.

El futuro de RPA puede incluir la integración de chatbots y procesamiento de lenguaje natural (NLP) en asistentes virtuales, lo que podría ayudar a los testers a completar tareas básicas como crear casos de prueba.

Mejora de habilidades y el surgimiento del rol de SDET

Para cubrir la necesidad de desarrollar nuevas habilidades y de cubrir la brecha de calidad restante extendiendo las habilidades a más miembros del equipo de desarrollo y de las pruebas de software, una nueva tendencia que está creciendo rápidamente es el Ingeniero de desarrollo de software en pruebas, también conocido como SDET (Software Development Engineer in Test), por sus siglas en inglés.

El Informe de Calidad Mundial recomienda ampliamente para los profesionales de la industria del testing, invertir en conocimientos que abarquen todo el proceso de pruebas y control de calidad: desde iniciativas tácticas a corto plazo, hasta la planificación a largo plazo y dirección estratégica.

Detección temprana de incidentes

Hoy en día, para garantizar que el aumento del presupuesto sea práctico, es esencial involucrar al equipo de control de calidad al comienzo del ciclo de vida del desarrollo del software (SDLC). Así, cuanto antes se detecten los incidentes, menor será el costo de corregirlos y el costo total de la calidad.

La clave para implementar shift left testing es medir la efectividad de un cambio y determinar si cumple con las expectativas del usuario final. Otra alternativa es hacer que los equipos de control de calidad escriban casos de prueba unitarios para que los equipos de desarrollo los prueben.

Automatización de pruebas de API y Servicios

La separación del cliente y el servidor es una tendencia actual en el diseño de aplicaciones web y móviles. La API y los servicios se reutilizan en más de una aplicación o componente. Estos cambios, a su vez, requieren que los equipos prueben la API y los servicios independientemente de la aplicación que los utilice.

Cuando la API y los servicios se utilizan en las aplicaciones y los componentes del cliente, probarlos es más eficaz y eficiente que probar con el cliente. La tendencia es que la necesidad de automatización de pruebas de API y servicios continúe aumentando, posiblemente superando la funcionalidad utilizada por los usuarios finales en las interfaces de usuario.

Tener el proceso, la herramienta y la solución adecuados para la automatización de pruebas de API es más importante que nunca. Por ello, los expertos aconsejan capacitarse en las mejores herramientas de API Testing.

Codeless Automation

Con una mayor conciencia de la relevancia de la industria TI, en la actualidad las empresas buscan obtener el máximo rendimiento en poco tiempo. Esto abre las puertas a la automatización de pruebas sin necesidad de código para testers de software. Estas herramientas se han construido con inteligencia artificial y facilitan ejecutar casos de prueba rápidamente. Esto no solo ahorra tiempo, sino que también mantiene los recursos libres del manejo de otras tareas.

QAOps

A medida que los equipos de control de calidad tradicionales se expanden para satisfacer la creciente demanda de servicios de testing, deben estar más alineados con el proceso de desarrollo para acelerar los tiempos de entrega. Esto requiere la coordinación de pruebas automatizadas y manuales a escala. La forma más optima de hacerlo es implementando QAOps.

Con más automatización, los testers pueden concentrarse en tareas más complejas en lugar de solo estar abocados a actividades rutinarias. Esto los convierte en miembros valiosos del equipo. También, les permite mejorar sus habilidades y en consecuencia, realizar su trabajo de la mejor manera posible.

Ciberseguridad  

En la industria de testing, el aspecto de ciberseguridad ha estado ganando terreno tanto para el control de calidad como para los testers. Por su parte, con la ayuda del Risk Compliance se mejora la seguridad previo al inicio del ciclo de desarrollo del software.

El mayor beneficio es que ayuda a comprender los gaps que se pueden abordar inmediatamente, antes de que los ciberdelincuentes actúen. Esta es una de las principales razones por las que juega un papel crucial en el mundo actual y será aún más importante en un futuro cercano.

IAC – Infraestructura como código

En un álgido período de crecimiento de la digitalización y con industrias líderes de TI que están migrando a la nube para mantener la flexibilidad y los costos, la virtualización ha realizado modificaciones drásticas en los servidores y la forma en que se utilizan.

Así, el concepto general de IaC (Infraestructura como código) es administrar el entorno de operaciones de manera efectiva.

Chatbots

Debido a la pandemia, las compañías comenzaron a adoptar el soporte vía chatbot para proporcionar una mejor experiencia de usuario. Los chatbots no solo fueron útiles para resolver consultas, sino que también estuvieron disponibles las 24 horas del día, los 7 días de la semana y ayudaron enormemente a millones de usuarios en diferentes industrias vitales para este periodo, tales como atención médica, e-commerce, banca, retail, etc.

Por lo tanto, es probable que los chatbots no sean una tendencia pasajera y que a la larga, requieran de pruebas más exhaustivas.

Centros de excelencia de Testing (TCoE)

Analistas y expertos en testing predicen que dentro de la industria de TI se verá una progresiva implementación de Centros de Excelencia de Testing, conocidos también como TCoE. Centros que reúnen todos los recursos necesarios (desarrolladores, testers, herramientas de automatización y clientes) en un solo lugar donde todos pueden trabajar juntos.

Usualmente, las pruebas se dejan a cargo de los testers para que las ejecuten, por lo que estos deben comprender cómo funciona el proceso y qué deben probar. Con los TCoE, estos podrían introducir nuevas ideas, en lugar de abocarse 100% a las pruebas, durante los sprints o al final del lanzamiento del producto digital. Y es que gracias al significativo progreso de tecnologías como IA y ML, los ingenieros de calidad tienen un campo de acción más amplio.

Cerrando

Vivimos en un mundo de cambios exponenciales sin precedentes impulsados ​​por las nuevas tecnologías y la transformación digital. Hoy somos testigos de enormes cambios en los avances a medida que el mundo se digitaliza, por lo que mantenerse al día con las tendencias emergentes de testing y calidad de software brinda a los profesionales y compañías la oportunidad de mantenerse competitivos y lanzar productos de calidad seguros, confiables y duraderos.

¿Hay alguna otra tendencia dentro de la industria que preveas para 2022? ¡Comparte tus impresiones en nuestra sección de comentarios!


Otros contenidos relacionados

Cómo Shift Left Testing puede impulsar la adopción de DevOps

Diseñar Productos Accesibles y no testearlos, es solo una buena intención

¿Por qué el Testing es clave para brindar una excelente experiencia al cliente?