Acelere las pruebas de Salesforce con IA y automatización

Foto de cabeza de Matt Love, ingeniero jefe de producto de Parasoft

Por Matt Love

Marzo 4, 2021

7  min leer

La automatización de las pruebas de Salesforce ha sido un gran desafío para los desarrolladores y evaluadores de software. Sin embargo, con la automatización de AI y Parasoft Selenic, hay consejos y trucos que puede adoptar para simplificar las pruebas de Salesforce. Esta publicación los desagrega.

En una Publicación anterior, Ofrecí algunos consejos y trucos para probar aplicaciones de Salesforce con Selenium. Salesforce proporciona un entorno de desarrollo flexible que permite a los desarrolladores definir su lógica empresarial y los elementos de la interfaz de usuario de forma abstracta para que Salesforce pueda implementar esos elementos en la página.

Esta flexibilidad se produce a expensas de Automatización de pruebas de interfaz de usuario porque los desarrolladores no tienen control directo sobre el contenido final en el navegador. Las aplicaciones empresariales de Salesforce son notoriamente difíciles de probar con marcos de automatización de código abierto como Selenium.

Por qué es difícil probar Salesforce con selenio

Para resumir los problemas que discutí en mi publicación anterior, estas son algunas de las razones por las que probar las aplicaciones de Salesforce es difícil de automatizar con Selenium.

Identificadores de elementos dinámicos

Los identificadores de elementos en una aplicación de Salesforce tienen un aspecto muy extraño, por ejemplo, id = ”940: 1376; a”. Peor que eso, los identificadores cambian aleatoriamente entre las visitas a la página. Esto hace que los identificadores sean inútiles para la automatización de pruebas.

Aplicaciones empresariales lentas alojadas en la nube

A pesar del nombre "Lightning", las aplicaciones empresariales alojadas en la nube de Salesforce a veces pueden ser bastante lentas. Los ingenieros de automatización de pruebas están familiarizados con los desafíos que conllevan las aplicaciones que pueden tardar en responder. Un script de prueba fallará si intenta realizar el siguiente paso antes de que la aplicación esté lista.

Recordar y reinicializar componentes de la interfaz de usuario Lightning

Otra espina en el costado de la automatización de pruebas de IU es que Salesforce recuerda qué componentes de Lightning UI se abrieron por última vez y reinicializa el último estado conocido al iniciar sesión. Esto significa que el diseño de página inicial disponible para la prueba está sujeto a cambios según el historial guardado.

Actualizaciones frecuentes del software de Salesforce

La interfaz de usuario de Salesforce Lightning tiene varias actualizaciones cada año. Cada actualización puede provocar interrupciones en la automatización de las pruebas de IU. En tales casos, se necesita la autorreparación impulsada por IA para mantener la automatización de pruebas funcionando con un programa de actualización tan frecuente.

yo ofrecí consejos y trucos para hacer frente a estos desafíos. Aunque son útiles para que Selenium funcione con las aplicaciones de Salesforce, todavía es mucho trabajo. Afortunadamente, existen herramientas para ayudar.

Logre pruebas continuas de aplicaciones de bajo código

Mejore las pruebas de IU automatizadas de selenio con tecnología de inteligencia artificial

Parasoft Selenic automatiza de manera eficiente la creación de pruebas de Selenium y simplifica el mantenimiento de las pruebas. Con Selenic, puede registrar interacciones con las aplicaciones empresariales de Salesforce en su navegador. Luego, cree fácilmente clases de prueba de Selenium que aprovechen todas estas mismas técnicas.

El registrador integrado de Parasoft Selenic proporciona una selección de aplicaciones para que pueda elegir recopilar atributos específicos de Salesforce mientras graba las acciones de la interfaz de usuario. Luego, Selenic incorpora esos atributos al crear pruebas de IU de Selenium y utiliza tecnología de inteligencia artificial para aplicar la autocuración a las pruebas que se rompen debido a cambios en los localizadores o condiciones de espera.

