X
BLOG

Acelere las pruebas de software compartiendo los activos de prueba entre los equipos de desarrollo y prueba

Acelere las pruebas de software compartiendo los activos de prueba entre los equipos de desarrollo y prueba Tiempo de leer: 8 minutos
Mientras que todo concepto de desplazamiento a la izquierda es de hecho increíblemente valioso, puede acelerar las pruebas para mantenerse al día con el desarrollo simplemente reduciendo el reproceso en las pruebas funcionales y mejorando la colaboración entre los equipos. Es decir, si tiene la herramienta adecuada.

A medida que comienza 2019, tuve que reflexionar sobre las miles de conversaciones que he tenido durante el último año con QA, ingenieros de pruebas y gerentes. Este año, especialmente el último trimestre, estuvo dominado por conversaciones sobre la aceleración de las pruebas, especialmente sobre cómo alinear las estrategias de prueba al mismo tiempo que el desarrollo. Así que tuve el gran placer de compartir con muchas personas cómo reducir la repetición de trabajos en pruebas funcionales y no funcionales con Parasoft SOAtest, mejorando simultáneamente la colaboración entre equipos mientras acelera las pruebas para mantenerse al día con el desarrollo.

Puedo decir con confianza que SOAtest es que el  solución completa para la creación y automatización de pruebas funcionales. Es la sangre, el sudor y las lágrimas de más de 17 años de desarrollo, producido por una empresa cuyo único y obstinado enfoque es la automatización de pruebas y hacer que las pruebas sean más fáciles y optimizadas para sus clientes. En términos de pruebas de extremo a extremo, reduce el esfuerzo manual de creación de pruebas para varios tipos de pruebas funcionales, como pruebas de definición / contrato de servicio, pruebas de humo, pruebas de componentes API, pruebas de escenarios API, pruebas de interfaz de usuario web, pruebas de bases de datos , pruebas omnicanal, pruebas de microservicios, pruebas de rendimiento / carga y pruebas de seguridad API, todas las cuales se automatizan fácilmente y se pueden vincular a su canalización CI / CD a través de una interfaz de línea de comandos o la API REST galardonada de SOAtest.

Hay mucho que puedo hacer sobre SOAtest y su profundidad de tecnología, innovaciones en inteligencia artificial y aprendizaje automático, y el éxito que ha tenido al permitir a nuestros clientes alcanzar sus objetivos de calidad y entrega; sin embargo, hoy quiero hablar de el valor que se desbloquea cuando una organización utiliza SOAtest para cerrar la brecha entre los equipos de desarrollo, control de calidad y pruebas de rendimiento, para lograr una sinergia completa en una organización de pruebas.

El desarrollo sienta las bases para las pruebas

Así que voy a arrancar la tirita y dejarla ahí: el desarrollo debe probarse.

Y no solo estoy diciendo pruebas unitarias (que obviamente son valiosas). El desarrollo debe participar en la prueba de cualquier API nueva o modificada. Ahora, no estoy diciendo que el desarrollo deba construir escenarios de prueba completos, y creo que cuando realmente profundizas en ello, lo más probable es que el desarrollo ya esté haciendo algunas de las pruebas de las que estoy hablando aquí. Cuando se está creando una nueva API, o una API ha sufrido un cambio de esquema o servicio, el desarrollo generalmente  Cree como mínimo pruebas de contrato y pruebas de humo para cada una de esas API para validar que el contrato de servicio está escrito de acuerdo con las especificaciones y para validar el esquema (solicitud y respuesta) y los puntos finales (HTTP, MQ / JMS Topic / Queue, etc.).

Si los desarrolladores pueden comenzar a usar la misma herramienta de prueba funcional para crear pruebas, el equipo de control de calidad puede simplemente aprovechar estas pruebas para formar los escenarios de prueba más complejos que necesitan para validar. Entonces, ¿cómo pueden los desarrolladores aprovechar Parasoft SOAtest para ayudar a acelerar las pruebas?

Los desarrolladores pueden crear pruebas de definición de servicios

Con Parasoft SOAtest, los desarrolladores pueden validar muy fácilmente:

  • ¿Es la definición de servicio semánticamente correcta?
  • ¿Es válido el servicio descrito?
  • ¿El servicio cumple con los estándares de interoperabilidad?
  • ¿Ha cambiado el servicio recientemente?

Los desarrolladores que utilizan SOAtest crean fácilmente pruebas para validar y hacer cumplir las políticas de WSDL, Swagger, RAML, etc., mediante el consumo de ese archivo de definición de servicio. SOAtest realizará el esquema y las pruebas de validez semántica para asegurarse de que el archivo de definición sea legible por máquina y consumible. Validará la interoperabilidad para asegurarse de que se adhiere a los estándares de la industria de un archivo de definición de servicio y, finalmente, creará una prueba de regresión para validar que nada ha cambiado desde la última ejecución de prueba.

Estas pruebas proporcionan esa base estable que QA puede aprovechar para construir de manera eficiente una estrategia de prueba sólida y resistente (más sobre eso en un momento).

Los desarrolladores pueden crear pruebas de componentes (pruebas de humo)

Con Parasoft SOAtest, el desarrollo puede crear fácilmente sus pruebas de componentes para probar los componentes individuales de un servicio que buscan validar que:

  • Las cargas útiles de solicitud / respuesta están bien formadas
  • El estado de respuesta es el esperado
  • Las cargas útiles de error de respuesta tienen los mensajes de error correctos
  • La respuesta cumple con los criterios de referencia
  • La respuesta se recibe dentro de un plazo previsto

Con SOAtest, crear estas pruebas funcionales de humo es literalmente tan fácil como cargar su archivo de definición en SOAtest y seleccionar "crear prueba funcional". Esto analizará su API automáticamente, creando una prueba para cada servicio individual contenido dentro de esa API. Estas pruebas se pueden ejecutar de inmediato y permiten a los desarrolladores dedicar un tiempo mínimo a validar que los errores que pueden haber recibido son los mensajes de error y las respuestas esperados correctamente.

Acelerar las pruebas mejorando la colaboración y aprovechando el trabajo en todos los equipos

En este punto, el desarrollo ha hecho su trabajo: han validado la funcionalidad básica para cada servicio y ahora es el turno de QA. Los probadores deben crear pruebas que vayan más allá de la funcionalidad básica y probar la lógica empresarial real y los escenarios complejos de la API para descubrir comportamientos imprevistos e inesperados. Dev hace un hermoso trabajo al construirlo, y el trabajo de QA es crear escenarios complejos destinados a probar la estabilidad de los servicios a medida que funcionan en conjunto. Me gusta verlo así: cuando el desarrollo ha utilizado SOAtest para sus pruebas de contrato y componentes, QA llega a una cocina que ya tiene los ingredientes listos para ser mezclados, combinados y ensamblados en una comida.

Me sorprende lo valiosa que es esta reutilización de los artefactos de prueba, y cuánto puede acelerar las prácticas de prueba, simplemente eliminando la reelaboración de QA creando pruebas que ya han sido realizadas por el desarrollo. En el paradigma del trabajo inteligente, el control de calidad comienza con la cocina surtida y puede hacer más en menos tiempo. Es simplemente lógico.

Veamos cómo esto puede acelerar las pruebas.

Reutilización de los artefactos de prueba de los desarrolladores para crear de manera eficiente pruebas de escenario significativas

QA puede reutilizar las mismas pruebas de componentes que los desarrolladores crearon en Parasoft SOAtest para asegurarse de que todo funcione en un escenario específico. Ellos pueden:

  • Asegúrese de que las API funcionen cuando se combinan en un escenario
  • Conduce la prueba con datos
  • Utilice los datos de respuesta para alimentar solicitudes posteriores.
  • Opcionalmente, aproveche las pruebas de arranque y desmontaje

Debido a que QA ya tiene los componentes básicos que necesita (cortesía del desarrollo), pueden seleccionar y elegir sin script, con comandos simples de copiar y pegar, los componentes individuales que se usarán para probar su escenario. Estos componentes se pueden arrastrar y soltar en el orden correcto y reestructurar para crear cada escenario. Las respuestas y la información de la primera prueba se pueden parametrizar con unos pocos clics y se utilizan para impulsar los datos de solicitud de la segunda prueba, y así sucesivamente.

Estas pruebas de escenario se crean de manera más eficiente, beneficiándose de los componentes proporcionados por el equipo de desarrollo. Con SOAtest, puede llevar esta eficiencia un paso más allá, reduciendo aún más la repetición de trabajo mediante la "plantilla" de la lógica empresarial (es decir, afirmaciones, validaciones, autenticación) en reglas, con máquina de aprendizaje. La reutilización de la lógica de prueba mejora la coherencia de las pruebas de API, al tiempo que acelera las pruebas al eliminar el trabajo que otro miembro del equipo ha completado anteriormente.

Reducción del ping pong entre desarrollo y prueba para acelerar los tiempos de corrección de defectos

Una lucha constante que surge debido a la brecha entre Desarrollo y QA es el ping pong en la comunicación que ocurre cuando QA encuentra un defecto. Es una tarea que lleva mucho tiempo documentar ese defecto, tomar las capturas de pantalla, escribir los pasos de prueba exactos que se tomaron que revelaron el defecto y luego comunicar esto al desarrollo, quien a menudo regresará con la frustrante respuesta de que funciona bien en su entorno.

Este ping-pong entre Dev y QA ralentiza los tiempos de corrección de defectos y le quita un tiempo valioso tanto al desarrollador (mientras luchan por recrear el entorno de prueba) como al evaluador (que se ve atrapado en un ciclo de documentación y comunicación roto en lugar de gastar su tiempo creando más pruebas).

En cambio, cuando ambos equipos utilizan Parasoft SOAtest, esta brecha de comunicación / colaboración se llena mediante la creación de escenarios de prueba que se pueden volver a ejecutar, lo que acelera drásticamente el intercambio de conocimientos entre los probadores y el desarrollo. Cuando un miembro de QA encuentra un problema, puede crear rápidamente un escenario de prueba (archivo .tst), mostrando el comportamiento, que luego se puede compartir con el equipo de desarrollo. Luego, el desarrollo puede ejecutar el escenario de prueba en su máquina para ver el comportamiento y puede ver los pasos exactos y las llamadas que conducen al comportamiento incorrecto acortando el tiempo de corrección de defectos.

Administrar el esquema de API y el cambio de servicio para reducir la deuda de mantenimiento de prueba

El control de calidad ahora funciona de manera inteligente. Han creado una estrategia coherente para probar sus API que se basa en las pruebas de componentes existentes creadas por Desarrollo, que reduce la repetición de trabajo mediante la plantilla de la aplicación de la lógica empresarial para que se pueda reutilizar y aprovechar en todo el equipo de pruebas. Pero, ¿qué sucede cuando se introducen cambios en sus aplicaciones?

El cambio puede tomar muchas formas, tales como:

  • Cambio de formato de mensaje de protocolo
  • Elementos agregados o eliminados de la API
  • Cambios de código que afectan el formato de datos
  • Servicios sometidos a re-arquitectura para microservicios

Por lo general, un gran dolor de cabeza para las organizaciones de control de calidad es comprender esos cambios, identificar los casos de prueba afectados por el cambio y actualizar y volver a ejecutar esos casos de prueba para validar que los cambios no han roto nada. Sin SOAtest, estas cosas requieren una gran cantidad de estudio de las dos versiones de un archivo de definición de API junto con un esfuerzo hercúleo para comprender las pruebas afectadas y cómo editar o reescribir cada prueba impactada para validar ese cambio.

SOAtest le brinda a QA una manera fácil de administrar y mitigar el impacto del cambio a través de su módulo Change Advisor. ¿Recuerda la definición de servicio o las pruebas de contrato que eran tan importantes para abastecer la cocina de QA? Esos archivos de definición de servicio vuelven para ayudar con la gestión de cambios.

