Pruebas complejas y aseguramiento de la calidad (QA) de juegos sociales online para aplicaciones móviles y web

DESCRIPCIóN GENERAL

El cliente es un reconocido desarrollador de “juegos sociales” que abarca una amplia gama de juegos móviles online altamente atractivos. Su disponibilidad, diseño intuitivo y animaciones vibrantes los han convertido en productos muy populares entre los usuarios finales.

SERVICIOS PRESTADOS
  • Pruebas funcionales
  • Pruebas de aplicaciones móviles
  • Pruebas de compatibilidad
  • Pruebas de localización e internacionalización
  • Automatización de pruebas
  • Auditorías de procesos y técnicas
  • Pruebas de integración
  • Pruebas de rendimiento
TECNOLOGÍAS Y HERRAMIENTAS
  • JDK
  • Appium
  • Allure Framework
  • Android Studio
  • Atlassian JIRA
  • EDGE
  • Charles
  • Gradle
  • TestNG
  • CI: Bamboo
  • Xcode
  • TestRail
  • Postman
  • Grafana
  • GameBench
  • BlazeMeter
  • GitHub Copilot
  • Code Rabbit
ALCANCE DEL PROYECTO

El cliente inició el desarrollo de su primer producto móvil con el objetivo de ofrecer una aplicación de juego de alta calidad y fácil de usar. Los especialistas de a1qa se incorporaron al proyecto para garantizar su éxito. Como resultado, el producto se lanzó con éxito y obtuvo una importante tracción en el mercado. Tras este logro, el cliente confió a a1qa el aseguramiento de la calidad de las siguientes aplicaciones para iOS y Android.

Para llevar a cabo las actividades de QA, a1qa asignó inicialmente a tres ingenieros de pruebas móviles, quienes realizaron pruebas de software en los ocho dispositivos móviles más populares. Con el tiempo, el número de productos aumentó y surgió una clara necesidad de ampliar el equipo.

Para escalar el equipo con éxito, a1qa aplicó un enfoque gradual. El proceso incluye la acumulación y transferencia de conocimiento mediante un curso de formación personalizado. Además, los ingenieros de QA deben superar un examen para garantizar su integración fluida en la infraestructura y los flujos de trabajo del proyecto. Actualmente, 87 expertos distribuidos en cuatro equipos de QA dedicados realizan pruebas en más de 150 dispositivos internos. Cada especialista se centra en un área concreta del proyecto, como las pruebas de back-end.

Para asegurar una buena sintonía inicial y confirmar la idoneidad para el proyecto, el cliente valoró la posibilidad de conocer personalmente a los candidatos durante las entrevistas, facilitada por las relaciones consolidadas y la comunicación establecida con a1qa.

Los ingenieros de a1qa:

  • Ayudan al cliente a implantar un enfoque de pruebas de desplazamiento a la izquierda, realizando actividades de QA en fases iniciales del ciclo de desarrollo para prevenir defectos desde el principio.

 

  • Optimizan las pruebas de regresión intensivas y costosas en tiempo mediante automatización.
  • Mantienen de forma constante la alta calidad de todos los productos móviles y apoyan el lanzamiento exitoso de nuevas versiones.
  • Operan eficazmente en un entorno multiproveedor. Actualmente, los procesos están configurados de modo que los líderes de los equipos de QA de a1qa y de otros proveedores reciben tareas y trabajan en paralelo. Además, a1qa asigna ocasionalmente tareas a ingenieros de equipos de otros proveedores.

Trabajo realizado

Cuando a1qa se incorporó al proyecto, el equipo elaboró un calendario conveniente adaptado al horario laboral del cliente, se integró sin fricciones en la infraestructura del cliente y comenzó a llevar a cabo las siguientes actividades de QA de alta prioridad.

Auditorías internas de procesos y técnicas

Cada año, o cuando se produce un cambio de coordinador de proyecto, a1qa realiza una auditoría de procesos para definir posibles áreas de mejora o identificar cuellos de botella existentes, mejorar continuamente la calidad de los servicios prestados y garantizar que todos los equipos de QA estén alineados con los objetivos de negocio establecidos.