Pero espera. ¡Hay más!

También puede aprovechar las pruebas de API y la virtualización de servicios para ayudar a que sus pruebas de Salesforce sean mejores, más rápidas y más económicas. Veamos cómo Parasoft puede ayudarlo a lograr los tres.

Pruebe mejor su aplicación de Salesforce

Es probable que la dificultad de utilizar la automatización con las aplicaciones de Salesforce dé como resultado pruebas deficientes en general. La cobertura de la prueba es probablemente baja y aumentarla requiere mucho más trabajo. Para probar mejor estas aplicaciones, la solución de automatización de pruebas debe facilitar la creación y el mantenimiento de las pruebas.

Selenic registra las interacciones de la interfaz de usuario durante la ejecución de la aplicación y, como resultado, crea una prueba de Selenium reutilizable. Utilizando un complemento de grabación para Chrome, Selenic intercepta todas las interacciones de la interfaz de usuario durante la ejecución de la aplicación e identifica elementos utilizando el Modelo de objeto de página de selenio, que mejora la capacidad de identificar localizadores de forma única a pesar del uso de identificadores atípicos en las aplicaciones de Salesforce.

Optimice las pruebas de Selenium con Parasoft Selenic y el poder de la IA.

A continuación, se ilustra el flujo de trabajo de la creación de pruebas con Selenic. Las interacciones de la aplicación se registran en el navegador junto con las llamadas API asociadas (más sobre esto más adelante) y se convierten en proyectos de Selenium Java en su IDE.

Cuatro capturas de pantalla en el sentido de las agujas del reloj comenzando con la aplicación Salesforce con una flecha que apunta a Selenic Recording y una flecha que apunta al Selenic IDE Plugin con una última flecha que apunta a los resultados de la prueba de Selenium

Las pruebas se crean rápida y fácilmente a partir de escenarios de prueba existentes y se convierten en pruebas de Selenium en su IDE.

¿Qué pasa cuando las cosas cambian?

Las pruebas de selenio son algo frágiles y dejan de funcionar rápidamente después de que se realizan cambios en la aplicación. Selenic ayuda al proporcionar autocuración para estas pruebas rotas.

Selenic continúa registrando interacciones durante las siguientes ejecuciones de prueba para detectar cambios desde la versión de prueba anterior y actualiza las pruebas en función de las diferencias detectadas, como localizadores fallidos y condiciones de espera.

Selenic también realiza un seguimiento de las métricas de rendimiento durante las grabaciones, lo que puede ayudar a comparar y depurar problemas de rendimiento. El flujo de trabajo general para la autocuración de Selenic se muestra a continuación.

Captura de pantalla de Selenic Configurator Habilite la autocuración con la flecha apuntando hacia la derecha a la Aplicación de Salesforce modificada y la flecha hacia abajo apuntando al Informe de autocuración de Selenic

Las heurísticas de IA de Selenic diagnostican fallas en las pruebas y ajustan automáticamente los elementos faltantes para "curar" las pruebas. Esto funciona directamente desde el IDE como se muestra aquí y funciona igual de bien en una canalización de CI / CD. Las recomendaciones hechas a partir de las pruebas observadas se pueden importar al IDE y actualizar con un solo clic.

La generación automatizada combinada con la autorreparación garantiza que las pruebas de Selenium para aplicaciones de Salesforce sean menos frágiles y más fáciles de mantener. Esto debería ayudar a los equipos a mejorar significativamente sus pruebas automatizadas porque pueden registrar de manera confiable conjuntos de pruebas completos y reutilizarlos sin los problemas tradicionales que plagan las pruebas de Selenium. Es menos probable que estas pruebas se interrumpan debido a cambios en la interfaz de usuario y se mantienen fácilmente durante todo el ciclo de vida del desarrollo.

