Pruebas de compatibilidad
Jose Aracil Head of QA

Pruebas de compatibilidad, complejo proceso en función de las necesidades del proyecto

Las pruebas de compatibilidad pueden tener diferente significado dependiendo de la organización o contexto, pero si tuviéramos que definirlas en una frase sería la siguiente:

Aquellas pruebas cuyo objetivo primordial es asegurar que la aplicación o producto se muestra y funciona tal y como se ha especificado, en el mayor número de combinatorias de hardware y software (sistema operativo, navegador, etc) posible, para llegar al máximo número de usuarios exitosamente, garantizando principalmente la funcionalidad y la visualización de este, independientemente del contexto de ejecución.

En el mundo del testing, y dependiendo del proyecto al que nos enfrentamos, las pruebas de compatibilidad más comunes se centran en los siguientes 4 ámbitos.

Hardware

Pensemos por ejemplo en los juegos (móviles, PCs / Mac e incluso web); debemos cerciorarnos de que como mínimo nuestro producto funcionará en un conjunto de plataformas objetivo (en relación con los procesadores compatibles, tamaño y resolución de las pantallas, cantidad de memoria y capacidad del chip gráfico) que deberemos testear debidamente.

Sistema operativo

En este caso nos focalizaremos principalmente en asegurar la compatibilidad de nuestro producto en versiones anteriores (retrocompatibilidad) y versiones actuales del sistema operativo, utilizando una vez más las plataformas objetivo de las pruebas.

Navegadores

Si la aplicación bajo pruebas es web, observaremos los últimos estudios disponibles en internet sobre las estadísticas de uso de los navegadores más utilizados en el mercado. Podemos asegurar que con los 4 más comunes (Chrome, Firefox, Safari y Edge) estaremos cubriendo más del 90% de los usuarios potenciales de nuestras aplicaciones web:

No obstante, hemos de tener también en cuenta que cada uno de estos navegadores tiene versiones y podrían presentarse defectos visuales o funcionales por cuestiones relacionadas con la manera en que cada navegador (y versión) interpreta el código HTML y CSS, por ejemplo. Estas pruebas son conocidas como Cross Browser Testing. Existen también herramientas en el mercado que permiten, dada una serie de navegadores, validar automáticamente mediante un algoritmo de comparación de imágenes las capturas obtenidas, para garantizar que la construcción y visualización de cada página es consistente en todos los navegadores.

Dispositivos móviles

Con el auge de los smartphones y las apps nativas, y teniendo en cuenta la amplísima oferta de dispositivos Android, hoy en día este tipo de pruebas son obligatorias en cualquier proyecto de desarrollo móvil. No puede ser de otra manera, ya que con los sistemas de valoración en las tiendas de ambas plataformas (Google Play en Android y App Store en iOS), y la facilidad para desinstalarlas o cambiar a otras apps de la competencia, asegurar la compatibilidad debe ser un elemento clave dentro de los procesos de prueba del producto.

Cuando la estrategia QA definida prescribe la realización de estas pruebas, es necesario, en primer lugar, llevar a cabo un análisis detallado de nuestros usuarios y de cuáles son los dispositivos más comunes sobre los que se instala la app y las versiones de la plataforma que utilizan. El objetivo de este análisis es filtrar y focalizar el esfuerzo dedicado a las pruebas buscando el mayor retorno de la inversión, ya que es imposible abarcar la casuística completa de pruebas sobre todos los dispositivos existentes. Debemos intentar asegurar que cubrimos el mayor porcentaje de usuarios posible con el menor conjunto de dispositivos. Es muy conveniente poder cruzar estos datos con las funcionalidades que más nos interesa asegurar (por ejemplo, los usuarios con iPhone 12 realizan más compras en la app que los que tienen un iPhone 8) para, en caso de ser necesario, priorizar unos dispositivos sobre otros.

El mayor volumen de pruebas de compatibilidad se lleva a cabo sobre dispositivos móviles

En la actualidad, podemos afirmar que el mayor volumen de pruebas de compatibilidad se lleva a cabo sobre dispositivos móviles y, dada su frecuencia de actualización y el ritmo de aparición de nuevos terminales en el mercado, disponer de una granja de dispositivos físicos no parece la mejor decisión en cuanto a los costes principalmente por:

  • La necesidad de adquisición periódica de los terminales para adaptarse a la realidad del mercado y los usuarios finales, y la depreciación que sufren los terminales que ya tenemos. Por otro lado, debemos tener en cuenta que la obsolescencia de las versiones de iOS y Android hará que dejen de ser útiles para este tipo de pruebas.
  • El coste del tiempo dedicado al mantenimiento (factory resets), ajustar manualmente las versiones de OS del dispositivo en cada ciclo de pruebas, establecer un sistema de reserva para los testers, posibles averías, recambios, etc.
  • Limitaciones en cuanto a la ubicación, especialmente con la pandemia y el teletrabajo donde cada miembro del equipo trabaja en una localidad diferente. Estar continuamente enviando los teléfonos supone una pérdida en el tiempo de uso y por el propio coste del envío.

Por todo esto, la recomendación más habitual y práctica es utilizar los servicios de proveedores de dispositivos móviles físicos en la nube como SauceLabs, partner de referencia de nuestra firma y proveedor principal de este tipo de soluciones. Con estas herramientas licenciadas, tenemos la capacidad de probar casi cualquier dispositivo, con cualquier versión de su sistema operativo, simplemente cargando la aplicación (apk o ipa) en la nube, seleccionando el dispositivo sobre el que queremos probar, y conectándonos a él remotamente para llevar a cabo la prueba. Además, tenemos la posibilidad de llevar a cabo cross browser testing (tanto desktop como mobile) de una manera transparente, con las mismas ventajas que el uso de dispositivos móviles (disponer de forma rápida del acceso a un equipo con el sistema operativo que queramos y el navegador que queramos validar). Por último, presentan una serie de utilidades muy prácticas a la hora de hacer las pruebas, como puede ser la captura de pantalla, grabación de videos, simulación de ubicación, uso de la cámara del dispositivo, etc.

Finalmente, para llevar a cabo la planificación, ejecución, seguimiento y reporte de las pruebas de compatibilidad, existen muchas soluciones en el mercado, como por ejemplo Xray (un plugin de Jira), que permite trabajar con el concepto de test environment, de forma que solo se define un test que se prueba en N “entornos”. El test environment puede ser el sistema operativo o plataforma, el navegador, el modelo de dispositivo, etc., y estos elementos pueden ser combinados entre sí. Algunos beneficios del uso de test environments son:

  • Evita duplicar tests, ya que se ejecuta el mismo sobre distintos environments.
  • Permite ver el último estado de los tests en los distintos environments.
  • Trazabilidad de la cobertura para cada environment y de la cobertura general tomando en cuenta los resultados de cada environment.
  • Generación de informes, incluidos de trazabilidad, para cada environment o de forma global.

En definitiva, algo que a simple vista puede parecer sencillo como es validar el correcto funcionamiento de una aplicación en múltiples sistemas o dispositivos, puede complicarse muchísimo en función de las necesidades del proyecto. Confía en nuestros servicios QA y nuestra experiencia con las soluciones de SauceLabs para realizar tus pruebas de compatibilidad. Ya sea de forma manual, automatizada, en navegadores o dispositivos móviles, prueba con Izertis.