Cada pocos años, a1qa lleva a cabo una auditoría técnica integral para cerrar brechas relacionadas con la tecnología, confirmar que las soluciones de automatización de pruebas y pruebas de rendimiento son eficientes y prevenir fugas de datos.

Realizadas de forma periódica, estas actividades contribuyen a mejorar la calidad de la entrega y a reforzar la confianza en el mantenimiento de código de alta calidad.

Pruebas funcionales

Las tareas de los equipos varían en función del ciclo del proyecto. Los ingenieros comenzaron realizando pruebas de front-end. A medida que demostraron un alto rendimiento gracias a su amplia experiencia en QA y a su profundo conocimiento del sector y del software del cliente, también se les confió la realización de pruebas de back-end.

Los ingenieros comenzaron creando una estrategia de pruebas para definir un enfoque rector de aseguramiento de la calidad del software. Determinaron el tipo de documentación de pruebas más adecuado: casos de prueba. Dado que el back-end contiene una lógica de software compleja y el cliente planeaba automatizar las pruebas, era fundamental describir cada paso del proceso de prueba. Tras preparar y validar los modelos de prueba, así como registrar los casos de prueba en TestRail, los ingenieros de QA comenzaron las actividades de testing.

En primer lugar, los ingenieros de a1qa realizaron pruebas de cordura tras recibir las versiones de software para confirmar que la funcionalidad propuesta funcionaba de forma aproximada según lo esperado. En caso de fallo, las versiones se rechazaban y los cuellos de botella debían eliminarse antes de transferirlas a los equipos de QA para pruebas más exhaustivas. Dado que podía haber hasta 20 en un solo día, a1qa introdujo una regla para que los desarrolladores de software realizaran por su cuenta los sanity checks utilizando la lista de verificaciones de a1qa y solo entonces enviaran las builds para pruebas posteriores.

a1qa tiene previsto automatizar todas las pruebas de cordura para optimizar los procesos de QA y liberar tiempo de los ingenieros para ejecutar otras actividades prioritarias del proyecto.

Además, los ingenieros de a1qa realizaron pruebas de humo, pruebas de nuevas funcionalidades, pruebas de regresión y validación de defectos.

Estos esfuerzos combinados ayudaron a detectar problemas de software, confirmaron que la funcionalidad añadida recientemente no afectaba a la lógica del producto y garantizaron el funcionamiento impecable de las mejoras previamente introducidas.

Pruebas de aplicaciones móviles

Los ingenieros realizaron pruebas en dispositivos reales adquiridos por a1qa específicamente para el proyecto, con el fin de proporcionar un entorno lo más cercano posible a la experiencia real del usuario y aumentar la precisión de las pruebas. Los especialistas siguieron una lista exhaustiva de verificaciones para comprobar diversos aspectos de la aplicación.

Además de las pruebas de software, el coordinador de QA debe analizar continuamente la cobertura para garantizar su integridad. Por ello, se mantiene siempre al día respecto al conjunto de dispositivos necesario para realizar pruebas relevantes. En caso de rotaciones dentro del proyecto o lanzamiento de nuevos teléfonos, el coordinador de a1qa gestiona las compras necesarias. Una vez adquiridos, los dispositivos se distribuyen a los equipos correspondientes. Si es necesario, los dispositivos se envían a las ubicaciones actualizadas de los ingenieros de QA para garantizar un funcionamiento fluido.

Pruebas de compatibilidad

Para ayudar al cliente a captar una audiencia objetivo que utiliza distintos dispositivos, los expertos en QA realizaron comprobaciones de compatibilidad. Garantizaron el funcionamiento fluido del software en diversas plataformas y sus versiones tanto para iOS como para Android, así como en una amplia gama de dispositivos con diferentes tamaños y resoluciones de pantalla, CPU, GPU, memoria y otros parámetros técnicos. El equipo también se encarga de los lanzamientos para distintos servicios de distribución, como Google Play, Apple App Store y Amazon App Store.

