martes, 25 de julio de 2017

SikuliX frente a otras herramientas de pruebas automáticas de GUI

Existen en el mercado muchas herramientas de pruebas automáticas de GUI. En la Wikipedia se puede ver una lista extensa. Cada una con sus pros y contras. Algunas con notable éxito como Selenium,AutoIT o SilkTest y otras casi desconocidas. Todas ellas son rivales de SikuliX ya que su objetivo es el mismo : probar el software tomando como punto de partida la interfaz gráfica de usuario.

Pero hay una diferencia sustancial que condiciona tanto las ventajas como los inconvenientes que mencionaremos más abajo : SikuliX busca los componentes visuales mediante reconocimiento de patrones mientras que la mayoría del resto de competidores suelen utilizar o bien una búsqueda por nombre del componente visual o bien por posición en pantalla.

A continuación desgloso las ventajas y desventajas que, a mi entender, tiene SikuliX frente a otras herramientas.



Ventajas de SikuliX


1– Se distribuye como código abierto.

2 - Es gratuito.

3 - El entorno de ejecución de pruebas (testing environment) es multiplataforma. Es decir, el sistema que ejecuta los scripts de SikuliX puede ser Windows, Linux o Mac.La mayoría de herramientas se ciñen a una plataforma concreta.

4– El entorno probado (tested environment) es ilimitado ya que puede verificar cualquier tipo de software. Es decir, no está focalizado en páginas webs o en apps de móvil o en aplicaciones de escritorio. Solo hay una condición : el entorno probado se ha de visualizar de alguna forma en el  entorno de ejecución. P.e. mediante VNC o ejecutando un emulador.La mayoría de herramientas se ciñen a un tipo de aplicación concreto (p.e. páginas webs o aplicaciones móviles).

5 - No exige conocimientos técnicos avanzados para desarrollar los scripts. Es suficiente con nociones básicas de Python (en el caso que se desarrollen los scripts desde el IDE de SikuliX) o  de Java (en el caso que se creen con un IDE externo como, por ejemplo, Eclipse). También se puede programar en otros lenguajes como Ruby o Javascript. Más información en la web de SikuliX.





Desventajas de SikuliX

  1 – Es posible que un script de SikuliX deje de funcionar si se modifica la resolución de pantalla o el tema (tapiz) del entorno probado.
Esto se debe a lo que he mencionado antes : como SikuliX busca los componentes visuales a partir de reconocimiento de patrones, un cambio estético puede provocar que no encuentre el componente. Evidentemente, tiene un grado de toleracia configurable a la hora de reconocer los patrones pero en algunos casos ni tan siquiera reduciendo esta toleracia se puede solucionar.
Obviamente, una alternativa consiste en crear una versión del script para cada resolución pero puede llegar a ser muy costoso en función de los cambios que se requieran y de las resoluciones a adaptar. Otras herramientas de automatización suelen buscar los componentes visuales a partir del nombre o de su posición en pantalla. Esto les abstrae de los cambios estéticos pero les vincula a un nombre concreto o a una posición.
El motivo es el mismo que el mencionado en el punto anterior : el renderizado de componentes  puede ser (ligeramente) diferente en función del navegador. Estas (ligeras) diferencias pueden provocar que SikuliX no encuentre algunos componentes en pantalla.
El motivo también es el mismo que el mencionado en el punto 1.

2 - En el caso de aplicaciones web, es posible que algunos scripts dejen de funcionar si se modifica el navegador web que se usa durante las pruebas.

3 - Es posible que un script deje de funcionar si se cambia el tipo de fuente de un determinado texto.

4 - El equipo encargado actualmente del desarrollo del producto es pequeño.

5 - No hay una empresa importante detrás que dé soporte o una cierta garantía de continuidad.

6 – Tiene como prerrequisito la instalación del JRE en el entorno de ejecución. Es una desventaja pequeña pero no deja de ser un requisito del producto.

Está claro que las desventajas son considerables y hay que tenerlas en cuenta. En función de los requisitos que se deseen establecer en el entorno de ejecución de las pruebas, esas desventajas pueden suponer una limitación o no.
En el siguiente artículo hablaré sobre los posibles usos de las pruebas automáticas de GUI. En general, sin focalizarlo en SikuliX.

No hay comentarios:

Publicar un comentario