¿Hablamos?
¿Hablamos?

 

bCube (1)

 

6 minutos de lectura

QA en bCube CMS: clave en la calidad y el éxito de los proyectos

Featured Image

El QA es de vital importancia en el desarrollo del software. Contar con un buen equipo de QA en el equipo garantiza la calidad en el proyecto. Su papel es clave para implantar una estrategia de control de calidad eficiente en cada fase del ciclo de vida de la solución tecnológica, en nuestro caso, en bCube CMS. En este artículo, exploramos en qué consiste el control de calidad, su importancia y beneficios, de la mano de nuestra Quality Assurance.

 

En el desarrollo de software, garantizar la calidad del producto es un aspecto crítico que influye en la funcionalidad, seguridad y experiencia del usuario. La Garantía de Calidad (Quality Assurance, QA) es un conjunto de procesos y metodologías diseñados para prevenir defectos y asegurar que las aplicaciones cumplan con los requisitos establecidos antes de su llegada a los usuarios finales

La ausencia de una estrategia sólida de QA en software en las compañías tecnológicas puede derivar en fallos críticos, vulnerabilidades de seguridad y altos costes de mantenimiento. Ejemplos históricos de errores en distintas plataformas y aplicaciones han demostrado cómo la falta de pruebas de software puede comprometer la reputación y rentabilidad de una empresa.

La importancia del QA cobra más valor si cabe en los sistemas de gestión de contenido, y más especialmente en los CMS especializados en medios de comunicación, como es el caso de bCube CMS. Son plataformas complejas, que gestionan grandes volúmenes de información, y soportan múltiples y nuevas funcionalidades, que se van añadiendo periódicamente. La falta de pruebas adecuadas pueden derivar en la pérdida de datos, problemas de rendimiento y una experiencia de usuario deficiente, algo que los grupos editoriales y audiovisuales, nuestros principales clientes, no se pueden permitir.

Por ello, en Bitban Technologies hemos potenciado el departamento de QA, incorporando una analista Quality Assistance, con el objetivo de implantar y automatizar procesos rigurosos de aseguramiento de calidad, así como realizar pruebas exhaustivas que abarquen tanto aspectos funcionales como no funcionales en bCube CMS. Entre ellas, testing funcional, de seguridad, rendimiento, compatibilidad y usabilidad, como veremos a continuación.

 

Un poco de historia

El Quality Assurance (QA) tiene sus raíces en la manufactura industrial y la ingeniería de software. En concreto, el concepto de aseguramiento de calidad surgió durante la revolución industrial, cuando las fábricas comenzaron a aplicar controles de calidad en sus líneas de producción. Durante la Segunda Guerra Mundial, el control de calidad se volvió esencial en la fabricación de armamento y equipos militares, estableciéndose los primeros estándares sistemáticos de calidad.

Ya en la década de los 50, distintos expertos promovieron la calidad como un proceso continuo de mejora y prevención de errores, en lugar de inspeccionar sólo los productos terminados. Fue el Departamento de Defensa de EEUU el que impulsó los primeros estándares de calidad en software, empezando a diferenciar entre Quality Assurance (QA) y Quality Control (QC), donde QA es un enfoque preventivo y QC es correctivo.

Con la proliferación de metodologías como Waterfall y, posteriormente, Agile, el QA se convirtió en una parte integral del ciclo de vida del desarrollo de software en la década de los 80. Se crearon herramientas de testing automatizado y se establecieron normas como ISO 9000 y IEEE 829 para pruebas de software.

Desde el 2000 hasta la actualidad, con la transformación digital, el QA ha evolucionado hacia la automatización de pruebas y su integración en el proceso de CI/CD. Hoy en día, el QA no sólo garantiza la calidad del software, sino que también impulsa la eficiencia y la seguridad en el desarrollo de tecnología.

 

El importante papel del analista de QA

Para conocer mejor el papel del analista de QA, hablamos con la Quality Assurance de Bitban Technologies, Katia Sánchez Pérez.

 

¿Cuáles son las principales funciones de un analista QA?

Su objetivo principal, mi cometido, es asegurar que el producto principal funcione como se espera y proporcione una experiencia de usuario positiva. Como me gusta decir “asegurar que el trabajo de los desarrolladores y del resto del equipo brille”, que el usuario pueda hacer lo que se espera que el sistema tiene que hacer, en nuestro caso, que bCube CMS funcione perfectamente y no tenga fallos, o “bugs”. Para ello, se realizan y ejecutan test cases, para prevenir errores.

 

Bugs y QA

 

El QA es un concepto muy grande, que involucra a todo el proceso de desarrollo, desde la planificación, hasta la implementación y el mantenimiento del software. Los analistas no sólo nos centramos en encontrar y corregir errores, sino que buscamos la mejora continua de los procesos de desarrollo y la metodología de las pruebas.

 

“El papel del analista QA es asegurar que el trabajo de los desarrolladores y del resto del equipo brille. Garantizar la calidad implica a todos”. 

Katia Sánchez Perez, Analista QA de Bitban Technologies.

 

En concreto, ¿qué procesos preventivos se están instaurando en bCube CMS?

Uno de los mayores retos en bCube CMS es la gran cantidad de variaciones posibles en la configuración que puede haber en los distintos proyectos, ya que buscamos ofrecer a nuestros clientes la máxima flexibilidad para adaptar la aplicación a sus necesidades.