Durante las pruebas, a1qa utiliza los datos del cliente para identificar los 10 dispositivos más utilizados para pagos en cada plataforma. Estas listas se actualizan cada tres meses para garantizar una cobertura de pruebas exhaustiva.

Además, algunos dispositivos quedan obsoletos con el tiempo o aparecen nuevos dispositivos en el mercado con características clave específicas que difieren de las actuales. En estos casos, los ingenieros revisan las listas cada seis meses y adquieren nuevos dispositivos.

Pruebas de localización

Garantizar una experiencia de usuario consistentemente excelente a clientes de todo el mundo es clave para ampliar la presencia en el mercado. Para lograrlo, a1qa realizó pruebas de localización.

Gracias a la validación de elementos críticos como la correcta visualización de datos, los aspectos culturales, entre otros, el cliente logró una adaptación exitosa del software para mercados internacionales, incluidos la UE, EE. UU., Canadá, Australia y partes de Asia. a1qa garantizó que todas las funcionalidades estuvieran diseñadas de acuerdo con los requisitos del país o región de destino.

Automatización de pruebas

Para optimizar verificaciones laboriosas y que consumen mucho tiempo, acelerar el despliegue del software y garantizar una cadencia de lanzamientos regular, a1qa automatizó parte de las actividades de pruebas de front-end y back-end.

Automatización de pruebas de front-end

El cliente quería automatizar las pruebas de tres aplicaciones móviles creadas con el motor Unity, lo que imponía limitaciones a la hora de probar elementos de la UI, ya que no era posible interactuar directamente con ellos.

Inicialmente, el cliente utilizaba la herramienta Unity junto con Appium para automatizar pruebas mediante el envío de solicitudes a la versión de la aplicación y la obtención de datos sobre los elementos de la interfaz. Sin embargo, debido a preocupaciones de seguridad, se desarrolló una herramienta interna basada en el WebSocket Protocol, que establecía una conexión segura y permitía una transferencia fluida de datos al incrustar un plug-in especial en la versión para acceder a los elementos necesarios.

Además, los ingenieros del cliente crearon una solución que lista todos los elementos en pantalla, lo que permite a los testers seleccionar el elemento específico con el que desean interactuar.

Dentro de estas actividades, los ingenieros de automatización de QA de a1qa se centraron en analizar las capacidades de la solución de código abierto de automatización de pruebas. Su objetivo era ofrecer una comparación exhaustiva con la herramienta interna para apoyar el proceso de toma de decisiones y seleccionar la opción más adecuada.

Las otras responsabilidades de alta prioridad de a1qa incluyen:

  • Desarrollo de una solución personalizada dentro del I+D de automatización de pruebas para acelerar la entrega de resultados de las ejecuciones de pruebas, ya que actualmente el alcance completo de regresión de una aplicación supera las 24 horas, y los ingenieros de automatización deben probar tres aplicaciones.
  • Trabajo en el aumento de la estabilidad de las pruebas automatizadas para reducir el tiempo dedicado a corregir problemas tras cada ejecución. Los problemas de estabilidad surgen porque cualquier herramienta adicional requiere ajustes en el framework de automatización. Además, hay más de 10 lanzamientos al mes, y cada uno implica correcciones de defectos y cambios en el funcionamiento del software.
  • Automatización de informes de pruebas y visualización de métricas para los QA leads, con el fin de proporcionar monitorización en tiempo real del progreso actual e identificar oportunidades de mejora.
  • Soporte del sistema de integración continua en lo relativo a ejecuciones automáticas de pruebas para garantizar una evaluación continua de la calidad.
  • Desarrollo de nuevas pruebas automatizadas para ampliar continuamente la cobertura de pruebas.
  • Garantizar soporte de automatización para otros subproyectos (por ejemplo, relacionados con pruebas de formularios web).

Automatización de pruebas de back-end

Para verificar la calidad del back-end, el equipo de a1qa automatizó las pruebas de regresión de las APIs tanto para la nueva aplicación móvil, que aún no se había lanzado, como para las soluciones existentes disponibles en las tiendas, todas ellas con un único back-end compartido.

