banner

6.2. Pruebas de regresión para interfaces

(Image from wikipedia. CC BY-SA 3.0)


Las pruebas de regresión requieren de la definición clara de oráculos que permitan validar que el comportamiento actual es el esperado. Estas pruebas se pueden apoyar en pruebas automatizadas de tipo record and replay, random testing (usando la mismas sencillas de la iteración anterior), y pruebas codificadas usando APIs de automatización. Los rippers también pueden ser usuados pero hay que asegurar que las misma secuencia de exploración se repita.

Para el caso de pruebas de regresión orientadas a la interfaz gráfica, se requiere también de oráculos, pero más especializados en validar aspectos de la interfaz, por ejemplo, colores, layout, posiciones, lógica de presentación, entre otros. Por tal razón, en la caja de herramientas de pruebas automatizadas contamos con las pruebas de regresión visuales (Visual Regression Testing).

Pero antes de entrar en detalles, juguemos un rato. Revisa las imagenes al inicio de esta sección. Encontrarás que hay varias diferencias entre ellas. Tienes máximo 3 minutos para encontrarlas todas...

Las imágenes tienen un total de 15 diferencias. ¿Fue fácil encontrarlas?. Ahora asumamos que vas a hacer una iteración de pruebas de regresión visual y tu objetivo es encontrar cualquier diferencia (en la GUI) entre la versión anterior de la aplicación bajo pruebas y una versión nueva. Sería lo mismo que acabas de hacer con las imágenes de la sección, pero multiplicado por el número de diferentes estados que se pueden presentar en la GUI. ¿Un humano es capaz de detectar todas las diferencias? Tal vez si, pero no va a ser tan rápido como una máquina (salvo que el tester tenga algún poder o don especial para reconocimiento rápido de patrones en imágenes).

Hagamos un ejercicio sencillo. Vé al siguiente link y trata de identificar las diferencias (o regresiones) entre las dos imágenes que aparecen allí. ¿Fué fácil? Hay más de un error.

Tanto en las imágenes del inicio como en las de enlace, usaste tus capacidades cognitivas para reconocimiento de imágenes y de patrones. De esto se trata Visual Regression Testing (VRT). VRT es el conjunto de herramientas y técnicas que permiten automatizar la ejecución de pruebas de regresión visuales y la detección de regresiones. VRT nace en la comunidad de desarrolladores web, como una necesidad para identificar problemas de estilo (CSS) como resultado del uso de diferentes browsers, internacionalización, y cambios realizados en las hojas de estilo. Por tal motivo a VRT también se le conoce como "CSS regression testing".

Algunas herramientas disponibles para VRT son BackstopJS, ResembleJS, Spectre, PhantomCSS, WebdriverCSS, wraith.



1. Detecting and Localizing Internationalization Presentation Failures in Web Applications. Abdulmajeed Alameer, Sonal Mahajan, William G.J. Halfond. In Proceeding of the 9th IEEE International Conference on Software Testing, Verification, and Validation (ICST). April 2016.




results matching ""

    No results matching ""