Cómo garantizar la calidad de pruebas continuas en los equipos de desarrollo

  • Gestión de apps

Los equipos de DevOps están teniendo problemas con la implementación de la nueva ola de automatización de pruebas de inteligencia artificial. Pero hay una serie de consejos que pueden ayudar en 2018 a evitar estas situaciones.

El mundo de hoy gira en torno a las tecnologías digitales. Por ejemplo, considere cuánto tiempo pasa en su teléfono móvil en un solo día. Según la firma analítica Flurry, son más de cinco horas. Desde hacer llamadas a utilizar cosas como las redes sociales, aplicaciones de banca y salud.. hay una aplicación para casi todo. Pero, ¿y si las aplicaciones que ayudan a ejecutar nuestras vidas de repente dejaron de funcionar? Piénsalo de esta manera. No tendría fácil acceso a cosas que afectan su vida diaria, como su cuenta o sistemas de registro de salud.

Es por eso que, ahora más que nunca, es importante que los desarrolladores garanticen una calidad continua durante todo el ciclo de vida del desarrollo de software (SDLC). Y todo comienza con las pruebas.

Aunque alguna vez se han considerado un cuello de botella que contiene diferentes actividades a lo largo del proceso DevOps, las pruebas continuas se están convirtiendo en un elemento básico del SDLC, a medida que más organizaciones aplican estas técnicas para identificar, reaccionar y responder a los errores en tiempo real. Ayudar a impulsar esas implementaciones es la automatización. Sin embargo, según un informe de 2017 de Sogeti, solo el 16 por ciento de las actividades de prueba están automatizadas.

Si bien la automatización es un factor clave para que las pruebas continuas sean una realidad, existen obstáculos que los equipos de desarrollo deben superar. En 2018, las organizaciones deben abordar los siguientes cinco desafíos principales para garantizar tiempos de entrega rápidos y libres de fallos.

1. Los cronogramas de lanzamiento apretados significan tiempos de respuesta más rápidos
 
En la era digital, se espera que todos avancen más rápido y más inteligentemente. Considere la última versión de iOS. Dentro de sus primeros meses de disponibilidad general, iOS 11 ya se ha sometido a múltiples iteraciones y actualizaciones. Y cada vez que hay una nueva versión, los desarrolladores de aplicaciones deben asegurarse de que sus aplicaciones sigan funcionando. Hoy en día, les resulta difícil automatizar estas nuevas pruebas dentro de los ciclos existentes, impidiéndoles el mantenimiento continuo y la innovación continua.

El próximo año, los ciclos de lanzamiento se acelerarán, especialmente a medida que aumenten las expectativas de los consumidores, se introduzcan más plataformas y las nuevas tecnologías, como los dispositivos IoT y los wearables, ocupen un lugar central.

Por eso, para ayudar a superar este obstáculo permanente, debería

- Adoptar prácticas de desarrollo basadas en pruebas de aceptación (ATDD) y conducidas por comportamiento (BDD), que dirigen el código de automatización de prueba antes del código en sí.

- Adopare marcos de ejecución de prueba más rápidos, como Espresso y XCUITest para dispositivos móviles, o navegadores sin cabeza, como Puppeteer y PhantomJS para web, para acelerar el tiempo de configuración y la velocidad de ejecución de la prueba.

2. Los equipos de desarrollo no están en la misma página cuando se trata de automatización de pruebas

Cuando se trata de datos de prueba, existe este estigma de "no es mi problema" en los equipos de DevOps. La mayoría cree que es el trabajo del equipo de datos de prueba para proporcionar todos los datos y la información. Sin embargo, a medida que DevOps continúa evolucionando dentro de las organizaciones ágiles, estamos comenzando a ver que esos silos se desploman.

Para implementar un equipo de automatización de pruebas que mantenga el motor en funcionamiento, es necesario aplicar una fuerte disciplina en todo el SDLC. Primero, eso requiere que todos estén de acuerdo. Asegúrese de que todos los equipos estén de acuerdo cuando se trata del proceso que elija, ya sea BDD, ATDD o Agile. Y, lo que es más importante, deje los procesos de IC ocultos en el pasado para garantizar que los equipos tengan acceso a una vista única de la calidad por compromiso de código.

Si bien cada departamento tiene una personalidad diferente o un conjunto de necesidades, también es importante asegurarse de brindarles las herramientas que mejor se adapten a sus habilidades, al mismo tiempo que se integran con la pila de integración continua (CI) y desarrollo continuo (CD).

3. Las organizaciones están luchando para controlar los datos de automatización de pruebas

Si bien las pruebas están haciendo principalmente lo que se supone que deben hacer hoy (generar nuevos datos e información), también están sufriendo el mismo desafío que Big Data: una afluencia de información en la que es casi imposible actuar.

En parte la culpa es la falta de inteligencia. Sin embargo, la mayoría de las organizaciones se esfuerzan por determinar la mejor forma de implementar el aprendizaje automático y la inteligencia artificial (IA) en todo el ciclo de vida de DevOps. Se recomienda comenzar con un enfoque en el análisis de pruebas, aprovechando las herramientas internas actuales para determinar la eficacia del conjunto de pruebas y el uso de la plataforma.

4. La falta de claridad hace que el código abierto sea una mierda de tiempo

Todavía un concepto relativamente nuevo en toda la industria, las herramientas de código abierto se están convirtiendo en un elemento importante del stack del equipo de desarrollo. Sin embargo, la mayoría de las organizaciones están luchando para maximizar la productividad con ellos. Tienen capacidades limitadas: no pueden admitir funciones avanzadas, compartir informes detallados y optimizar de forma inteligente y dificultan la mejora de las capacidades de depuración o escalar la automatización de las pruebas.

Y en el caso de los dispositivos móviles, los marcos de código abierto simplemente no pueden mantenerse al día.

Hoy en día, los usuarios no deberían usar solo herramientas de código abierto, sino combinarlas con herramientas comerciales. Usar el marco de automatización de prueba de código abierto correcto es clave.

Descubre la innovación

Para asegurar el éxito empresarial, ahora y a futuro, es imprescindible maximizar el retorno de la inversión existente en software, a la vez que innovar y adoptar nuevas tecnologías. Los retos que hay abordar para competir en un mundo de TI Híbrida incluyen DevOps, Seguridad, Gestión de riesgos y Análisis predictivo. Puedes obtener más información sobre cómo abordar estos retos e innovar en este enlace.