La nueva aplicación se desarrolló sobre una arquitectura de microservicios. Para confirmar que las APIs enviaban solicitudes correctamente y devolvían las respuestas adecuadas, los ingenieros de automatización de QA prepararon scripts automatizados en Java y desarrollaron un framework de automatización de pruebas personalizado.

En cuanto a las aplicaciones móviles existentes, el cliente inició su proceso de reingeniería desde una arquitectura monolítica hacia una basada en microservicios.

Esta parte del back-end era compleja e incluía diversos paneles de administración y servicios que ofrecían funcionalidades adicionales, como la segmentación de usuarios finales o la gestión de cuentas. El proceso de modernización no estaba estandarizado, por lo que nuevas APIs para automatización de pruebas no aparecían con rapidez.

No obstante, para evitar pérdidas de tiempo y aportar valor desde las primeras etapas de la re-arquitectura, los ingenieros de automatización de QA de a1qa ayudaron al cliente a definir el alcance de la automatización. Desarrollaron pruebas automatizadas para garantizar la calidad del back-end legacy y las mantuvieron para prevenir problemas de estabilidad, especialmente porque las pruebas incluían elementos de UI.

Durante las pruebas de aplicaciones nuevas y existentes, los especialistas de a1qa configuraron la integración con Allure Report y TestRail para gestionar eficazmente los casos de prueba, establecer monitorización automatizada de resultados y obtener visibilidad en tiempo real del proceso de QA. Para garantizar una evaluación continua de la calidad, las pruebas se ejecutaban cuatro veces al mes.

Mejora de la eficacia de la automatización de pruebas con inteligencia artificial (IA)

Para ayudar al cliente a mejorar la eficiencia de costes, los ingenieros de automatización de QA de a1qa, en colaboración con especialistas del cliente, analizaron la posibilidad de introducir asistencia de codificación impulsada por IA tanto en actividades de control de calidad de front-end como de back-end.

El primer análisis se centró en la introducción de una herramienta basada en IA para la revisión automatizada de código de pull requests. Esta necesidad era crítica ya que, debido a rotaciones del proyecto, la mayoría del equipo de automatización estaba compuesto por nuevos integrantes. En consecuencia, solo unos pocos especialistas podían realizar dichas revisiones, y el proceso resultaba demasiado lento. Al aprovechar la IA para la revisión inicial, a1qa pudo optimizar el proceso, acelerar la entrega de pruebas automatizadas y actualizaciones de software, y liberar tiempo de los ingenieros senior para otras tareas prioritarias.

Tras un análisis exhaustivo, a1qa y el cliente optaron por Code Rabbit, ya que puede rastrear el historial de todos los commits en toda la rama de código antes de un pull request, proporcionando comentarios técnicos más precisos y contextualizados sobre la calidad del código tras cualquier cambio. El uso de Code Rabbit en el proyecto superó la primera fase de aprobación, y ahora el director de QA del cliente presentará la iniciativa a su departamento de IA.

El segundo análisis clave se centró en la selección de una herramienta de IA para reducir el tiempo de desarrollo de pruebas automatizadas, que debido a la alta complejidad del software se situaba en una media de ocho horas.

Como parte del proceso de selección, a1qa dedicó tiempo a la gestión de riesgos. Al comprender los requisitos internos del proyecto, así como las preocupaciones y expectativas del cliente, a1qa identificó áreas sensibles y las destacó para su posterior debate y resolución conjunta.

En concreto, la principal preocupación del cliente es la seguridad de los datos. Al utilizar IA, nadie puede garantizar al 100 % que los datos utilizados para entrenar LLMs IA se mitigaron en la fase de preparación.

Tras finalizar la investigación, a1qa propuso utilizar GitHub Copilot. Su adopción dentro de la automatización de pruebas resultó altamente eficaz: el tiempo de desarrollo de una prueba automatizada se redujo en un 28 %, y en un periodo de nueve meses el equipo de QA ahorró 788 horas, lo que equivale a la implementación de 225 pruebas automatizadas adicionales.