Acelerar las pruebas de IU es muy útil y el ROI de la inversión en pruebas de Selenium a nivel de IU hace que valga la pena. Incluso con estas mejoras, las pruebas en la interfaz de usuario siguen siendo un cuello de botella y es más eficiente probar la lógica empresarial a nivel de API.

Pruebe sus aplicaciones de Salesforce más rápido

Afortunadamente, mientras se registran los escenarios de prueba de la interfaz de usuario con Selenic, también es posible registrar las interacciones de la API que tienen lugar utilizando Prueba SOA de Parasoft. Estas grabaciones, al igual que las interacciones de la interfaz de usuario, se reutilizan, parametrizan y modifican para crear escenarios de prueba de API.

SOAtest utiliza tecnología AI para analizar los patrones y localizadores de tráfico de datos complejos y fusionarlos en pruebas API organizadas. Estas pruebas de API se pueden aplicar a la aplicación para probar la misma lógica, pero sin interacción con la interfaz de usuario. Esto reduce en gran medida la sobrecarga de las pruebas y, con algunos ajustes, las pruebas de API se pueden reducir a las interacciones mínimas necesarias para probar un caso de uso particular. A continuación, se muestra el flujo de trabajo típico para usar SOAtest con las pruebas de API de la aplicación Salesforce.

Captura de pantalla de la aplicación Salesforce ejecutándose con un tiempo de ejecución de la interfaz de usuario de 32 segundos + flecha que apunta a la grabación de SOAtest con un tiempo de ejecución de la API de 19 segundos y una flecha a una captura de pantalla de la prueba optimizada con un tiempo de ejecución optimizado de 6 segundos.

Pruebas de nivel de API valida la lógica empresarial de la misma manera que el caso de prueba de IU original pero con tiempos de ejecución significativamente más bajos. Hasta el 97%. Esto significa que los conjuntos de pruebas toman mucho menos tiempo y también abre la posibilidad de expandir las pruebas para validar partes de la lógica comercial que se pierden en el nivel de la interfaz de usuario.

Las pruebas de la API de SOAtest están destinadas a ser reutilizadas y parametrizadas según sea necesario. Se crean nuevos escenarios basados ​​en las grabaciones originales con la adición de conjuntos de datos creados por el evaluador y datos generados automáticamente según sea necesario. Ahora es posible un conjunto completo de pruebas de API a partir de una simple grabación al expandir los conjuntos de datos para las pruebas.

Captura de pantalla del esquema de mensajes de la API de SOAtest que apunta a capturas de pantalla de Data Source + Data Generator que apunta a la nueva captura de pantalla de pruebas de API.

Al aprovechar estas pruebas de API flexibles, es posible probar más aplicaciones, ya que hemos eliminado de manera efectiva la dependencia de la interfaz de usuario para gran parte de nuestras pruebas. Esta independencia significa que las pruebas pueden escalar rápidamente y mucho antes en el programa de desarrollo.

Por supuesto, las pruebas de API son excelentes, pero aún existe el problema del entorno de ejecución de pruebas. Ningún sistema empresarial está exento de dependencias de servicios externos y sistemas heredados. Estos suelen ser la pesadilla de los probadores, ya que descartan por completo las pruebas del sistema de producción (que requieren un facsímil razonable en un laboratorio) o hacen que las pruebas de integración sean extremadamente riesgosas. Aquí es donde la virtualización de servicios se vuelve esencial para desacoplar las dependencias de estos sistemas de producción.

Cómo elegir la solución de virtualización de servicios adecuada

Pruebe sus aplicaciones de Salesforce de forma más barata

Servicios virtualizados proporcionados por herramientas de virtualización como parasoft Virtualizar son fundamentales para desvincular las aplicaciones sometidas a prueba de sus complejos entornos de producción. Simular dependencias significa que la aplicación bajo prueba está desacoplada del entorno de producción.

Esto proporciona un control completo de los datos, la implementación bajo demanda y la capacidad de paralelizar y acelerar las pruebas en gran medida, sin los costos de las API de pago por uso, un laboratorio de pruebas o la interferencia con los sistemas de producción.

parasoft CTPEl administrador de entorno permite trazar el entorno de prueba para la aplicación bajo prueba y configurar servicios simulados según sea necesario. Estos servicios pueden proporcionar respuestas realistas y respaldar modelos de datos que imitan los servicios del mundo real.

CTP proporciona un modelo de datos para el servicio virtualizado y la capacidad de administrar los conjuntos de datos asociados con el modelo de datos. La complejidad del servicio virtualizado escala según las necesidades de la aplicación que se está probando.

Captura de pantalla de Parasoft CTP Environment Manager que muestra un modelo de datos para el servicio virtualizado y apunta hacia dos capturas de pantalla más: Parasoft CTP Data model + Data Set Editor.

La virtualización de servicios hace que las pruebas de integración sean más fáciles y económicas. Y también significa probar antes. Puede cambiar la API y las pruebas de integración mucho más a la izquierda que nunca.

¡Vea Parasoft Virtualize en acción!

Lo mejor de todo: mejorar la colaboración entre equipos

Un beneficio clave de la automatización de pruebas es la capacidad de recopilar datos y resultados durante la ejecución de la prueba. Parasoft DTP agrega y analiza datos de las diversas prácticas de prueba utilizadas por el equipo para crear una vista centralizada de la calidad. Además, puede correlacionar estos resultados de prueba con sus historias de usuario en herramientas de gestión de requisitos como Jira.

La capacidad de "conectar los puntos" entre los casos de uso, los resultados de las pruebas, la cobertura del código y el estado general es esencial para tomar decisiones informadas. La colaboración en equipo se mejora porque todos ven la misma fuente de verdad sobre el estado de la aplicación y pueden actuar sobre la misma información según sea necesario.

Captura de pantalla del panel de aplicaciones de Salesforce que muestra las tendencias de prueba y la cobertura en gráficos circulares y de anillos.

Resumen

La automatización de pruebas de las aplicaciones de Salesforce puede resultar problemática. Es posible usar Selenium para las pruebas de IU, pero lleva mucho tiempo hacerlo sin más ayuda de herramientas. Parasoft Selenic proporciona la asistencia adecuada necesaria para que las pruebas de Selenium de las aplicaciones de Salesforce sean prácticas y para mejorar los resultados de las pruebas basadas en la interfaz de usuario.

Las pruebas basadas en la interfaz de usuario son importantes, pero es una forma ineficaz de probar toda la lógica empresarial de una aplicación. Las pruebas de API aceleran las pruebas de aplicaciones al mismo tiempo que mejoran la cobertura de las pruebas.

Es posible realizar más pruebas en menos tiempo que las pruebas de IU. El impacto de las pruebas de API se mejora aún más con la virtualización de servicios, que desacopla su aplicación Salesforce de su complejo y costoso entorno de producción. La poderosa combinación de Parasoft SOAtest, Virtualize y CTP significa que las pruebas son más completas y se pueden iniciar antes en el ciclo de desarrollo.

Finalmente, la colaboración en equipo mejora con una vista centralizada de la calidad que proviene de la automatización de pruebas en los distintos niveles de la aplicación. Parasoft DTP proporciona información valiosa para la toma de decisiones sensatas y aumenta la capacidad de la organización para centrarse en la innovación.

Haga que las pruebas de Selenium de las aplicaciones de Salesforce sean prácticas y mejore los resultados de las pruebas basadas en la interfaz de usuario con Parasoft Selenic.

 

Foto de cabeza de Matt Love, ingeniero jefe de producto de Parasoft

Por Matt Love

Matt, ingeniero líder de productos en Parasoft, gestiona el desarrollo de nuevas funciones para la gestión del entorno, las pruebas de API, la virtualización de servicios y el modelado de datos de prueba.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.