Al crear soluciones de TI, los errores son caros, esto es especialmente notable en la medicina, donde las vidas humanas dependen de la calidad del software, o en la banca, donde son posibles grandes pérdidas financieras. La automatización de pruebas le permite organizar un control constante de la calidad del producto. Veamos en qué casos se necesita.
Algunas compañías creen erróneamente que la automatización es una pérdida de tiempo y dinero, otras, que esta es una tendencia genial y una "píldora" para todas las enfermedades. Considere dónde está el término medio y cuál es el punto de la automatización.

Por qué probar
El más mínimo error en el software amenaza con enormes costos. Cuanto mejor se construyen los procesos de desarrollo, menores son los riesgos. Sin embargo, si nos centramos en los hechos, vemos que incluso gigantes como Google, Microsoft o los principales bancos cometen errores.
Por ejemplo, uno de los famosos "accidentes" del mundo financiero ocurrió en el First National Bank of Chicago a fines de los 90: de la noche a la mañana, las cuentas de los clientes crecieron sin razón en $ 900 millones. Luego, el vicepresidente senior del banco, James Lancaster, admitió que se trataba de un "error de software en la computadora", que, afortunadamente, nadie tuvo tiempo de usar.
Se producen errores costosos en otras industrias que aparentemente no están directamente relacionadas con la TI. Un ejemplo bien conocido es el accidente en el lanzamiento de la tecnología espacial, en particular, en 2017, Roscosmos
perdió un satélite por valor de 2.600 millones de rublos.
Cuando se trabaja con soluciones de TI a gran escala, por ejemplo, sistemas de banca remota (RBS), es importante probar constantemente no solo el funcionamiento de las funcionalidades individuales, sino también su interacción. En condiciones de plazos ajustados, cuando los bancos líderes actualizan sus aplicaciones cada mes, es imposible verificar todo manualmente, al menos no habrá suficiente tiempo para esto.
Al crear productos de TI para empresas, generalmente se combinan dos enfoques:
- realizar controles manualmente con la ayuda de especialistas en control de calidad (QA) ;
- combine la prueba manual y la automatización de casos de prueba clave, con la ayuda de expertos de SDET (Ingeniero de desarrollo de software en prueba) .
El trabajo del especialista SDET se encuentra en el límite de tres áreas: desarrollo, control de calidad y DevOps, que abarca tanto la escritura directa de pruebas automáticas como otras tareas. Por ejemplo, SDET puede configurar CI para entregar e implementar automáticamente aplicaciones, mantener documentación y organizar procesos. Sin embargo, en este artículo consideramos un aspecto: la automatización de pruebas.
Lo que da automatización
Esta es una de las direcciones bastante nuevas en el desarrollo, rodeada de una gran cantidad de mitos. Muy a menudo, una empresa recurre a la automatización, creyendo que:
- resolverá todos los problemas de lanzamiento de software de calidad;
- permitirá rechazar las pruebas manuales;
- necesario simplemente porque es una "tendencia genial";
- acelerar el lanzamiento de lanzamientos;
- aumentará la cobertura de plataformas y versiones de sistemas operativos durante las pruebas.
Obviamente, las primeras tres afirmaciones son excesivamente categóricas y, por lo tanto, como suele ser el caso, erróneo: para garantizar la calidad de un producto de TI, es importante considerar un complejo de muchos parámetros, y no solo probar la automatización.
A su vez, las dos últimas afirmaciones son realmente ciertas: la automatización de pruebas competente ayuda a acelerar las entregas y aumentar la cobertura de casos. Al mismo tiempo, el control de calidad manual y la automatización son, por regla general, igualmente importantes y se usan en combinación. Además, cada proyecto es individual y, a veces, la automatización no es necesaria.
Cuando se requiere automatización
- Aplicación a gran escala con muchas funciones empresariales.
- Vida significativa de la aplicación (de 1 año o más)
- Implementación de CI / CD, lanzamientos regulares + un pequeño número de especialistas en control de calidad
Tareas de automatización
Como regla, contratamos a expertos de SDET para resolver los siguientes problemas:
- Automatización de controles frecuentes y de rutina, lo que reduce la carga de los especialistas en control de calidad
- Supervisión de las funciones principales de la aplicación y seguimiento de cambios en el producto.
- La capacidad de probar con una gran cantidad de dispositivos, versiones de navegador y sistemas operativos.
- Probar el rendimiento de la aplicación en condiciones de trabajo simultáneo con una gran cantidad de datos y usuarios.
Resultados
La automatización ayuda a construir el equilibrio:
- comprobar manualmente lo que requiere atención humana (generalmente hasta el 25% de los casos);
- Automatizar otros casos.
Al mismo tiempo, la automatización a largo plazo reduce tanto los costos de prueba como los riesgos asociados con el factor humano.
Además, si es necesario, puede acelerar los lanzamientos. Por ejemplo, si necesita verificar alrededor de 400 casos en un sprint de desarrollo, la verificación manual tomará hasta dos semanas, y las pruebas automáticas pueden realizarse por la noche y analizarse en 4 horas.
Gracias a la automatización, una empresa tiene la oportunidad en cualquier momento de verificar que las funciones clave del sistema funcionan correctamente y de verificar si hay errores (y si hay alguno, cuáles son).
Ejemplo
Suponga que en este momento en un banco móvil necesita revisar hasta 700 casos, cada uno de 70 a 100 veces al año. Menos del 25% de los casos requieren verificación manual, el 75% restante se puede automatizar.
Tiempo dedicado a la verificación manual:- 30 horas
Tiempo de automatización:Una prueba de la noche a la mañana dura 8 horas, pero sin intervención humana, por lo tanto, no se tiene en cuenta.
Otros costos de tiempo:
- 8 horas para la verificación manual de casos que no pueden ser cubiertos por autocomprobaciones (25%);
- 6 horas para analizar los resultados, así como, si es necesario, para verificar las fallas (hasta el 10% de las pruebas).
Total: la automatización de pruebas puede
reducir el tiempo dedicado de 30 a 14 horas .
Por supuesto, cada caso tiene sus propias características, por lo que el tiempo empleado puede ser diferente. Analizamos constantemente cuánto tiempo lleva escribir pruebas automáticas, soporte y análisis de los resultados.
En promedio, la automatización
ahorra al menos del 30 al 50% del tiempo , lo que le permite asignar más tiempo, por ejemplo, para desarrollar y mejorar el producto.
Cómo funciona la automatización de pruebas
Cada empresa de TI tiene sus propias características en la automatización de pruebas, como en otros procesos de trabajo. En SimbirSoft, nos adherimos a los siguientes métodos que lo ayudan a desarrollar rápidamente el trabajo con los proyectos de nuestros clientes.
El proceso de prueba comienza con el desarrollo de una estrategia: un plan de prueba, la base para compilar casos de prueba individuales. Para automatizar SDET, los ingenieros eligen escenarios clave y de uso frecuente del usuario que trabaja con el producto; estos escenarios dan alrededor del 80% del valor comercial.
Después de eso, creamos la base para nuevas pruebas automáticas, configuramos stands y flujo de trabajo para trabajar con ellos, CI para ejecutar pruebas regularmente en varias ramas. Elegimos qué enfoques para la preparación de datos de prueba usaremos (API, acceso a bases de datos, generación de datos sintéticos, uso de datos de ventas). Los ingenieros de SDET escriben pruebas que cubren escenarios clave de trabajo con el producto, analizan los resultados y la necesidad de una mayor automatización.
Desarrollamos pruebas automatizadas utilizando todos los lenguajes de programación más populares: Java, Python, Kotlin, etc. Nuestras principales herramientas y tecnologías son Appium, TestNG | JUnit, RobotFramework | Pytest, selenio | Senenide, Allure, TeamCity, Jenkins, JMeter.
Las pruebas que deben automatizarse en primer lugar dependen de las características de un producto en particular. La mayoría de las empresas automatizan las pruebas de humo, las pruebas de regresión para verificar las funcionalidades ya hechas y los casos para verificar varios parámetros (por ejemplo, datos válidos e inválidos durante el registro).
En nuestra práctica, creamos procesos de automatización de pruebas ya al comienzo del desarrollo, en paralelo con las pruebas manuales. Este trabajo no es único, está en curso, especialmente en proyectos grandes, incluida la banca.
Para resumir
El equilibrio de las pruebas manuales y automatizadas le permite controlar constantemente la calidad del producto de TI. Algunos proyectos se verifican manualmente, otras tareas se pueden resolver con más éxito con la ayuda de la automatización. Las pruebas manuales se usan en casos donde las personas son insustituibles, por ejemplo, si necesita localización, una descripción de errores, pruebas de usabilidad manuales. En proyectos pequeños, los desarrolladores suelen escribir pruebas.
Las pruebas manuales junto con la automatización se llevan a cabo cuando se crean grandes productos de TI, donde trabajan varios equipos (por ejemplo, en aplicaciones bancarias), donde hay algoritmos complejos y lógica de negocios. Este método ayuda a construir procesos de prueba de productos y reducir el riesgo de errores costosos, lo cual es especialmente importante cuando se trabaja en un calendario de lanzamiento ajustado.
Gracias por su atencion! ¡Esperamos que el artículo te haya sido útil!