Además, a1qa utiliza GitHub Copilot en otras actividades de automatización, como la creación de documentación complementaria, y planea recopilar más información sobre su eficacia en el futuro.

Pruebas de rendimiento

Con el objetivo de mejorar la experiencia del cliente, evaluar la capacidad del software para soportar una alta afluencia de usuarios finales y garantizar un funcionamiento ágil, el cliente inició pruebas de rendimiento tanto del lado del servidor como del lado del cliente.

Mediante verificaciones del lado del cliente, los ingenieros de QA evaluaron la usabilidad de las aplicaciones, su cumplimiento con los requisitos establecidos, identificaron problemas que afectaban a la experiencia de usuario e introdujeron una serie de mejoras.

En cuanto a las comprobaciones del lado del servidor, estas incluyeron todos los tipos principales —desde pruebas de estrés hasta pruebas de volumen —, lo que permitió al equipo garantizar que, tras la migración del back-end de las aplicaciones móviles a la nube, este sería capaz de soportar la carga prevista sin afectar a la calidad.

Además de las pruebas, los ingenieros de QA configuraron un sistema de monitorización de rendimiento, por ejemplo, dashboards en Grafana y New Relic, para:

  • observar y medir continuamente el rendimiento del software en tiempo real
  • recopilar métricas de rendimiento para su uso futuro
  • diagnosticar problemas de rendimiento o cuellos de botella
  • comparar resultados de pruebas (por ejemplo, entre diferentes lanzamientos)
  • recopilar datos históricos de todas las pruebas ejecutadas

Adicionalmente, durante el último año el equipo de a1qa ha automatizado por completo las verificaciones de rendimiento, lo que ayudó a acelerar el proceso de QA y garantizar una detección más temprana de cuellos de botella de rendimiento.

Pruebas de integración

Era fundamental para el equipo de QA asegurarse de que los distintos componentes y módulos permanecieran totalmente compatibles y no representaran riesgos para el correcto funcionamiento del software.

Los ingenieros de QA realizaron pruebas de integración garantizando que las diferentes partes del software se integraran de forma armoniosa y que no existiera probabilidad de error.

La verificación de integraciones ayudó a confirmar que los usuarios pueden iniciar sesión fácilmente en la aplicación a través de redes sociales como Facebook.

Durante la realización de estas actividades, los ingenieros de QA registraron cada problema identificado en el registro de errores del proyecto. Al menos una vez al mes, los especialistas revisan estos datos, analizan los posibles problemas a abordar y los resultados de la resolución de incidencias previas.

 

CONCLUSIóN

Durante más de nueve años de colaboración, el equipo de a1qa ha ejecutado más de 600.000 pruebas.

Gracias a canales de comunicación bien configurados entre los equipos dedicados y a procesos de interacción optimizados con los desarrolladores del cliente, los ingenieros de QA pudieron garantizar de forma fiable el estricto cumplimiento de todos los plazos. Todos los defectos detectados se corrigieron antes de que se pusieran en producción más de 600 actualizaciones de software.

El proyecto continúa en la actualidad. El cliente valora el enfoque responsable del equipo de a1qa y está satisfecho de continuar con la cooperación.

RESULTADOS
  • Funcionamiento sin errores de las aplicaciones móviles de juegos sociales gracias a pruebas de software complejas.
  • Reducción del tiempo de despliegue mediante la introducción de automatización de pruebas del lado del cliente y del servidor.
  • Mayor eficiencia de los procesos de desarrollo de software gracias a la adopción del enfoque de pruebas de desplazamiento a la izquierda.
EN CIFRAS
  • 9+
    años de duración del proyecto
  • 4
    plataformas probadas
  • 150+
    dispositivos móviles utilizados para pruebas
  • 87
    ingenieros de QA implicados
  • 788
    horas ahorradas en 9 meses utilizando GitHub Copilot para el desarrollo de pruebas automatizadas
  • 100 %
    de cumplimiento de plazos y presupuesto