Para abordar este desafío, estamos centrando nuestros esfuerzos en nuestro proyecto core, que incluye la mayor parte de las funcionalidades disponibles y que sirve como punto central para la mayoría de los tests. Posteriormente, estas pruebas se trasladarán al resto de los proyectos, ajustando la configuración según sea necesario.

Nuestra estrategia inicial es enfocarnos en la creación y automatización de una batería completa de pruebas de regresión que cubra todas las partes existentes de la aplicación. Esta batería se ampliará continuamente con cada nueva funcionalidad, asegurando que las actualizaciones no afecten al comportamiento previo ni generen problemas en funcionalidades ya implementadas.

El objetivo es establecer una estrategia de calidad más estructurada y extensa, dando apoyo a los tests unitarios del equipo de desarrollo y reforzando las pruebas funcionales manuales del equipo de producto.

Estamos ampliando este enfoque con pruebas aún más exhaustivas desde el equipo de QA, que cubren tanto los flujos principales que siguen los usuarios como los casos de error. Además, incorporamos pruebas de integración entre distintos puntos de la aplicación para asegurarnos de que el sistema funcione de manera coherente en su conjunto.

Nuestra prioridad es que los usuarios puedan seguir disfrutando de la aplicación sin interrupciones, beneficiándose de nuevas funcionalidades sin que las existentes se vean afectadas. Al mismo tiempo, buscamos ofrecer a los desarrolladores una red de seguridad que les permita programar con confianza, minimizando la posibilidad de fallos inesperados en producción… especialmente un viernes a las 5 de la tarde.

 

¿Y cómo se llevan a cabo las pruebas? 

Nos estamos centrando en que la batería de pruebas se pueda ejecutar en distintos puntos del desarrollo, en varios entornos pre-productivos y en varios proyectos distintos. Eso son muchas pruebas ejecutándose muchas veces. Por ello, apostamos por una automatización del 99%, siendo el 1% restante lo que no se pueda automatizar por limitaciones técnicas, y las pruebas manuales mínimas que haya que hacer.

La automatización de las pruebas funcionales de frontend se está haciendo en TypeScript, usando como herramientas principales Cypress, una librería que permite interactuar con los elementos de una página web; y Cucumber, una librería que permite escribir las definiciones de las pruebas de forma legible para distintos tipos de perfiles técnicos. Para las pruebas de API estamos trabajando en Kotlin con Rest Assured, una librería especializada en pruebas de peticiones HTTP.

La automatización del testing tiene una serie de ventajas, entre ellas, el ahorro de tiempo, el poder ejecutar más casos de prueba en menos tiempo, y en múltiples entornos, dispositivos y configuraciones. Además, se reducen los errores humanos, se disminuye el esfuerzo en pruebas repetitivas y regresión y nos permite obtener reportes y análisis automáticos sobre los resultados de las pruebas, identificar patrones y mejorar la estrategia. 

 

Beneficios del QA

El QA juega un papel crucial en la experiencia del usuario. Un producto de software bien probado asegura que la interfaz de usuario (UI), la funcionalidad y el rendimiento sean lo que el usuario espera. Si un sistema tiene fallos frecuentes, tiempos de carga lentos, errores de interfaz o comportamientos inesperados, la satisfacción del usuario disminuirá, y podría derivar en una pérdida de confianza y una reputación negativa para la empresa.

Un enfoque de QA que previene estos problemas durante el ciclo de desarrollo tiene un impacto directo en la usabilidad, la fiabilidad y la estabilidad del producto. Cuanto más robusto sea el proceso de QA, más fácil será para los usuarios interactuar con la aplicación sin frustraciones.

La garantía de calidad también tiene un impacto significativo en los costes asociados al desarrollo del software. Aunque el proceso puede implicar una inversión inicial (en tiempo y recursos), a largo plazo es mucho más económico detectar y resolver los problemas de calidad desde el principio.

No implementar un proceso sólido de QA puede suponer un retraso en el lanzamiento del proyecto, por la necesidad de corregir defectos, la pérdida de usuarios y clientes por la insatisfacción por errores o fallos, gastos legales por compensación si los fallos del software causan importantes problemas a los usuarios, así como un daño en la reputación, lo que dificulta la adquisición de nuevos clientes.

En cambio, si se cuenta con un buen proceso de QA, se reducen los fallos, mejora la calidad del producto y permite a las empresas poder ofrecer actualizaciones de software más confiables, lo que minimiza los costes imprevistos en el futuro. Así lo hemos hecho en Bitban, donde la satisfacción de nuestros clientes es nuestro objetivo prioritario.

———

Como hemos visto, el QA es un proceso fundamental en el desarrollo de software, ya que garantiza que las soluciones tecnológicas sean funcionales, estables y seguras antes de su implementación. No se trata sólo de identificar errores, sino de mejorar la calidad del proceso de desarrollo a través de metodologías, herramientas y buenas prácticas.

En Bitban Technologies nos caracterizamos por perseguir la mejora continua y evolucionar nuestro gestor de contenidos, bCube CMS, con las últimas funcionalidades y herramientas que demandan nuestros clientes. La calidad para nosotros es un pilar fundamental, por lo que no podía faltar en nuestro equipo expertos en QA. Si quieres conocer más en profundidad cómo trabajamos, te invitamos a ponerte en contacto con nuestro equipo.