Automatización de pruebas en aplicaciones Flash/Flex
La demanda de pruebas de aplicaciones Flash/Flex se ha vuelto mucho más importante en los últimos años. Esto indica un uso cada vez mayor de esta tecnología, lo que a su vez ilustra la necesidad de realizar pruebas automatizadas de estas aplicaciones. Sin embargo, esta necesidad plantea algunas preguntas y problemas, algunos de los cuales se discutirán en el siguiente artículo.
Específicamente, la primera pregunta que debe responderse sobre la automatización de una aplicación Flash/Flex es: ¿cuál es la técnica de automatización correcta? Hay dos maneras distintas de ir:
Ratón nativo & integración con teclado: ideal para situaciones en las que se requiere una interacción mínima con Flash.
Integración a nivel de API: buena para situaciones en las que se requiere mucha interacción con Flash.
ratón nativo & integración con teclado: aquí es donde se simula el movimiento del ratón, el clic del ratón o la acción del teclado a nivel del sistema operativo. Reproduce la simulación de usuario más realista mediante la grabación de acciones basadas en GUI, lo que nos acerca mucho al uso «real» de nuestra aplicación. Sin embargo, el uso de este método tiene algunos problemas. Por ejemplo, probar una aplicación Flash requiere que la aplicación y el entorno de prueba estén preparados de una manera especial. Hay diferentes maneras de hacer que su aplicación Flash sea comprobable, dependiendo de la herramienta de prueba utilizada y el entorno de desarrollo. Algunas herramientas como TestComplete, Rational Robot y QTP requieren que una biblioteca dedicada (generalmente suministrada por el proveedor de la herramienta) se incruste en la aplicación Flash durante la compilación o en tiempo de ejecución. Los detalles de este proceso se pueden encontrar típicamente en la documentación de estas herramientas.
Capturar los objetos en una aplicación Flex/Flash es problemático por sí solo. Para resolver esto, hay dos enfoques principales:
- Capture la pantalla desde el dispositivo y utilice el reconocimiento de imágenes para localizar los elementos deseados en la pantalla, automatizando la aplicación de forma de caja negra. La berenjena es un buen ejemplo de una herramienta que utiliza este enfoque. También es la forma en que SilkPerformer opera en un entorno Citrix.
- Analice los objetos que se están utilizando en propiedades y use esas propiedades para localizar el objeto. Este es el mismo enfoque que se utiliza en los repositorios de objetos de QTP. Las propiedades típicas de objetos Flash, como el estado, el nombre y el texto, se utilizan tanto para localizar objetos como para verificar que se han llevado a cabo ciertas acciones. Rational Robot es un buen ejemplo de este enfoque; utiliza 11 puntos de verificación diferentes para verificar que se ha llevado a cabo una determinada acción o verificar el estado de un objeto. Este enfoque es perfecto para aquellos que desean simular interacciones GUI relativamente simples, como hacer clic en el botón «reproducir» de una película o interactuar con un diálogo de confirmación, ya que en una aplicación más complicada este enfoque tiende a fallar.
Integración a nivel de API: para aplicaciones que tienen interfaces de usuario Flash/Flex mucho más complejas o aplicaciones 100% basadas en Flash, es difícil usar la captura de GUI tal como se presenta, ya que puede ser frágil y difícil confirmar que la funcionalidad deseada funcionó. Para ello, se puede utilizar la integración a nivel de API. Para realizar este tipo de automatización, uno debe ser capaz de recompilar/modificar los objetos Flash subyacentes.
La forma de proceder a partir de aquí depende de si está utilizando Flash o Flex, ya que Flex expone algunas API de automatización que, de lo contrario, tendrán que reproducirse si está utilizando Flash puro. Para hacer esto se puede: