Última actualización: 19 de enero de 2021 — Guy Arieli, CTO Quality

Las pruebas automatizadas pueden aportar una mayor eficiencia. Aborde estos desafíos para entregar mejores productos en manos de los clientes más rápido y con más frecuencia.

Continuous Testing

Las organizaciones ágiles se esfuerzan por lograr flexibilidad y una respuesta rápida. De ello se deduce que quieren realizar pruebas de software de la manera más eficiente posible. Las pruebas eficientes conducen a una entrega más rápida y una mayor productividad. En las pruebas de software, la eficiencia no solo acelera el desarrollo, sino que también ofrece resultados positivos. Por ejemplo, puede aumentar la cantidad de defectos detectados y corregidos, mientras disminuye la cantidad de defectos que pasan desapercibidos y pasan a producción.

Muchas organizaciones ven automatización de pruebas como uno de los santos griales para lograr una mejor eficiencia de prueba. Con la automatización, las organizaciones pueden cubrir sus bases a escala y minimizar la latencia. Esto libera talento y otros recursos para aumentar el enfoque en cosas como la innovación, la resolución de problemas y las historias de usuarios.

La automatización de pruebas está lejos de ser simple de implementar. En un artículo de 2020 publicado en el Revista de evolución y proceso de software, una encuesta de 72 organizaciones de ocho países diferentes encontró que "la gestión de pruebas y la automatización de pruebas se consideran las más desafiantes entre todas las actividades de prueba por parte de los profesionales". Para adoptar y expandir la automatización de las pruebas con los mínimos problemas de crecimiento, su organización debe ser consciente de los desafíos técnicos de las pruebas automatizadas, así como de otros problemas que pueda enfrentar.

Altos costos de implementación

La automatización aumenta la velocidad de las pruebas, pero requiere una inversión significativa en capital inicial. Es difícil de vender a la gerencia porque un período de "recuperación" puede ser impredecible o prolongado. En algunos casos, es posible que nunca suceda. Esto es especialmente cierto si no se siguen las mejores prácticas, que incluyen la captura de datos que miden el valor creado por la productividad adicional del equipo interno, así como el rendimiento mejorado del producto.

La mejor manera de garantizar un ROI positivo después de la adopción integral de la automatización de pruebas es implementar una solución de pruebas automatizadas que se integre con otros productos en el ecosistema. Esto puede habilitar funciones integrales, como análisis sólidos medidos casi en tiempo real. Una de esas métricas que se puede derivar es el índice de velocidad, que les dice a los usuarios cuánto tiempo lleva cargar su aplicación, incluidos los elementos en la página a medida que se completan en tiempo real. Ser capaz de probar estos factores y el rendimiento agregado en todas las etapas de desarrollo puede permitir que se realicen mejores cambios. releasemás rápido

Migración lejos de la arquitectura de código abierto

Las soluciones de código abierto han sido muy populares debido a su asequibilidad y al hecho de que se basan en resultados en lugar de características. Pero las herramientas de código abierto tienen sus limitaciones. No hay mucho presupuesto de desarrollo para hablar de estos proyectos principales, lo que impide que los desarrolladores contribuyentes más activos puedan dedicar mucho tiempo a ellos. Al carecer de incentivos financieros y desarrolladores dedicados, hay poco ímpetu para que las herramientas de código abierto adopten características avanzadas como inteligencia artificial (IA) o aprendizaje automático (ML).

Las organizaciones que buscan avanzar en las soluciones de código abierto disponibles deben estar dispuestas a dedicar su propio tiempo y dinero al proyecto. Este compromiso abre consideraciones de costo/beneficio, como si una arquitectura propietaria se adaptaría mejor a las necesidades específicas. También hay consideraciones relacionadas con la licencia, ya que algunos proyectos de código abierto desaconsejan explícitamente la monetización o alientan a las nuevas ramas de la herramienta a hacer público su código fuente.

Las arquitecturas de código abierto también presentan desafíos con la seguridad, ya que el hecho de que se conozca el código fuente puede permitir que los malos actores exploren fácilmente las vulnerabilidades. Las soluciones como el cifrado de extremo a extremo pueden hacer que una herramienta de prueba sea segura incluso cuando el código fuente está disponible públicamente, pero los equipos de desarrollo deben considerar aspectos como este caso por caso.

En algunos casos, la mejor opción puede seguir siendo una solución de código abierto. Pero las organizaciones deben considerar sus requisitos de prueba para determinar la mejor herramienta para el trabajo, y no solo optar por la solución más barata a corto plazo. En cambio, solo deberían adoptar herramientas de código abierto cuando sientan que la comunidad que rodea la herramienta puede compartir sus valores y su deseo de una funcionalidad específica basada en los casos de uso más comunes.

Fragmentación en ecosistemas de prueba

Actualmente, la mayoría de las organizaciones carecen de características consistentes y capacidades de integración, lo que puede conducir a ecosistemas de prueba fragmentados. Por ejemplo, algunas plataformas de automatización de pruebas pueden funcionar muy bien con su cadena de herramientas de desarrollo, pero carecen de integraciones para implementar comentarios de operaciones en los parámetros de prueba. Los propios entornos de prueba también pueden estar muy fragmentados. Algunos se aplican exclusivamente a entornos móviles, de escritorio, navegadores u otros.

Por esta razón, los equipos de desarrollo deben buscar soluciones de prueba capaces de proporcionar funcionalidad en todas las etapas de desarrollo y con la capacidad de integrarse con otras herramientas en todo el DevOps ambiente. También deben elegir conjuntos de herramientas de prueba que observen el rendimiento en todos los entornos de dispositivos previstos, lo que podría incluir dispositivos heredados.

Informes difíciles de interpretar

Los informes fáciles de entender son tan importantes como las pruebas mismas. Los modelos de prueba pueden basarse en escenarios muy específicos y, debido a esta arquitectura de automatización, es posible que los resultados individuales no presenten una vista familiar para la mayoría de las partes. Para que los informes sean útiles para las partes que los leen, es posible que deban proporcionarse interpretación adicional y datos contextuales.

Al evaluar una solución de prueba automatizada, tenga en cuenta su capacidad para presentar información procesable derivada del tablero. Como mínimo, observe su capacidad para integrarse con una plataforma de análisis robusta que pueda proporcionar los conocimientos prácticos deseados.

Colaboración y continuidad del trabajo entre equipos.

Los evaluadores y los desarrolladores deben trabajar juntos para garantizar que el proceso de prueba transcurra sin problemas. Las pruebas, y especialmente las pruebas automatizadas, pueden provocar interrupciones durante la fase de "transferencia".

Según la Stephen Rosing, director de ingeniería de soluciones en ACCELQ, “la línea de comunicación más importante para construir es entre probadores y desarrolladores. Es fundamental que el equipo de desarrollo comprenda el funcionamiento básico de la herramienta de automatización para garantizar que la aplicación se preste a la automatización”.

Hay varios lugares donde la comunicación puede romperse y causar problemas. Los evaluadores pueden malinterpretar los objetivos, mientras que los desarrolladores pueden no incorporar los comentarios de los evaluadores para mejorar la calidad del código.

“A los desarrolladores les encanta usar las bibliotecas de código más recientes y mejores, pero a menudo hay un retraso antes de que las herramientas de automatización las admitan”, dice Rosing. “Al comunicarse con el equipo de desarrollo, puede asegurarse de que no se verá obligado a volver a realizar pruebas manuales porque el desarrollo introdujo tecnología no compatible”.

Alcanzar una cobertura de prueba completa

Con cualquier prueba, siempre existe la posibilidad de que se pierda algo. Esto es especialmente cierto en las pruebas automatizadas. Hay factores que pueden no haber sido considerados dentro del modelo y pueden pasarse por alto.

La clave para evitar estos puntos ciegos es realizar un seguimiento de las métricas que pueden revelar las tendencias de los problemas asociados con la baja cobertura de las pruebas, como una alta tasa de escape de defectos. El análisis granular de estas métricas puede revelar qué tipos específicos de código o áreas de código se pasan por alto. Este análisis también puede priorizar y buscar un mejor rendimiento a lo largo del tiempo.

Una solución de análisis integrada de extremo a extremo puede monitorear automáticamente el rendimiento tanto dentro como fuera de las pruebas y luego traer los factores relevantes al frente. Por ejemplo, puede aparecer una alerta al probar una función de la aplicación que ha mostrado vulnerabilidades de seguridad en las últimas semanas. Esta alerta no se basa necesariamente en la lógica de prueba interna o en una historia de usuario en consideración, sino en el rendimiento real de la aplicación en producción. Dicha funcionalidad puede cerrar las brechas en las pruebas mientras ayuda a los equipos a enfocarse en escenarios del mundo real, no solo en los puramente hipotéticos.

Centrándose en la automatización sobre los resultados

Muchas organizaciones que aprovechan los beneficios de los procesos ágiles y la mayor velocidad de la integración continua y la deploy(CI/CD) quieren implementar la automatización de pruebas donde puedan. Esto puede convertirse en una búsqueda de implementar la automatización por el bien de la automatización.

As Amir Ghahrai dice, “el problema, especialmente en el desarrollo ágil, es que los QA toman una historia de usuario y automatizan sus criterios de aceptación. Mientras lo hacen, su principal y único enfoque es luchar con sus limitadas habilidades de codificación solo para aprobar el examen”.

Después de todo, se supone que la automatización mejora el proceso de prueba. Aunque las cosas can estar automatizado no significa automáticamente que should. Es mejor ser selectivo sobre qué automatizar y basarlo en el riesgo y el impacto potencial para el usuario o la organización. Automatice las pruebas que se ejecutan periódicamente, como las pruebas de regresión para confirmar que el sistema sigue funcionando.

Al implementar pruebas automatizadas, es necesario que haya otras métricas más allá de “¿esto está automatizado? Sí No." Mantener un enfoque del valor y los beneficios de la automatización, como el tiempo de ciclo más rápido, mayor deployfrecuencia de trabajo, menor tasa de escape de defectos y menos trabajo no planificado. Los desarrolladores también se enfrentan a mucha presión para lograr una alta velocidad de prueba a fin de mantenerse al día con los sprints y los objetivos de CI/CD. Es posible que las organizaciones deban volver a marcar los objetivos de automatización de pruebas para mantener su canalización de pruebas automatizadas afinada.

El objetivo de la automatización de pruebas debe ser un valor rápido, no pruebas rápidas

No importa lo que una organización espere lograr con las pruebas automatizadas, el objetivo principal debe ser crear propuesta de eficientemente, no solo para completar las pruebas rápidamente. Las pruebas que se ejecutan rápido pero pasan por alto defectos que luego causarán problemas no están haciendo su trabajo ni agregando valor a la organización.

Un enfoque de gestión del flujo de valor puede permitir a las organizaciones cuantificar el valor creado en todos los estados de DevOps, incluidas las pruebas. La automatización de pruebas también puede impulsar un ciclo de retroalimentación rápido para impulsar la optimización de todos DevOps de los empleados.

La automatización de pruebas puede ser un desafío, además de costosa. Pero los resultados pueden ser mejores productos en manos de los clientes más rápido, con mejoras entregadas con más frecuencia. Aprovechar el mapeo y el análisis del flujo de valor, no solo la automatización, puede potenciar una cultura organizacional donde los resultados mejoran constantemente, no solo se mueven más rápido.

Vea cómo han aumentado los beneficios de la automatización de pruebas y qué esperar de las pruebas automatizadas en el futuro en nuestro seminario web: “Beneficios de la automatización de pruebas: pasado, presente y futuro.

¿Estás listo para escalar tu empresa?

Explorar

¿Qué hay de nuevo en el mundo de Digital.ai

Junio 18, 2024

Cómo Continuous Testing Fomenta la colaboración entre desarrollo y seguridad: el enfoque de moda para un desarrollo seguro

Descubre cómo continuous testing y la seguridad de aplicaciones fomentan un SDLC colaborativo, creando un complejo laberinto para los atacantes al tiempo que empodera a los equipos y reduce los costos.

Obtener Más Información
Mayo 10 del 2024

BPCE Banking Group agiliza el proceso de garantía de calidad y entrega con Digital.ai Continuous Testing

Explore cómo BPCE Banking Group revolucionó las pruebas con Digital.ai Continuous Testing, impulsando la eficiencia y la calidad en la innovación bancaria.

Obtener Más Información
Abril 22, 2024

El sesgo en la máquina: sesgos en los datos de entrenamiento y su impacto en el código generado por los asistentes de código de IA

Explore los sesgos en los datos de entrenamiento de IA que afectan la generación de código y aprenda estrategias para mitigarlos para lograr un desarrollo de IA y una innovación de software más justos.

Obtener Más Información