Cuando se produce un cambio dentro de su esquema o servicios de API, Desarrollo actualizará ese archivo de definición y proporcionará a QA la versión más reciente. El módulo Asesor de cambios de SOAtest aparece y compara automáticamente la nueva versión del archivo de definición con la versión anterior, crea dos mapas que trazan gráficamente las operaciones y los esquemas entre los archivos de definición antiguos y nuevos, y luego QA puede ingresar, identificar fácilmente lo que debe cambiarse y, con unos pocos clics, revise y actualice en función de los cambios. Y una vez que se hayan revisado todos los cambios, esa plantilla de cambios se puede aplicar fácilmente para refactorizar automáticamente en masa todas las pruebas existentes afectadas por esos cambios.

Reutilización de artefactos de prueba existentes en el rendimiento

QA ahora ha hecho su trabajo. Los probadores han creado múltiples escenarios de prueba complejos destinados a probar la lógica empresarial de la API y validar la funcionalidad de los servicios en conjunto. La lógica empresarial es sólida y cada caso de uso ha sido probado y validado. Cualquier defecto encontrado se ha comunicado fácilmente al desarrollo en forma de un archivo .tst para una rápida reproducción y corrección. Existe una estrategia integral y mínimamente manual para mantener esas pruebas de API y actualizar las pruebas cuando se produce un cambio. Ahora es el momento de romper la aplicación: es el momento de que los evaluadores de rendimiento prueben el comportamiento de la API cuando tiene 100, 500, 1000+ usuarios que intentan realizar los mismos escenarios al mismo tiempo desde diferentes ubicaciones en todo el mundo.

En muchos casos, un evaluador de rendimiento necesitaría crear sus propios escenarios de prueba específicamente bajo estas condiciones. Afortunadamente, al aprovechar Parasoft SOAtest, el equipo de desempeño nuevamente no necesita reinventar la rueda. Pueden utilizar la combinación de pruebas de componentes creadas por Desarrollo y las pruebas de escenario creadas por QA para validar sus SLA y el desempeño oportuno de la aplicación, todo dentro del módulo de Prueba de carga de SOAtest.

Dentro del módulo de prueba de carga, las pruebas de escenarios o componentes SOAtest existentes se pueden aprovechar y controlar fácilmente con cualquier número posible de usuarios virtuales y distribuirse en cualquier número de máquinas esclavas para probar escenarios bajo diferentes tipos de carga, como campana, búfer, lineal y en lugar. cargar, lo que le permite validar que la aplicación puede comportarse como se espera bajo los diversos tipos de estrés.

En conclusión….

"Trabajar inteligentemente, no duro" debería ser el objetivo final de su estrategia de pruebas funcionales, pero realizar las mismas acciones una y otra vez ha sido la norma para los equipos de pruebas cuando se trata de pruebas API. Muy a menudo, hablo con gerentes de control de calidad y entrenadores de DevOp que tienen la tarea de identificar formas de acelerar la velocidad de sus pruebas y aumentar la colaboración, y lo que he descrito aquí es la respuesta.

Los equipos pueden reducir el reproceso y aumentar la eficiencia aprovechando las capacidades de SOAtest. Es fácil de adoptar tanto a nivel empresarial como de proyecto único o de inicio, ya que se ha creado para escalar hábilmente y requiere un bajo nivel de experiencia técnica para la creación y automatización de pruebas. Tener una herramienta unificada para las pruebas funcionales utilizada por Desarrollo, QA y Rendimiento permite un nivel de colaboración innovador y una reducción en el reproceso que puede afectar el resultado final, reduciendo los esfuerzos, el tiempo y los costos generales de las pruebas.

La solución líder de pruebas funcionales de API y UI, impulsada por IA y aprendizaje automático

Escrito por

Jamie Motheral

Jamie, gerente de cuentas de Parasoft, trabaja en estrecha colaboración con clientes y posibles clientes. Su experiencia en ayudar a las organizaciones a alcanzar sus objetivos a través de estrategias de prueba escalables y fáciles de adoptar ha ayudado a sus clientes a cambiar orgánicamente de las metodologías en cascada a las ágiles y DevOps.

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

Prueba Parasoft